jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/338371 )
Change subject: Improve implicit sorting of reading list items.
......................................................................
Improve implicit sorting of reading list items.
There were still some cases where reading list items weren't getting
sorted correctly, for example:
- Add a few items to a reading list
- View the reading list and sort it alphabetically
- Delete an item from the middle of the list
- Click "undo" to add the item back
- Observe that the list is no longer sorted properly
This patch ensures that the reading list is implicitly sorted every time
it's updated for any reason. (And also removes unnecessary private fields
from ReadingListsFragment that were maintaining the sort state.)
Change-Id: Id4fb34ac06501b4451f9337efc6d7fc4fa3ff1da
---
M app/src/main/java/org/wikipedia/readinglist/ReadingListDetailView.java
M app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java
2 files changed, 21 insertions(+), 25 deletions(-)
Approvals:
Niedzielski: Looks good to me, approved
jenkins-bot: Verified
Mholloway: Looks good to me, but someone else must approve
diff --git
a/app/src/main/java/org/wikipedia/readinglist/ReadingListDetailView.java
b/app/src/main/java/org/wikipedia/readinglist/ReadingListDetailView.java
index c339280..b618ea3 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListDetailView.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListDetailView.java
@@ -29,6 +29,7 @@
import org.wikipedia.R;
import org.wikipedia.readinglist.page.ReadingListPage;
+import org.wikipedia.settings.Prefs;
import org.wikipedia.util.DimenUtil;
import org.wikipedia.util.FeedbackUtil;
import org.wikipedia.util.ResourceUtil;
@@ -130,10 +131,11 @@
descriptionView.setText(readingList.getDescription());
offlineView.setImageResource(readingList.getSaveOffline() ?
R.drawable.ic_cloud_download_black_24dp : R.drawable.ic_cloud_off_black_24dp);
setSearchQuery(currentSearchQuery);
+ updateSort();
}
- public void setSort(int sortMode) {
- sortPages(sortMode);
+ public void updateSort() {
+ sortPages(Prefs.getReadingListPageSortMode(SORT_BY_NAME_ASC));
adapter.notifyDataSetChanged();
}
diff --git
a/app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java
b/app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java
index d2d7aa5..940abe2 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListsFragment.java
@@ -66,9 +66,6 @@
private ReadingListsSearchCallback searchActionModeCallback = new
ReadingListsSearchCallback();
@Nullable private ActionMode actionMode;
- private int readingListSortMode;
- private int readingListPageSortMode;
-
@NonNull public static ReadingListsFragment newInstance() {
return new ReadingListsFragment();
}
@@ -77,8 +74,6 @@
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
- readingListSortMode =
Prefs.getReadingListSortMode(ReadingLists.SORT_BY_NAME_ASC);
- readingListPageSortMode =
Prefs.getReadingListPageSortMode(ReadingLists.SORT_BY_NAME_ASC);
}
@Override
@@ -149,13 +144,11 @@
super.onPrepareOptionsMenu(menu);
MenuItem sortByNameItem = menu.findItem(R.id.menu_sort_by_name);
MenuItem sortByRecentItem = menu.findItem(R.id.menu_sort_by_recent);
- if (pager.getCurrentItem() == PAGE_READING_LISTS) {
- sortByNameItem.setTitle(readingListSortMode ==
ReadingLists.SORT_BY_NAME_ASC ? R.string.reading_list_sort_by_name_desc :
R.string.reading_list_sort_by_name);
- sortByRecentItem.setTitle(readingListSortMode ==
ReadingLists.SORT_BY_RECENT_DESC ? R.string.reading_list_sort_by_recent_desc :
R.string.reading_list_sort_by_recent);
- } else {
- sortByNameItem.setTitle(readingListPageSortMode ==
ReadingLists.SORT_BY_NAME_ASC ? R.string.reading_list_sort_by_name_desc :
R.string.reading_list_sort_by_name);
- sortByRecentItem.setTitle(readingListPageSortMode ==
ReadingLists.SORT_BY_RECENT_DESC ? R.string.reading_list_sort_by_recent_desc :
R.string.reading_list_sort_by_recent);
- }
+ int sortMode = pager.getCurrentItem() == PAGE_READING_LISTS
+ ? Prefs.getReadingListSortMode(ReadingLists.SORT_BY_NAME_ASC)
+ :
Prefs.getReadingListPageSortMode(ReadingLists.SORT_BY_NAME_ASC);
+ sortByNameItem.setTitle(sortMode == ReadingLists.SORT_BY_NAME_ASC ?
R.string.reading_list_sort_by_name_desc : R.string.reading_list_sort_by_name);
+ sortByRecentItem.setTitle(sortMode == ReadingLists.SORT_BY_RECENT_DESC
? R.string.reading_list_sort_by_recent_desc :
R.string.reading_list_sort_by_recent);
}
@Override
@@ -288,7 +281,6 @@
actionMode.finish();
}
listDetailView.setReadingListInfo(readingList,
readingLists.getTitlesExcept(readingList.getTitle()));
- listDetailView.setSort(readingListPageSortMode);
pager.setCurrentItem(PAGE_LIST_DETAIL);
if (!readingList.getPages().isEmpty()
@@ -392,27 +384,29 @@
private void setSortMode(int sortModeAsc, int sortModeDesc) {
if (pager.getCurrentItem() == PAGE_READING_LISTS) {
- if (readingListSortMode != sortModeAsc) {
- readingListSortMode = sortModeAsc;
+ int sortMode =
Prefs.getReadingListSortMode(ReadingLists.SORT_BY_NAME_ASC);
+ if (sortMode != sortModeAsc) {
+ sortMode = sortModeAsc;
} else {
- readingListSortMode = sortModeDesc;
+ sortMode = sortModeDesc;
}
sortLists();
- Prefs.setReadingListSortMode(readingListSortMode);
+ Prefs.setReadingListSortMode(sortMode);
} else if (pager.getCurrentItem() == PAGE_LIST_DETAIL) {
- if (readingListPageSortMode != sortModeAsc) {
- readingListPageSortMode = sortModeAsc;
+ int sortMode =
Prefs.getReadingListPageSortMode(ReadingLists.SORT_BY_NAME_ASC);
+ if (sortMode != sortModeAsc) {
+ sortMode = sortModeAsc;
} else {
- readingListPageSortMode = sortModeDesc;
+ sortMode = sortModeDesc;
}
- listDetailView.setSort(readingListPageSortMode);
- Prefs.setReadingListPageSortMode(readingListPageSortMode);
+ Prefs.setReadingListPageSortMode(sortMode);
+ listDetailView.updateSort();
}
getActivity().supportInvalidateOptionsMenu();
}
private void sortLists() {
- readingLists.sort(readingListSortMode);
+
readingLists.sort(Prefs.getReadingListSortMode(ReadingLists.SORT_BY_NAME_ASC));
adapter.notifyDataSetChanged();
}
--
To view, visit https://gerrit.wikimedia.org/r/338371
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Id4fb34ac06501b4451f9337efc6d7fc4fa3ff1da
Gerrit-PatchSet: 3
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
Gerrit-Reviewer: Mholloway <[email protected]>
Gerrit-Reviewer: Niedzielski <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits