Dbrant has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/393609 )

Change subject: New: onboarding card for customizing the Feed.
......................................................................

New: onboarding card for customizing the Feed.

Bug: T181147
Change-Id: I2a72ae93c618452317250c91927313d7b8cf9a9b
---
M app/src/main/java/org/wikipedia/feed/FeedFragment.java
M app/src/main/java/org/wikipedia/feed/announcement/Announcement.java
M app/src/main/java/org/wikipedia/feed/announcement/AnnouncementCard.java
M app/src/main/java/org/wikipedia/feed/announcement/AnnouncementCardView.java
M app/src/main/java/org/wikipedia/feed/model/CardType.java
A app/src/main/java/org/wikipedia/feed/onboarding/CustomizeOnboardingCard.java
M app/src/main/java/org/wikipedia/feed/onboarding/OnboardingClient.java
M app/src/main/java/org/wikipedia/settings/Prefs.java
M app/src/main/java/org/wikipedia/util/UriUtil.java
M app/src/main/res/values-qq/strings.xml
M app/src/main/res/values/preference_keys.xml
M app/src/main/res/values/strings.xml
12 files changed, 81 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/09/393609/1

diff --git a/app/src/main/java/org/wikipedia/feed/FeedFragment.java 
b/app/src/main/java/org/wikipedia/feed/FeedFragment.java
index bcd8ea4..f1c939b 100644
--- a/app/src/main/java/org/wikipedia/feed/FeedFragment.java
+++ b/app/src/main/java/org/wikipedia/feed/FeedFragment.java
@@ -443,6 +443,8 @@
             } else if (uri.toString().equals(UriUtil.LOCAL_URL_SETTINGS)) {
                 
startActivityForResult(SettingsActivity.newIntent(getContext()),
                         SettingsActivity.ACTIVITY_REQUEST_SHOW_SETTINGS);
+            } else if 
(uri.toString().equals(UriUtil.LOCAL_URL_CUSTOMIZE_FEED)) {
+                showConfigureActivity();
             } else {
                 UriUtil.handleExternalLink(getContext(), uri);
             }
@@ -526,6 +528,11 @@
         snackbar.show();
     }
 
+    private void showConfigureActivity() {
+        startActivityForResult(ConfigureActivity.newIntent(getActivity()),
+                Constants.ACTIVITY_REQUEST_FEED_CONFIGURE);
+    }
+
     private void showOverflowMenu(@NonNull View anchor) {
         ExploreOverflowView overflowView = new 
ExploreOverflowView(getContext());
         overflowView.show(anchor, overflowCallback);
@@ -555,8 +562,7 @@
 
         @Override
         public void configureCardsClick() {
-            startActivityForResult(ConfigureActivity.newIntent(getActivity()),
-                    Constants.ACTIVITY_REQUEST_FEED_CONFIGURE);
+            showConfigureActivity();
         }
 
         @Override
diff --git 
a/app/src/main/java/org/wikipedia/feed/announcement/Announcement.java 
b/app/src/main/java/org/wikipedia/feed/announcement/Announcement.java
index 0f132de..5bd15fc 100644
--- a/app/src/main/java/org/wikipedia/feed/announcement/Announcement.java
+++ b/app/src/main/java/org/wikipedia/feed/announcement/Announcement.java
@@ -32,14 +32,17 @@
 
     @SuppressWarnings("unused,NullableProblems") @Required @NonNull private 
String text;
     @SuppressWarnings("unused") @Nullable private Action action;
+    @SuppressWarnings("unused") @Nullable private String negativeText;
 
     public Announcement() { }
 
-    public Announcement(@NonNull String id, @NonNull String text, @NonNull 
String imageUrl, @NonNull Action action) {
+    public Announcement(@NonNull String id, @NonNull String text, @NonNull 
String imageUrl,
+                        @NonNull Action action, @NonNull String negativeText) {
         this.id = id;
         this.text = text;
         this.imageUrl = imageUrl;
         this.action = action;
+        this.negativeText = negativeText;
     }
 
     @NonNull String id() {
@@ -106,6 +109,10 @@
         return defaultString(imageUrl);
     }
 
+    @Nullable String negativeText() {
+        return negativeText;
+    }
+
     public static class Action {
         @SuppressWarnings("unused,NullableProblems") @Required @NonNull 
private String title;
         @SuppressWarnings("unused,NullableProblems") @Required @NonNull 
private String url;
diff --git 
a/app/src/main/java/org/wikipedia/feed/announcement/AnnouncementCard.java 
b/app/src/main/java/org/wikipedia/feed/announcement/AnnouncementCard.java
index 4c22a43..2b7d2d3 100644
--- a/app/src/main/java/org/wikipedia/feed/announcement/AnnouncementCard.java
+++ b/app/src/main/java/org/wikipedia/feed/announcement/AnnouncementCard.java
@@ -34,6 +34,10 @@
         return Uri.parse(announcement.actionUrl());
     }
 
+    @Nullable public String negativeText() {
+        return announcement.negativeText();
+    }
+
     public boolean hasFooterCaption() {
         return announcement.hasFooterCaption();
     }
diff --git 
a/app/src/main/java/org/wikipedia/feed/announcement/AnnouncementCardView.java 
b/app/src/main/java/org/wikipedia/feed/announcement/AnnouncementCardView.java
index 51c8058..dede3cc 100644
--- 
a/app/src/main/java/org/wikipedia/feed/announcement/AnnouncementCardView.java
+++ 
b/app/src/main/java/org/wikipedia/feed/announcement/AnnouncementCardView.java
@@ -57,6 +57,9 @@
             actionViewNegative.setVisibility(VISIBLE);
             actionViewPositive.setText(card.actionTitle());
         }
+        if (!TextUtils.isEmpty(card.negativeText())) {
+            actionViewNegative.setText(card.negativeText());
+        }
 
         if (card.hasImage()) {
             headerImageView.setVisibility(VISIBLE);
diff --git a/app/src/main/java/org/wikipedia/feed/model/CardType.java 
b/app/src/main/java/org/wikipedia/feed/model/CardType.java
index 37672ac..c9d265a 100644
--- a/app/src/main/java/org/wikipedia/feed/model/CardType.java
+++ b/app/src/main/java/org/wikipedia/feed/model/CardType.java
@@ -101,6 +101,11 @@
             return new OnThisDayCardView(ctx);
         }
     },
+    ONBOARDING_CUSTOMIZE_FEED(19) {
+        @NonNull @Override public FeedCardView<?> newView(@NonNull Context 
ctx) {
+            return new AnnouncementCardView(ctx);
+        }
+    },
     OFFLINE(98) {
         @NonNull @Override public FeedCardView<?> newView(@NonNull Context 
ctx) {
             return new OfflineCardView(ctx);
diff --git 
a/app/src/main/java/org/wikipedia/feed/onboarding/CustomizeOnboardingCard.java 
b/app/src/main/java/org/wikipedia/feed/onboarding/CustomizeOnboardingCard.java
new file mode 100644
index 0000000..343c2c5
--- /dev/null
+++ 
b/app/src/main/java/org/wikipedia/feed/onboarding/CustomizeOnboardingCard.java
@@ -0,0 +1,26 @@
+package org.wikipedia.feed.onboarding;
+
+import android.support.annotation.NonNull;
+
+import org.wikipedia.R;
+import org.wikipedia.feed.announcement.Announcement;
+import org.wikipedia.feed.model.CardType;
+import org.wikipedia.util.DeviceUtil;
+
+public class CustomizeOnboardingCard extends OnboardingCard {
+    public CustomizeOnboardingCard(@NonNull Announcement announcement) {
+        super(announcement);
+    }
+
+    @NonNull @Override public CardType type() {
+        return CardType.ONBOARDING_CUSTOMIZE_FEED;
+    }
+
+    public boolean shouldShow() {
+        return super.shouldShow() && DeviceUtil.isOnline();
+    }
+
+    @Override public int prefKey() {
+        return R.string.preference_key_feed_customize_onboarding_card_enabled;
+    }
+}
diff --git 
a/app/src/main/java/org/wikipedia/feed/onboarding/OnboardingClient.java 
b/app/src/main/java/org/wikipedia/feed/onboarding/OnboardingClient.java
index a37bf5c..344e331 100644
--- a/app/src/main/java/org/wikipedia/feed/onboarding/OnboardingClient.java
+++ b/app/src/main/java/org/wikipedia/feed/onboarding/OnboardingClient.java
@@ -3,9 +3,12 @@
 import android.content.Context;
 import android.support.annotation.NonNull;
 
+import org.wikipedia.R;
 import org.wikipedia.dataclient.WikiSite;
+import org.wikipedia.feed.announcement.Announcement;
 import org.wikipedia.feed.dataclient.FeedClient;
 import org.wikipedia.feed.model.Card;
+import org.wikipedia.util.UriUtil;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -19,12 +22,22 @@
 //                "offlineOnboardingCard1",
 //                context.getString(R.string.offline_library_onboarding_text),
 //                
"https://upload.wikimedia.org/wikipedia/commons/5/5b/Illustration-OfflineLibraryPromo2_3x.png";,
-//                new 
Announcement.Action(context.getString(R.string.offline_library_onboarding_action),
-//                        UriUtil.LOCAL_URL_OFFLINE_LIBRARY)));
+//                new 
Announcement.Action(context.getString(R.string.offline_library_onboarding_action),
 UriUtil.LOCAL_URL_OFFLINE_LIBRARY),
+//                context.getString(R.string.onboarding_got_it)));
 //        if (card.shouldShow()) {
 //            cards.add(card);
 //        }
 
+        OnboardingCard card = new CustomizeOnboardingCard(new Announcement(
+                "customizeOnboardingCard1",
+                context.getString(R.string.feed_configure_onboarding_text),
+                
"https://upload.wikimedia.org/wikipedia/commons/3/3b/Announcement_header_for_Explore_Feed_customization.png";,
+                new 
Announcement.Action(context.getString(R.string.feed_configure_onboarding_action),
 UriUtil.LOCAL_URL_CUSTOMIZE_FEED),
+                context.getString(R.string.onboarding_got_it)));
+        if (card.shouldShow()) {
+            cards.add(card);
+        }
+
         cb.success(cards);
     }
 
diff --git a/app/src/main/java/org/wikipedia/settings/Prefs.java 
b/app/src/main/java/org/wikipedia/settings/Prefs.java
index 786df10..9fc5396 100644
--- a/app/src/main/java/org/wikipedia/settings/Prefs.java
+++ b/app/src/main/java/org/wikipedia/settings/Prefs.java
@@ -619,5 +619,9 @@
         remove(R.string.preference_key_feed_cards_order);
     }
 
+    public static void setFeedCustomizeTutorialCardEnabled(boolean enabled) {
+        
setBoolean(R.string.preference_key_feed_customize_onboarding_card_enabled, 
enabled);
+    }
+
     private Prefs() { }
 }
diff --git a/app/src/main/java/org/wikipedia/util/UriUtil.java 
b/app/src/main/java/org/wikipedia/util/UriUtil.java
index ef6a220..f196172 100644
--- a/app/src/main/java/org/wikipedia/util/UriUtil.java
+++ b/app/src/main/java/org/wikipedia/util/UriUtil.java
@@ -26,6 +26,7 @@
     public static final String LOCAL_URL_OFFLINE_LIBRARY = "#offlinelibrary";
     public static final String LOCAL_URL_SETTINGS = "#settings";
     public static final String LOCAL_URL_LOGIN = "#login";
+    public static final String LOCAL_URL_CUSTOMIZE_FEED = "#customizefeed";
 
     /**
      * Decodes a URL-encoded string into its UTF-8 equivalent. If the string 
cannot be decoded, the
diff --git a/app/src/main/res/values-qq/strings.xml 
b/app/src/main/res/values-qq/strings.xml
index 9d911df..bb4f62f 100644
--- a/app/src/main/res/values-qq/strings.xml
+++ b/app/src/main/res/values-qq/strings.xml
@@ -423,6 +423,8 @@
   <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="feed_configure_onboarding_action">Button label for onboarding 
card that introduces the customization of the Explore feed.</string>
+  <string name="feed_configure_onboarding_text">Onboarding text that describes 
the new functionality of customizing the Explore feed.</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>
@@ -525,6 +527,7 @@
   <string name="onboarding_create_account_sync">Short explanation of the 
benefits of creating an account, which is the ability to synchronize your 
reading lists.</string>
   <string name="onboarding_create_account_contributions">Short explanation of 
the benefits of creating an account, which is the ability to keep a record of 
your edits.</string>
   <string name="onboarding_create_account_preferences">Short explanation of 
the benefits of creating an account, which is the ability to save your 
preferences.</string>
+  <string name="onboarding_got_it">Button label for dismissing the current 
onboarding card.</string>
   <string name="app_shortcuts_random">A shortcut icon on the home screen for 
getting a random article.\n{{Identical|Random}}</string>
   <string name="app_shortcuts_continue_reading">A shortcut icon on the home 
screen for continuing reading an article.</string>
   <string name="app_shortcuts_search">A shortcut icon on the home screen for 
opening the search page.\n{{Identical|Search}}</string>
diff --git a/app/src/main/res/values/preference_keys.xml 
b/app/src/main/res/values/preference_keys.xml
index 9721fc0..4c21551 100644
--- a/app/src/main/res/values/preference_keys.xml
+++ b/app/src/main/res/values/preference_keys.xml
@@ -67,4 +67,5 @@
     <string 
name="preference_key_enable_offline_library">enableOfflineLibrary</string>
     <string name="preference_key_feed_cards_order">feedCardsOrder</string>
     <string name="preference_key_feed_cards_enabled">feedCardsEnabled</string>
+    <string 
name="preference_key_feed_customize_onboarding_card_enabled">feedCustomizeOnboardingCardEnabled</string>
 </resources>
diff --git a/app/src/main/res/values/strings.xml 
b/app/src/main/res/values/strings.xml
index a7cc590..477dd92 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -457,6 +457,8 @@
     <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>
+    <string name="feed_configure_onboarding_action">Customize</string>
+    <string name="feed_configure_onboarding_text"><![CDATA[<strong>Customize 
your Explore feed</strong><br /><br />You can now choose what to show on your 
feed, and also prioritize your favorite types of content.]]></string>
     <!-- /The Feed -->
 
     <!-- Description editing -->
@@ -580,6 +582,7 @@
     <string name="onboarding_create_account_sync">Sync your reading 
lists</string>
     <string name="onboarding_create_account_contributions">Keep track of your 
contributions</string>
     <string name="onboarding_create_account_preferences">Save your 
preferences</string>
+    <string name="onboarding_got_it">Got it</string>
     <!-- /Onboarding -->
 
     <!-- App Shortcuts -->

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2a72ae93c618452317250c91927313d7b8cf9a9b
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to