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