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

Change subject: Update design of feed content customization.
......................................................................


Update design of feed content customization.

Bug: T141397
Change-Id: I11b1646ec78750dd9757a9983a16f4ba287c1e27
---
M app/src/main/java/org/wikipedia/feed/FeedContentType.java
M app/src/main/java/org/wikipedia/feed/configure/ConfigureFragment.java
M app/src/main/java/org/wikipedia/feed/configure/ConfigureItemView.java
R app/src/main/res/drawable/ic_reorder_black_24dp.xml
M app/src/main/res/layout/fragment_feed_configure.xml
M app/src/main/res/layout/item_feed_content_type.xml
M app/src/main/res/layout/view_explore_overflow.xml
M app/src/main/res/menu/menu_feed_configure.xml
M app/src/main/res/values-qq/strings.xml
M app/src/main/res/values/strings.xml
10 files changed, 124 insertions(+), 57 deletions(-)

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



diff --git a/app/src/main/java/org/wikipedia/feed/FeedContentType.java 
b/app/src/main/java/org/wikipedia/feed/FeedContentType.java
index 0731980..afc94cf 100644
--- a/app/src/main/java/org/wikipedia/feed/FeedContentType.java
+++ b/app/src/main/java/org/wikipedia/feed/FeedContentType.java
@@ -22,63 +22,63 @@
 import static org.wikipedia.util.ReleaseUtil.isPreBetaRelease;
 
 public enum FeedContentType implements EnumCode {
-    NEWS(0, R.string.view_card_news_title) {
+    NEWS(0, R.string.view_card_news_title, R.string.feed_item_type_news) {
         @Nullable
         @Override
         public FeedClient newClient(AggregatedFeedContentClient 
aggregatedClient, int age, boolean isOnline) {
             return isEnabled() && age == 0 && isOnline ? new 
AggregatedFeedContentClient.InTheNews(aggregatedClient) : null;
         }
     },
-    FEATURED_ARTICLE(1, R.string.view_featured_article_card_title) {
+    FEATURED_ARTICLE(1, R.string.view_featured_article_card_title, 
R.string.feed_item_type_featured_article) {
         @Nullable
         @Override
         public FeedClient newClient(AggregatedFeedContentClient 
aggregatedClient, int age, boolean isOnline) {
             return isEnabled() && isOnline ? new 
AggregatedFeedContentClient.FeaturedArticle(aggregatedClient) : null;
         }
     },
-    TRENDING_ARTICLES(2, R.string.most_read_list_card_title) {
+    TRENDING_ARTICLES(2, R.string.most_read_list_card_title, 
R.string.feed_item_type_trending) {
         @Nullable
         @Override
         public FeedClient newClient(AggregatedFeedContentClient 
aggregatedClient, int age, boolean isOnline) {
             return isEnabled() && isOnline ? new 
AggregatedFeedContentClient.TrendingArticles(aggregatedClient) : null;
         }
     },
-    FEATURED_IMAGE(3, R.string.view_featured_image_card_title) {
+    FEATURED_IMAGE(3, R.string.view_featured_image_card_title, 
R.string.feed_item_type_featured_image) {
         @Nullable
         @Override
         public FeedClient newClient(AggregatedFeedContentClient 
aggregatedClient, int age, boolean isOnline) {
             return isEnabled() && isOnline ? new 
AggregatedFeedContentClient.FeaturedImage(aggregatedClient) : null;
         }
     },
-    ON_THIS_DAY(4, R.string.on_this_day_card_title) {
+    ON_THIS_DAY(4, R.string.on_this_day_card_title, 
R.string.feed_item_type_on_this_day) {
         @Nullable
         @Override
         public FeedClient newClient(AggregatedFeedContentClient 
aggregatedClient, int age, boolean isOnline) {
             return isEnabled() && isOnline && isPreBetaRelease() ? new 
OnThisDayClient() : null;
         }
     },
-    CONTINUE_READING(5, R.string.view_continue_reading_card_title) {
+    CONTINUE_READING(5, R.string.view_continue_reading_card_title, 
R.string.feed_item_type_continue_reading) {
         @Nullable
         @Override
         public FeedClient newClient(AggregatedFeedContentClient 
aggregatedClient, int age, boolean isOnline) {
             return isEnabled() ? new ContinueReadingClient() : null;
         }
     },
-    BECAUSE_YOU_READ(6, R.string.view_because_you_read_card_title) {
+    BECAUSE_YOU_READ(6, R.string.view_because_you_read_card_title, 
R.string.feed_item_type_because_you_read) {
         @Nullable
         @Override
         public FeedClient newClient(AggregatedFeedContentClient 
aggregatedClient, int age, boolean isOnline) {
             return isEnabled() && isOnline ? new BecauseYouReadClient() : null;
         }
     },
-    MAIN_PAGE(7, R.string.view_main_page_card_title) {
+    MAIN_PAGE(7, R.string.view_main_page_card_title, 
R.string.feed_item_type_main_page) {
         @Nullable
         @Override
         public FeedClient newClient(AggregatedFeedContentClient 
aggregatedClient, int age, boolean isOnline) {
             return isEnabled() && age == 0 ? new MainPageClient() : null;
         }
     },
-    RANDOM(8, R.string.view_random_card_title) {
+    RANDOM(8, R.string.view_random_card_title, 
R.string.feed_item_type_randomizer) {
         @Nullable
         @Override
         public FeedClient newClient(AggregatedFeedContentClient 
aggregatedClient, int age, boolean isOnline) {
@@ -90,6 +90,7 @@
             = new EnumCodeMap<>(FeedContentType.class);
     private final int code;
     @StringRes private final int titleId;
+    @StringRes private final int subtitleId;
     private int order;
     private boolean enabled = true;
 
@@ -105,8 +106,12 @@
         return code;
     }
 
-    public int titleId() {
+    @StringRes public int titleId() {
         return titleId;
+    }
+
+    @StringRes public int subtitleId() {
+        return subtitleId;
     }
 
     public boolean isEnabled() {
@@ -125,10 +130,11 @@
         this.order = order;
     }
 
-    FeedContentType(int code, @StringRes int titleId) {
+    FeedContentType(int code, @StringRes int titleId, @StringRes int 
subtitleId) {
         this.code = code;
         this.order = code;
         this.titleId = titleId;
+        this.subtitleId = subtitleId;
     }
 
     public static void saveState() {
diff --git 
a/app/src/main/java/org/wikipedia/feed/configure/ConfigureFragment.java 
b/app/src/main/java/org/wikipedia/feed/configure/ConfigureFragment.java
index 340021e..8cd4173 100644
--- a/app/src/main/java/org/wikipedia/feed/configure/ConfigureFragment.java
+++ b/app/src/main/java/org/wikipedia/feed/configure/ConfigureFragment.java
@@ -18,7 +18,7 @@
 import org.wikipedia.feed.FeedContentType;
 import org.wikipedia.settings.Prefs;
 import org.wikipedia.views.DefaultViewHolder;
-import org.wikipedia.views.HeaderMarginItemDecoration;
+import org.wikipedia.views.DrawableItemDecoration;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -76,11 +76,25 @@
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
+            case R.id.menu_feed_configure_select_all:
+                for (FeedContentType type : FeedContentType.values()) {
+                    type.setEnabled(true);
+                }
+                touch();
+                recyclerView.getAdapter().notifyDataSetChanged();
+                return true;
+            case R.id.menu_feed_configure_deselect_all:
+                for (FeedContentType type : FeedContentType.values()) {
+                    type.setEnabled(false);
+                }
+                touch();
+                recyclerView.getAdapter().notifyDataSetChanged();
+                return true;
             case R.id.menu_feed_configure_reset:
                 Prefs.resetFeedCustomizations();
                 FeedContentType.restoreState();
                 prepareContentTypeList();
-                
getActivity().setResult(ConfigureActivity.CONFIGURATION_CHANGED_RESULT);
+                touch();
                 recyclerView.getAdapter().notifyDataSetChanged();
                 return true;
             default:
@@ -100,10 +114,7 @@
         ConfigureItemAdapter adapter = new ConfigureItemAdapter();
         recyclerView.setAdapter(adapter);
         recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
-
-        recyclerView.addItemDecoration(new 
HeaderMarginItemDecoration(getContext(),
-                R.dimen.view_feed_padding_top,
-                R.dimen.view_feed_padding_top));
+        recyclerView.addItemDecoration(new 
DrawableItemDecoration(getContext(), R.attr.list_separator_drawable));
 
         itemTouchHelper = new ItemTouchHelper(new 
RearrangeableItemTouchHelperCallback(adapter));
         itemTouchHelper.attachToRecyclerView(recyclerView);
@@ -111,17 +122,21 @@
 
     @Override
     public void onCheckedChanged(FeedContentType contentType, boolean checked) 
{
-        
getActivity().setResult(ConfigureActivity.CONFIGURATION_CHANGED_RESULT);
+        touch();
         contentType.setEnabled(checked);
     }
 
     private void updateItemOrder() {
-        
getActivity().setResult(ConfigureActivity.CONFIGURATION_CHANGED_RESULT);
+        touch();
         for (int i = 0; i < orderedContentTypes.size(); i++) {
             orderedContentTypes.get(i).setOrder(i);
         }
     }
 
+    private void touch() {
+        
getActivity().setResult(ConfigureActivity.CONFIGURATION_CHANGED_RESULT);
+    }
+
     private class ConfigureItemHolder extends 
DefaultViewHolder<ConfigureItemView> {
         ConfigureItemHolder(ConfigureItemView itemView) {
             super(itemView);
diff --git 
a/app/src/main/java/org/wikipedia/feed/configure/ConfigureItemView.java 
b/app/src/main/java/org/wikipedia/feed/configure/ConfigureItemView.java
index 4e6bfe4..47ccc79 100644
--- a/app/src/main/java/org/wikipedia/feed/configure/ConfigureItemView.java
+++ b/app/src/main/java/org/wikipedia/feed/configure/ConfigureItemView.java
@@ -7,6 +7,7 @@
 import android.view.ViewGroup;
 import android.widget.CheckBox;
 import android.widget.FrameLayout;
+import android.widget.TextView;
 
 import org.wikipedia.R;
 import org.wikipedia.feed.FeedContentType;
@@ -20,7 +21,9 @@
         void onCheckedChanged(FeedContentType contentType, boolean checked);
     }
 
-    @BindView(R.id.feed_content_type_checkbox) CheckBox titleView;
+    @BindView(R.id.feed_content_type_checkbox) CheckBox checkBox;
+    @BindView(R.id.feed_content_type_title) TextView titleView;
+    @BindView(R.id.feed_content_type_subtitle) TextView subtitleView;
     @BindView(R.id.feed_content_type_drag_handle) View dragHandleView;
     @Nullable private Callback callback;
     private FeedContentType contentType;
@@ -47,7 +50,8 @@
     public void setContents(FeedContentType contentType) {
         this.contentType = contentType;
         titleView.setText(contentType.titleId());
-        titleView.setChecked(contentType.isEnabled());
+        subtitleView.setText(contentType.subtitleId());
+        checkBox.setChecked(contentType.isEnabled());
     }
 
     public void setDragHandleTouchListener(OnTouchListener listener) {
diff --git a/app/src/main/res/drawable/ic_drag_handle_black_24dp.xml 
b/app/src/main/res/drawable/ic_reorder_black_24dp.xml
similarity index 70%
rename from app/src/main/res/drawable/ic_drag_handle_black_24dp.xml
rename to app/src/main/res/drawable/ic_reorder_black_24dp.xml
index 68a7190..2b87cd8 100644
--- a/app/src/main/res/drawable/ic_drag_handle_black_24dp.xml
+++ b/app/src/main/res/drawable/ic_reorder_black_24dp.xml
@@ -5,5 +5,5 @@
         android:viewportHeight="24.0">
     <path
         android:fillColor="#FF000000"
-        android:pathData="M20,9H4v2h16V9zM4,15h16v-2H4v2z"/>
+        
android:pathData="M3,15h18v-2L3,13v2zM3,19h18v-2L3,17v2zM3,11h18L21,9L3,9v2zM3,5v2h18L21,5L3,5z"/>
 </vector>
diff --git a/app/src/main/res/layout/fragment_feed_configure.xml 
b/app/src/main/res/layout/fragment_feed_configure.xml
index 42d7eeb..0a8ceb8 100644
--- a/app/src/main/res/layout/fragment_feed_configure.xml
+++ b/app/src/main/res/layout/fragment_feed_configure.xml
@@ -10,8 +10,6 @@
         android:id="@+id/content_types_recycler"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_marginLeft="@dimen/activity_horizontal_margin"
-        android:layout_marginRight="@dimen/activity_horizontal_margin"
         android:scrollbars="vertical" />
 
 </LinearLayout>
diff --git a/app/src/main/res/layout/item_feed_content_type.xml 
b/app/src/main/res/layout/item_feed_content_type.xml
index dc62ce4..6618ce9 100644
--- a/app/src/main/res/layout/item_feed_content_type.xml
+++ b/app/src/main/res/layout/item_feed_content_type.xml
@@ -1,41 +1,56 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.v7.widget.CardView
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android";
     xmlns:app="http://schemas.android.com/apk/res-auto";
     xmlns:tools="http://schemas.android.com/tools";
-    android:orientation="vertical"
     android:layout_width="match_parent"
-    android:layout_height="64dp"
-    app:cardBackgroundColor="?attr/paper_color"
-    app:cardUseCompatPadding="true">
+    android:layout_height="match_parent"
+    android:background="?attr/paper_color">
+
+    <CheckBox
+        android:id="@+id/feed_content_type_checkbox"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:layout_marginStart="12dp"
+        android:layout_gravity="center_vertical"/>
 
     <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:paddingLeft="16dp"
+        android:paddingRight="16dp"
+        android:paddingTop="16dp"
+        android:paddingBottom="16dp"
+        android:orientation="vertical"
+        android:layout_gravity="center_vertical">
 
-        <CheckBox
-            android:id="@+id/feed_content_type_checkbox"
-            android:layout_width="0dp"
+        <TextView
+            android:id="@+id/feed_content_type_title"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:layout_gravity="center_vertical"
-            android:layout_marginStart="8dp"
-            android:layout_marginEnd="8dp"
-            android:drawablePadding="8dp"
-            style="@style/RtlAwareTextView"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:textColor="?attr/secondary_text_color"
+            style="@style/MaterialListTitle"
+            android:textAppearance="@style/RtlAwareTextView"
             tools:text="Lorem ipsum"/>
 
-        <ImageView
-            android:id="@+id/feed_content_type_drag_handle"
-            android:layout_width="48dp"
-            android:layout_height="match_parent"
-            app:srcCompat="@drawable/ic_drag_handle_black_24dp"
-            android:scaleType="center"
-            android:tint="?attr/secondary_text_color"
-            android:contentDescription="@null"/>
+        <org.wikipedia.views.GoneIfEmptyTextView
+            android:id="@+id/feed_content_type_subtitle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="2dp"
+            style="@style/MaterialListSubtitle"
+            android:textAppearance="@style/RtlAwareTextView"
+            tools:text="Lorem ipsum"/>
 
     </LinearLayout>
 
-</android.support.v7.widget.CardView>
+    <ImageView
+        android:id="@+id/feed_content_type_drag_handle"
+        android:layout_width="56dp"
+        android:layout_height="match_parent"
+        app:srcCompat="@drawable/ic_reorder_black_24dp"
+        android:scaleType="center"
+        android:tint="?attr/secondary_text_color"
+        android:contentDescription="@null"/>
+
+</LinearLayout>
diff --git a/app/src/main/res/layout/view_explore_overflow.xml 
b/app/src/main/res/layout/view_explore_overflow.xml
index bc89dca..4dfa55c 100644
--- a/app/src/main/res/layout/view_explore_overflow.xml
+++ b/app/src/main/res/layout/view_explore_overflow.xml
@@ -48,7 +48,7 @@
         <TextView
             android:id="@+id/explore_overflow_configure_cards"
             style="@style/OverflowMenuItem"
-            android:text="@string/feed_configure_menu_title"/>
+            android:text="@string/feed_configure_activity_title"/>
 
         <TextView
             android:id="@+id/explore_overflow_compilations"
diff --git a/app/src/main/res/menu/menu_feed_configure.xml 
b/app/src/main/res/menu/menu_feed_configure.xml
index 93bcd19..a2cc8f0 100644
--- a/app/src/main/res/menu/menu_feed_configure.xml
+++ b/app/src/main/res/menu/menu_feed_configure.xml
@@ -3,7 +3,14 @@
     xmlns:app="http://schemas.android.com/apk/res-auto";
     xmlns:tools="http://schemas.android.com/tools";
     tools:ignore="AlwaysShowAction">
+    <item android:id="@+id/menu_feed_configure_select_all"
+        android:title="@string/feed_configure_menu_select_all"
+        app:showAsAction="never"/>
+    <item android:id="@+id/menu_feed_configure_deselect_all"
+        android:title="@string/feed_configure_menu_deselect_all"
+        app:showAsAction="never"/>
     <item android:id="@+id/menu_feed_configure_reset"
         android:title="@string/feed_configure_menu_reset"
         app:showAsAction="never"/>
+
 </menu>
diff --git a/app/src/main/res/values-qq/strings.xml 
b/app/src/main/res/values-qq/strings.xml
index 98335dc..9d911df 100644
--- a/app/src/main/res/values-qq/strings.xml
+++ b/app/src/main/res/values-qq/strings.xml
@@ -409,9 +409,20 @@
   <string name="view_featured_article_card_title">Title shown in the Featured 
Article card in the Explore feed\n{{Identical|Featured article}}</string>
   <string name="view_featured_article_footer_save_button_label">Button label 
for saving the current featured article to a reading list, if it is not already 
saved.\n{{Identical|Save}}</string>
   <string name="view_featured_article_footer_saved_button_label">Button label 
for when the current featured article is already saved to a reading list, but 
may now be removed from the list, or saved to a different 
list.\n{{Identical|Saved}}</string>
-  <string name="feed_configure_menu_title">Menu label for showing the screen 
where the user configures which cards are shown in the Explore feed.</string>
-  <string name="feed_configure_activity_title">Title shown at the top of the 
screen where the user configures which cards are shown in the Explore 
feed.</string>
-  <string name="feed_configure_menu_reset">Menu label for resetting the 
configuration of the Explore feed cards to the original defaults.</string>
+  <string name="feed_configure_menu_title">Menu label for showing the screen 
where the user customizes which cards are shown in the Explore feed.</string>
+  <string name="feed_configure_activity_title">Title shown at the top of the 
screen where the user customizes which cards are shown in the Explore 
feed.</string>
+  <string name="feed_configure_menu_reset">Menu label for resetting the 
customization of the Explore feed cards to the original defaults.</string>
+  <string name="feed_configure_menu_select_all">Menu label for selecting all 
types of Explore feed cards to be shown.</string>
+  <string name="feed_configure_menu_deselect_all">Menu label for deselecting 
all types of Explore feed cards from being shown.</string>
+  <string name="feed_item_type_news">Short description for Explore feed card 
that contains daily news items</string>
+  <string name="feed_item_type_on_this_day">Short description for Explore feed 
card that contains events that occurred on this day in history</string>
+  <string name="feed_item_type_continue_reading">Short description for Explore 
feed card that contains a link to previous article(s) read by the user</string>
+  <string name="feed_item_type_because_you_read">Short description for Explore 
feed card that contains suggestions based on the browsing history of the 
user</string>
+  <string name="feed_item_type_featured_article">Short description for Explore 
feed card that contains the daily featured article</string>
+  <string name="feed_item_type_trending">Short description for Explore feed 
card that contains daily trending articles</string>
+  <string name="feed_item_type_featured_image">Short description for Explore 
feed card that contains the daily featured image from Commons</string>
+  <string name="feed_item_type_main_page">Short description for Explore feed 
card that contains a link to the Main Page</string>
+  <string name="feed_item_type_randomizer">Short description for Explore feed 
card that generates random articles</string>
   <string name="description_edit_text_hint">Hint text that is shown when the 
description field is empty.</string>
   <string name="description_edit_save">Hint for the button that is pressed for 
saving the new description.\n{{Identical|Publish}}</string>
   <string name="description_edit_add_description">Label that prompts the user 
to add a description to an article that does not yet have one.</string>
diff --git a/app/src/main/res/values/strings.xml 
b/app/src/main/res/values/strings.xml
index c8d4a29..a7cc590 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -444,8 +444,19 @@
     <string name="view_featured_article_footer_save_button_label">Save</string>
     <string 
name="view_featured_article_footer_saved_button_label">Saved</string>
     <string name="feed_configure_menu_title">Configure cards</string>
-    <string name="feed_configure_activity_title">Configure Explore 
cards</string>
-    <string name="feed_configure_menu_reset">Reset to defaults</string>
+    <string name="feed_configure_activity_title">Customize the feed</string>
+    <string name="feed_configure_menu_reset">Restore default view</string>
+    <string name="feed_configure_menu_select_all">Select all</string>
+    <string name="feed_configure_menu_deselect_all">Deselect all</string>
+    <string name="feed_item_type_news">Articles about current events</string>
+    <string name="feed_item_type_on_this_day">Events in history on this 
day</string>
+    <string name="feed_item_type_continue_reading">Quick link back to reading 
an open article in one of your tabs</string>
+    <string name="feed_item_type_because_you_read">Suggestions based on a 
recently read article from your history</string>
+    <string name="feed_item_type_featured_article">Daily featured article on 
Wikipedia</string>
+    <string name="feed_item_type_trending">Daily most-viewed articles</string>
+    <string name="feed_item_type_featured_image">Daily featured image from 
Wikimedia Commons</string>
+    <string name="feed_item_type_main_page">Main page of Wikipedia with daily 
featured content</string>
+    <string name="feed_item_type_randomizer">Generate random articles to 
read</string>
     <!-- /The Feed -->
 
     <!-- Description editing -->

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I11b1646ec78750dd9757a9983a16f4ba287c1e27
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