Dbrant has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/223966

Change subject: Improve sequencing of ToC and Text-highlight tooltips.
......................................................................

Improve sequencing of ToC and Text-highlight tooltips.

Previously, if the ToC tutorial was shown to the user, then the Highlight
tutorial wouldn't be shown until the app is destroyed and relaunched,
which is not a predictable interval.

This patch guarantees that the Highlight tutorial is shown after the ToC
tutorial, with a minimum time interval of 1 minute between the two
tutorials (so that the user isn't inundated).

Change-Id: I621d179f47c0b606ab24facec06a654e70373c83
---
M 
wikipedia/src/main/java/org/wikipedia/onboarding/PrefsOnboardingStateMachine.java
1 file changed, 21 insertions(+), 3 deletions(-)


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

diff --git 
a/wikipedia/src/main/java/org/wikipedia/onboarding/PrefsOnboardingStateMachine.java
 
b/wikipedia/src/main/java/org/wikipedia/onboarding/PrefsOnboardingStateMachine.java
index a6cabc4..b123d9b 100644
--- 
a/wikipedia/src/main/java/org/wikipedia/onboarding/PrefsOnboardingStateMachine.java
+++ 
b/wikipedia/src/main/java/org/wikipedia/onboarding/PrefsOnboardingStateMachine.java
@@ -1,39 +1,56 @@
 package org.wikipedia.onboarding;
 
 import org.wikipedia.settings.Prefs;
+import java.util.concurrent.TimeUnit;
 
 public final class PrefsOnboardingStateMachine implements 
OnboardingStateMachine {
     private static final PrefsOnboardingStateMachine INSTANCE = new 
PrefsOnboardingStateMachine();
+    private static final long MIN_MINUTES_PER_TUTORIAL = 1;
 
-    private final boolean initialTocTutorialEnabled = 
Prefs.isTocTutorialEnabled();
+    private long timeSinceLastTutorial;
 
     public static PrefsOnboardingStateMachine getInstance() {
         return INSTANCE;
     }
 
+    private void updateTimeSinceLastTutorial() {
+        timeSinceLastTutorial = System.currentTimeMillis();
+    }
+
+    private long minutesSinceLastTutorial() {
+        return TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis() - 
timeSinceLastTutorial);
+    }
+
     @Override
     public boolean isTocTutorialEnabled() {
+        // don't care about time since last tutorial here, since the ToC 
tooltip
+        // is always the first one shown.
         return Prefs.isTocTutorialEnabled();
     }
 
     @Override
     public void setTocTutorial() {
         Prefs.setTocTutorialEnabled(false);
+        updateTimeSinceLastTutorial();
     }
 
     @Override
     public boolean isSelectTextTutorialEnabled() {
-        return !initialTocTutorialEnabled && 
Prefs.isSelectTextTutorialEnabled();
+        return minutesSinceLastTutorial() >= MIN_MINUTES_PER_TUTORIAL
+               && !Prefs.isTocTutorialEnabled() && 
Prefs.isSelectTextTutorialEnabled();
     }
 
     @Override
     public void setSelectTextTutorial() {
         Prefs.setSelectTextTutorialEnabled(false);
+        updateTimeSinceLastTutorial();
     }
 
     @Override
     public boolean isShareTutorialEnabled() {
-        return !initialTocTutorialEnabled
+        // don't care about time since last tutorial here, since the share 
tooltip is
+        // tied to the highlight action.
+        return !Prefs.isTocTutorialEnabled()
                 && !isSelectTextTutorialEnabled()
                 && Prefs.isShareTutorialEnabled();
     }
@@ -41,6 +58,7 @@
     @Override
     public void setShareTutorial() {
         Prefs.setShareTutorialEnabled(false);
+        updateTimeSinceLastTutorial();
     }
 
     private PrefsOnboardingStateMachine() { }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I621d179f47c0b606ab24facec06a654e70373c83
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <dbr...@wikimedia.org>

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

Reply via email to