jenkins-bot has submitted this change and it was merged.

Change subject: Add tool tip onboarding state
......................................................................


Add tool tip onboarding state

Bug: T89985
Change-Id: I00ee82e858eb519c9d71579837e2e9332cbf4c71
---
M wikipedia/res/values/preference_keys.xml
M wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
A wikipedia/src/main/java/org/wikipedia/onboarding/OnboardingStateMachine.java
A 
wikipedia/src/main/java/org/wikipedia/onboarding/PrefsOnboardingStateMachine.java
M wikipedia/src/main/java/org/wikipedia/page/Page.java
M wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
M wikipedia/src/main/java/org/wikipedia/page/ToCHandler.java
M wikipedia/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
M wikipedia/src/main/java/org/wikipedia/settings/Prefs.java
9 files changed, 96 insertions(+), 12 deletions(-)

Approvals:
  BearND: Looks good to me, approved
  Mholloway: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/wikipedia/res/values/preference_keys.xml 
b/wikipedia/res/values/preference_keys.xml
index 59bb7ee..10bb64a 100644
--- a/wikipedia/res/values/preference_keys.xml
+++ b/wikipedia/res/values/preference_keys.xml
@@ -17,6 +17,8 @@
     <string name="preference_key_color_theme">colorTheme</string>
     <string name="preference_key_app_channel">channel</string>
     <string name="preference_key_language_mru">languageMru</string>
+    <string 
name="preference_key_select_text_tutorial_enabled">selectTextTutorialEnabled</string>
+    <string 
name="preference_key_share_tutorial_enabled">shareTutorialEnabled</string>
     <string name="preference_key_know_toc_drawer">knowToC</string>
     <string name="preference_key_show_images">showImages</string>
     <string name="preference_key_exp_page_load">expPageLoad</string>
diff --git a/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java 
b/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
index 5e8a898..95c8f02 100644
--- a/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
+++ b/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
@@ -34,6 +34,8 @@
 import org.wikipedia.login.UserInfoStorage;
 import org.wikipedia.migration.PerformMigrationsTask;
 import org.wikipedia.networking.MccMncStateHandler;
+import org.wikipedia.onboarding.OnboardingStateMachine;
+import org.wikipedia.onboarding.PrefsOnboardingStateMachine;
 import org.wikipedia.page.PageCache;
 import org.wikipedia.page.linkpreview.LinkPreviewVersion;
 import org.wikipedia.pageimages.PageImage;
@@ -555,6 +557,10 @@
         primarySite = null;
     }
 
+    public OnboardingStateMachine getOnboardingStateMachine() {
+        return PrefsOnboardingStateMachine.getInstance();
+    }
+
     private HashMap<String, String> buildCustomHeaders(String acceptLanguage) {
         // 
https://lists.wikimedia.org/pipermail/wikimedia-l/2014-April/071131.html
         HashMap<String, String> headers = new HashMap<>();
diff --git 
a/wikipedia/src/main/java/org/wikipedia/onboarding/OnboardingStateMachine.java 
b/wikipedia/src/main/java/org/wikipedia/onboarding/OnboardingStateMachine.java
new file mode 100644
index 0000000..4568a38
--- /dev/null
+++ 
b/wikipedia/src/main/java/org/wikipedia/onboarding/OnboardingStateMachine.java
@@ -0,0 +1,10 @@
+package org.wikipedia.onboarding;
+
+public interface OnboardingStateMachine {
+    boolean isTocTutorialEnabled();
+    void setTocTutorial();
+    boolean isSelectTextTutorialEnabled();
+    void setSelectTextTutorial();
+    boolean isShareTutorialEnabled();
+    void setShareTutorial();
+}
\ No newline at end of file
diff --git 
a/wikipedia/src/main/java/org/wikipedia/onboarding/PrefsOnboardingStateMachine.java
 
b/wikipedia/src/main/java/org/wikipedia/onboarding/PrefsOnboardingStateMachine.java
new file mode 100644
index 0000000..a6cabc4
--- /dev/null
+++ 
b/wikipedia/src/main/java/org/wikipedia/onboarding/PrefsOnboardingStateMachine.java
@@ -0,0 +1,47 @@
+package org.wikipedia.onboarding;
+
+import org.wikipedia.settings.Prefs;
+
+public final class PrefsOnboardingStateMachine implements 
OnboardingStateMachine {
+    private static final PrefsOnboardingStateMachine INSTANCE = new 
PrefsOnboardingStateMachine();
+
+    private final boolean initialTocTutorialEnabled = 
Prefs.isTocTutorialEnabled();
+
+    public static PrefsOnboardingStateMachine getInstance() {
+        return INSTANCE;
+    }
+
+    @Override
+    public boolean isTocTutorialEnabled() {
+        return Prefs.isTocTutorialEnabled();
+    }
+
+    @Override
+    public void setTocTutorial() {
+        Prefs.setTocTutorialEnabled(false);
+    }
+
+    @Override
+    public boolean isSelectTextTutorialEnabled() {
+        return !initialTocTutorialEnabled && 
Prefs.isSelectTextTutorialEnabled();
+    }
+
+    @Override
+    public void setSelectTextTutorial() {
+        Prefs.setSelectTextTutorialEnabled(false);
+    }
+
+    @Override
+    public boolean isShareTutorialEnabled() {
+        return !initialTocTutorialEnabled
+                && !isSelectTextTutorialEnabled()
+                && Prefs.isShareTutorialEnabled();
+    }
+
+    @Override
+    public void setShareTutorial() {
+        Prefs.setShareTutorialEnabled(false);
+    }
+
+    private PrefsOnboardingStateMachine() { }
+}
\ No newline at end of file
diff --git a/wikipedia/src/main/java/org/wikipedia/page/Page.java 
b/wikipedia/src/main/java/org/wikipedia/page/Page.java
index 561108a..8910458 100755
--- a/wikipedia/src/main/java/org/wikipedia/page/Page.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/Page.java
@@ -96,6 +96,10 @@
         return pageProperties.isMainPage();
     }
 
+    public boolean isArticle() {
+        return !isMainPage() && getTitle().getNamespace() == null;
+    }
+
     public JSONObject toJSON() {
         JSONObject json = new JSONObject();
         try {
diff --git 
a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java 
b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
index 69d4254..e803a2c 100755
--- a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
@@ -758,10 +758,10 @@
     public void onPageLoadComplete() {
         editHandler.setPage(model.getPage());
 
-        // TODO: implement select text onboarding logic.
-        //if (model.getPage().isArticle() && 
OnboardingStateMachine.isShowShareOnboardingEnabled())
-        //    showSelectTextOnboarding();
-        //}
+        if (model.getPage().isArticle() && 
app.getOnboardingStateMachine().isSelectTextTutorialEnabled()) {
+            showSelectTextOnboarding();
+            app.getOnboardingStateMachine().setSelectTextTutorial();
+        }
 
         if (saveOnComplete) {
             saveOnComplete = false;
diff --git a/wikipedia/src/main/java/org/wikipedia/page/ToCHandler.java 
b/wikipedia/src/main/java/org/wikipedia/page/ToCHandler.java
index c92194b..c911d83 100755
--- a/wikipedia/src/main/java/org/wikipedia/page/ToCHandler.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/ToCHandler.java
@@ -7,7 +7,6 @@
 import org.wikipedia.WikipediaApp;
 import org.wikipedia.analytics.ToCInteractionFunnel;
 import org.wikipedia.bridge.CommunicationBridge;
-import org.wikipedia.settings.Prefs;
 import org.wikipedia.views.WikiDrawerLayout;
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -101,7 +100,7 @@
                 parentActivity.supportInvalidateOptionsMenu();
                 funnel.logOpen();
                 wasClicked = false;
-                if (Prefs.isTocTutorialEnabled()) {
+                if 
(WikipediaApp.getInstance().getOnboardingStateMachine().isTocTutorialEnabled()) 
{
                     showToCIntro(slidingPane);
                 }
             }
@@ -155,7 +154,7 @@
     }
 
     private void knowSwipe() {
-        Prefs.setTocTutorialEnabled(false);
+        
WikipediaApp.getInstance().getOnboardingStateMachine().setTocTutorial();
         if (knowToCContainer.isShown()) {
             ViewAnimations.crossFade(knowToCContainer, tocList);
         }
@@ -214,7 +213,7 @@
         });
 
         if (!page.isMainPage() && !firstPage) {
-            if (Prefs.isTocTutorialEnabled()) {
+            if 
(WikipediaApp.getInstance().getOnboardingStateMachine().isTocTutorialEnabled()) 
{
                 openedViaSwipe = false;
                 slidingPane.openDrawer(GravityCompat.END);
                 showToCIntro(slidingPane);
diff --git 
a/wikipedia/src/main/java/org/wikipedia/page/snippet/ShareHandler.java 
b/wikipedia/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
index fbeb8b5..4eb9d1d 100755
--- a/wikipedia/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
@@ -194,10 +194,10 @@
                                                       | 
MenuItemCompat.SHOW_AS_ACTION_WITH_TEXT);
         }
 
-        // TODO: implement share onboarding logic.
-        //if (OnboardingStateMachine.isShowShareOnboardingEnabled()) {
-        //    showShareOnboarding(shareItem);
-        //}
+        if 
(WikipediaApp.getInstance().getOnboardingStateMachine().isShareTutorialEnabled())
 {
+            showShareOnboarding(shareItem);
+            
WikipediaApp.getInstance().getOnboardingStateMachine().setShareTutorial();
+        }
 
         // provide our own listener for the Share button...
         shareItem.setOnMenuItemClickListener(new 
MenuItem.OnMenuItemClickListener() {
diff --git a/wikipedia/src/main/java/org/wikipedia/settings/Prefs.java 
b/wikipedia/src/main/java/org/wikipedia/settings/Prefs.java
index ae33a1c..04c96b1 100644
--- a/wikipedia/src/main/java/org/wikipedia/settings/Prefs.java
+++ b/wikipedia/src/main/java/org/wikipedia/settings/Prefs.java
@@ -219,6 +219,22 @@
         return getBoolean(R.string.preference_key_zero_interstitial, true);
     }
 
+    public static boolean isSelectTextTutorialEnabled() {
+        return 
getBoolean(R.string.preference_key_select_text_tutorial_enabled, true);
+    }
+
+    public static void setSelectTextTutorialEnabled(boolean enabled) {
+        setBoolean(R.string.preference_key_select_text_tutorial_enabled, 
enabled);
+    }
+
+    public static boolean isShareTutorialEnabled() {
+        return getBoolean(R.string.preference_key_share_tutorial_enabled, 
true);
+    }
+
+    public static void setShareTutorialEnabled(boolean enabled) {
+        setBoolean(R.string.preference_key_share_tutorial_enabled, enabled);
+    }
+
     public static boolean isTocTutorialEnabled() {
         return !getBoolean(R.string.preference_key_know_toc_drawer, false);
     }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I00ee82e858eb519c9d71579837e2e9332cbf4c71
Gerrit-PatchSet: 3
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Niedzielski <sniedziel...@wikimedia.org>
Gerrit-Reviewer: BearND <bsitzm...@wikimedia.org>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Dbrant <dbr...@wikimedia.org>
Gerrit-Reviewer: Mholloway <mhollo...@wikimedia.org>
Gerrit-Reviewer: Niedzielski <sniedziel...@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