jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/405834 )

Change subject: Fix display of Default list title in numerous places.
......................................................................


Fix display of Default list title in numerous places.

The replacement of the Default list's empty title with the "Saved" string
should be done at the level of the ReadingList class itself.  This will
eliminate the need for any conditional logic anywhere else for determining
whether to display the list title or the default "Saved" title.

This also automatically fixes a number of places where we're incorrectly
showing an empty string instead of the default list title.

Change-Id: Ide69597f4041ded39331695d6dc6dcf5861f0e37
---
M app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java
M app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
M app/src/main/java/org/wikipedia/readinglist/ReadingListItemView.java
M app/src/main/java/org/wikipedia/readinglist/ReadingListTitleDialog.java
M app/src/main/java/org/wikipedia/readinglist/database/ReadingList.java
M app/src/main/java/org/wikipedia/readinglist/database/ReadingListTable.java
M app/src/main/java/org/wikipedia/util/StringUtil.java
7 files changed, 28 insertions(+), 17 deletions(-)

Approvals:
  Sharvaniharan: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java 
b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java
index bd141da..6f891d5 100644
--- a/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java
+++ b/app/src/main/java/org/wikipedia/readinglist/AddToReadingListDialog.java
@@ -215,7 +215,7 @@
     private void addAndDismiss(final ReadingList readingList, final PageTitle 
title) {
 
         if (readingList.pages().size() >= 
Constants.MAX_READING_LIST_ARTICLE_LIMIT) {
-            String message = 
String.format(getString(R.string.reading_list_article_limit_message), 
readingList.isDefault() ? getString(R.string.default_reading_list_name) : 
readingList.title());
+            String message = 
String.format(getString(R.string.reading_list_article_limit_message), 
readingList.title());
             FeedbackUtil.makeSnackbar(getActivity(), message, 
FeedbackUtil.LENGTH_DEFAULT).show();
             dismiss();
             return;
@@ -233,8 +233,7 @@
                     showViewListSnackBar(readingList, message);
 
                 } else {
-                    message = 
String.format(getString(R.string.reading_list_added_to_named),
-                            readingList.isDefault() ? 
getString(R.string.default_reading_list_name) : readingList.title());
+                    message = 
String.format(getString(R.string.reading_list_added_to_named), 
readingList.title());
                     new 
ReadingListsFunnel(title.getWikiSite()).logAddToList(readingList, 
readingLists.size(), invokeSource);
 
                     ReadingListDbHelper.instance().addPageToList(readingList, 
title, true);
@@ -249,7 +248,7 @@
     private void addAndDismiss(final ReadingList readingList, final 
List<PageTitle> titles) {
 
         if ((readingList.pages().size() + titles.size()) > 
Constants.MAX_READING_LIST_ARTICLE_LIMIT) {
-            String message = 
String.format(getString(R.string.reading_list_article_limit_message), 
readingList.isDefault() ? getString(R.string.default_reading_list_name) : 
readingList.title());
+            String message = 
String.format(getString(R.string.reading_list_article_limit_message), 
readingList.title());
             FeedbackUtil.makeSnackbar(getActivity(), message, 
FeedbackUtil.LENGTH_DEFAULT).show();
             dismiss();
             return;
@@ -271,7 +270,7 @@
                     message = 
getString(R.string.reading_list_already_contains_selection);
                 } else {
                     message = 
String.format(getString(R.string.reading_list_added_articles_list_titled), 
numAdded,
-                            readingList.isDefault() ? 
getString(R.string.default_reading_list_name) : readingList.title());
+                            readingList.title());
                     new ReadingListsFunnel().logAddToList(readingList, 
readingLists.size(), invokeSource);
                 }
                 showViewListSnackBar(readingList, message);
diff --git 
a/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java 
b/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
index 9dbf0b2..e7a5599 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
@@ -234,7 +234,7 @@
         ReadingList.sort(readingList, 
Prefs.getReadingListPageSortMode(ReadingList.SORT_BY_NAME_ASC));
         setSearchQuery(currentSearchQuery);
         if (!articleLimitMessageShown && readingList.pages().size() >= 
Constants.MAX_READING_LIST_ARTICLE_LIMIT) {
-            String message = 
String.format(getString(R.string.reading_list_article_limit_message), 
readingList.isDefault() ? getString(R.string.default_reading_list_name) : 
readingList.title());
+            String message = 
String.format(getString(R.string.reading_list_article_limit_message), 
readingList.title());
             FeedbackUtil.makeSnackbar(getActivity(), message, 
FeedbackUtil.LENGTH_DEFAULT).show();
             articleLimitMessageShown = true;
         }
diff --git 
a/app/src/main/java/org/wikipedia/readinglist/ReadingListItemView.java 
b/app/src/main/java/org/wikipedia/readinglist/ReadingListItemView.java
index acdf7c7..15b153d 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListItemView.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListItemView.java
@@ -156,9 +156,7 @@
         }
         defaultListEmptyView.setVisibility((readingList.isDefault() && 
readingList.pages().size() == 0) ? VISIBLE : GONE);
         imageContainer.setVisibility(defaultListEmptyView.getVisibility() == 
VISIBLE ? GONE : VISIBLE);
-        titleView.setText(readingList.isDefault()
-                ? getString(R.string.default_reading_list_name)
-                : readingList.title());
+        titleView.setText(readingList.title());
         if (readingList.isDefault()) {
             
descriptionView.setText(getContext().getString(R.string.default_reading_list_description));
             descriptionView.setTypeface(descriptionView.getTypeface(), 
Typeface.NORMAL);
diff --git 
a/app/src/main/java/org/wikipedia/readinglist/ReadingListTitleDialog.java 
b/app/src/main/java/org/wikipedia/readinglist/ReadingListTitleDialog.java
index 23adeed..9f6b2d6 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListTitleDialog.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListTitleDialog.java
@@ -35,7 +35,7 @@
                         if (StringUtils.isEmpty(title)) {
                             
dialog.setError(dialog.getContext().getString(R.string.reading_list_entry_empty));
                             dialog.setPositiveButtonEnabled(false);
-                        } else if 
(title.equalsIgnoreCase(context.getString(R.string.default_reading_list_name)) 
|| otherTitles.contains(title)) {
+                        } else if (otherTitles.contains(title)) {
                             
dialog.setError(dialog.getContext().getString(R.string.reading_list_title_exists,
 title));
                             dialog.setPositiveButtonEnabled(false);
                         } else {
diff --git 
a/app/src/main/java/org/wikipedia/readinglist/database/ReadingList.java 
b/app/src/main/java/org/wikipedia/readinglist/database/ReadingList.java
index b996c16..4a93581 100644
--- a/app/src/main/java/org/wikipedia/readinglist/database/ReadingList.java
+++ b/app/src/main/java/org/wikipedia/readinglist/database/ReadingList.java
@@ -4,6 +4,10 @@
 import android.support.annotation.Nullable;
 import android.text.TextUtils;
 
+import org.wikipedia.R;
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.util.StringUtil;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -60,10 +64,13 @@
     }
 
     @NonNull public String title() {
-        return title;
+        return isDefault() ? 
WikipediaApp.getInstance().getString(R.string.default_reading_list_name) : 
title;
     }
     public void title(@NonNull String title) {
         this.title = title;
+    }
+    public String dbTitle() {
+        return title;
     }
 
     @Nullable public String description() {
@@ -119,10 +126,10 @@
     public static void sort(ReadingList list, int sortMode) {
         switch (sortMode) {
             case SORT_BY_NAME_ASC:
-                Collections.sort(list.pages(), (lhs, rhs) -> 
lhs.title().compareTo(rhs.title()));
+                Collections.sort(list.pages(), (lhs, rhs) -> 
StringUtil.accentCaseInsensitiveCompare(lhs.title(), rhs.title()));
                 break;
             case SORT_BY_NAME_DESC:
-                Collections.sort(list.pages(), (lhs, rhs) -> 
rhs.title().compareTo(lhs.title()));
+                Collections.sort(list.pages(), (lhs, rhs) -> 
StringUtil.accentCaseInsensitiveCompare(rhs.title(), lhs.title()));
                 break;
             case SORT_BY_RECENT_ASC:
                 Collections.sort(list.pages(), (lhs, rhs) -> ((Long) 
lhs.atime()).compareTo(rhs.atime()));
@@ -138,10 +145,10 @@
     public static void sort(List<ReadingList> lists, int sortMode) {
         switch (sortMode) {
             case SORT_BY_NAME_ASC:
-                Collections.sort(lists, (lhs, rhs) -> 
lhs.title().compareTo(rhs.title()));
+                Collections.sort(lists, (lhs, rhs) -> 
StringUtil.accentCaseInsensitiveCompare(lhs.title(), rhs.title()));
                 break;
             case SORT_BY_NAME_DESC:
-                Collections.sort(lists, (lhs, rhs) -> 
rhs.title().compareTo(lhs.title()));
+                Collections.sort(lists, (lhs, rhs) -> 
StringUtil.accentCaseInsensitiveCompare(rhs.title(), lhs.title()));
                 break;
             case SORT_BY_RECENT_ASC:
                 Collections.sort(lists, (lhs, rhs) -> ((Long) 
lhs.atime()).compareTo(rhs.atime()));
diff --git 
a/app/src/main/java/org/wikipedia/readinglist/database/ReadingListTable.java 
b/app/src/main/java/org/wikipedia/readinglist/database/ReadingListTable.java
index 0500631..b7ae295 100644
--- a/app/src/main/java/org/wikipedia/readinglist/database/ReadingListTable.java
+++ b/app/src/main/java/org/wikipedia/readinglist/database/ReadingListTable.java
@@ -50,7 +50,7 @@
 
     @Override protected ContentValues toContentValues(@NonNull ReadingList 
row) {
         ContentValues contentValues = new ContentValues();
-        contentValues.put(ReadingListContract.Col.TITLE.getName(), 
row.title());
+        contentValues.put(ReadingListContract.Col.TITLE.getName(), 
row.dbTitle());
         contentValues.put(ReadingListContract.Col.MTIME.getName(), 
row.mtime());
         contentValues.put(ReadingListContract.Col.ATIME.getName(), 
row.atime());
         contentValues.put(ReadingListContract.Col.DESCRIPTION.getName(), 
row.description());
@@ -66,7 +66,7 @@
     }
 
     @Override protected String[] getUnfilteredPrimaryKeySelectionArgs(@NonNull 
ReadingList row) {
-        return new String[] {row.title()};
+        return new String[] {row.dbTitle()};
     }
 
     @Override protected int getDBVersionIntroducedAt() {
diff --git a/app/src/main/java/org/wikipedia/util/StringUtil.java 
b/app/src/main/java/org/wikipedia/util/StringUtil.java
index 93d070d..d08b36c 100644
--- a/app/src/main/java/org/wikipedia/util/StringUtil.java
+++ b/app/src/main/java/org/wikipedia/util/StringUtil.java
@@ -12,6 +12,8 @@
 import android.text.style.StyleSpan;
 import android.text.style.TypefaceSpan;
 
+import org.apache.commons.lang3.StringUtils;
+
 import java.io.UnsupportedEncodingException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
@@ -130,6 +132,11 @@
                 .equals(Normalizer.normalize(str2, Normalizer.Form.NFC));
     }
 
+    public static int accentCaseInsensitiveCompare(@NonNull String str1, 
@NonNull String str2) {
+        return StringUtils.stripAccents(str1).toLowerCase()
+                .compareTo(StringUtils.stripAccents(str2).toLowerCase());
+    }
+
     /**
      * @param source String that may contain HTML tags.
      * @return returned Spanned string that may contain spans parsed from the 
HTML source.

-- 
To view, visit https://gerrit.wikimedia.org/r/405834
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ide69597f4041ded39331695d6dc6dcf5861f0e37
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <dbr...@wikimedia.org>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Cooltey <cf...@wikimedia.org>
Gerrit-Reviewer: Sharvaniharan <sha...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to