diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/Prefs.java | 2 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java | 71 |
2 files changed, 49 insertions, 24 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/Prefs.java b/packages/SystemUI/src/com/android/systemui/Prefs.java index f595d776e8fe..a7163bbaac04 100644 --- a/packages/SystemUI/src/com/android/systemui/Prefs.java +++ b/packages/SystemUI/src/com/android/systemui/Prefs.java @@ -94,6 +94,8 @@ public final class Prefs { String OVERVIEW_OPENED_FROM_HOME_COUNT = "OverviewOpenedFromHomeCount"; String HAS_SEEN_RECENTS_SWIPE_UP_ONBOARDING = "HasSeenRecentsSwipeUpOnboarding"; String HAS_SEEN_RECENTS_QUICK_SCRUB_ONBOARDING = "HasSeenRecentsQuickScrubOnboarding"; + String HAS_DISMISSED_RECENTS_QUICK_SCRUB_ONBOARDING_ONCE = + "HasDismissedRecentsQuickScrubOnboardingOnce"; String SEEN_RINGER_GUIDANCE_COUNT = "RingerGuidanceCount"; String QS_TILE_SPECS_REVEALED = "QsTileSpecsRevealed"; String QS_HAS_TURNED_OFF_MOBILE_DATA = "QsHasTurnedOffMobileData"; diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java index ffa144415eac..17ef1e8d749c 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java @@ -19,6 +19,7 @@ package com.android.systemui.recents; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; +import static com.android.systemui.Prefs.Key.HAS_DISMISSED_RECENTS_QUICK_SCRUB_ONBOARDING_ONCE; import static com.android.systemui.Prefs.Key.HAS_SEEN_RECENTS_QUICK_SCRUB_ONBOARDING; import static com.android.systemui.Prefs.Key.HAS_SEEN_RECENTS_SWIPE_UP_ONBOARDING; import static com.android.systemui.Prefs.Key.OVERVIEW_OPENED_COUNT; @@ -76,9 +77,6 @@ public class RecentsOnboarding { // After explicitly dismissing, show again after launching this number of apps for swipe-up // tips. private static final int SWIPE_UP_SHOW_ON_APP_LAUNCH_AFTER_DISMISS = 5; - // After explicitly dismissing, show again after launching this number of apps for QuickScrub - // tips. - private static final int QUICK_SCRUB_SHOW_ON_APP_LAUNCH_AFTER_DISMISS = 10; private final Context mContext; private final WindowManager mWindowManager; @@ -99,7 +97,7 @@ public class RecentsOnboarding { private boolean mHasDismissedSwipeUpTip; private boolean mHasDismissedQuickScrubTip; private int mNumAppsLaunchedSinceSwipeUpTipDismiss; - private int mNumAppsLaunchedSinceQuickScrubTipDismiss; + private int mOverviewOpenedCountSinceQuickScrubTipDismiss; private final SysUiTaskStackChangeListener mTaskListener = new SysUiTaskStackChangeListener() { @Override @@ -145,10 +143,9 @@ public class RecentsOnboarding { } else { if (getOpenedOverviewCount() >= QUICK_SCRUB_SHOW_ON_OVERVIEW_OPENED_COUNT) { if (mHasDismissedQuickScrubTip) { - mNumAppsLaunchedSinceQuickScrubTipDismiss++; - if (mNumAppsLaunchedSinceQuickScrubTipDismiss - == QUICK_SCRUB_SHOW_ON_APP_LAUNCH_AFTER_DISMISS) { - mNumAppsLaunchedSinceQuickScrubTipDismiss = 0; + if (mOverviewOpenedCountSinceQuickScrubTipDismiss + == QUICK_SCRUB_SHOW_ON_OVERVIEW_OPENED_COUNT) { + mOverviewOpenedCountSinceQuickScrubTipDismiss = 0; show(R.string.recents_quick_scrub_onboarding); } } else { @@ -166,14 +163,19 @@ public class RecentsOnboarding { new OverviewProxyService.OverviewProxyListener() { @Override public void onOverviewShown(boolean fromHome) { - boolean alreadySeenRecentsOnboarding = hasSeenSwipeUpOnboarding(); - if (!alreadySeenRecentsOnboarding && !fromHome) { + if (!hasSeenSwipeUpOnboarding() && !fromHome) { setHasSeenSwipeUpOnboarding(true); } if (fromHome) { setOpenedOverviewFromHomeCount(getOpenedOverviewFromHomeCount() + 1); } setOpenedOverviewCount(getOpenedOverviewCount() + 1); + + if (getOpenedOverviewCount() >= QUICK_SCRUB_SHOW_ON_OVERVIEW_OPENED_COUNT) { + if (mHasDismissedQuickScrubTip) { + mOverviewOpenedCountSinceQuickScrubTipDismiss++; + } + } } @Override @@ -191,7 +193,11 @@ public class RecentsOnboarding { public void onViewAttachedToWindow(View view) { if (view == mLayout) { mLayoutAttachedToWindow = true; - mHasDismissedSwipeUpTip = false; + if (view.getTag().equals(R.string.recents_swipe_up_onboarding)) { + mHasDismissedSwipeUpTip = false; + } else { + mHasDismissedQuickScrubTip = false; + } } } @@ -199,6 +205,17 @@ public class RecentsOnboarding { public void onViewDetachedFromWindow(View view) { if (view == mLayout) { mLayoutAttachedToWindow = false; + if (view.getTag().equals(R.string.recents_quick_scrub_onboarding)) { + mHasDismissedQuickScrubTip = true; + if (hasDismissedQuickScrubOnboardingOnce()) { + // If user dismisses the quick scrub tip twice, we consider user has seen it + // and do not show it again. + setHasSeenQuickScrubOnboarding(true); + } else { + setHasDismissedQuickScrubOnboardingOnce(true); + } + mOverviewOpenedCountSinceQuickScrubTipDismiss = 0; + } } } }; @@ -228,15 +245,6 @@ public class RecentsOnboarding { if (v.getTag().equals(R.string.recents_swipe_up_onboarding)) { mHasDismissedSwipeUpTip = true; mNumAppsLaunchedSinceSwipeUpTipDismiss = 0; - } else { - if (mHasDismissedQuickScrubTip) { - // If user dismisses the quick scrub tip twice, we consider user has seen it - // and do not show it again. - setHasSeenQuickScrubOnboarding(true); - } else { - mHasDismissedQuickScrubTip = true; - } - mNumAppsLaunchedSinceQuickScrubTipDismiss = 0; } }); @@ -252,6 +260,7 @@ public class RecentsOnboarding { if (RESET_PREFS_FOR_DEBUG) { setHasSeenSwipeUpOnboarding(false); setHasSeenQuickScrubOnboarding(false); + setHasDismissedQuickScrubOnboardingOnce(false); setOpenedOverviewCount(0); setOpenedOverviewFromHomeCount(0); } @@ -289,7 +298,7 @@ public class RecentsOnboarding { mHasDismissedSwipeUpTip = false; mHasDismissedQuickScrubTip = false; mNumAppsLaunchedSinceSwipeUpTipDismiss = 0; - mNumAppsLaunchedSinceQuickScrubTipDismiss = 0; + mOverviewOpenedCountSinceQuickScrubTipDismiss = 0; hide(false); } @@ -303,11 +312,15 @@ public class RecentsOnboarding { if (!shouldShow()) { return; } + if (mLayoutAttachedToWindow) { + hide(false); + } mDismissView.setTag(stringRes); + mLayout.setTag(stringRes); mTextView.setText(stringRes); // Only show in portrait. int orientation = mContext.getResources().getConfiguration().orientation; - if (!mLayoutAttachedToWindow && orientation == Configuration.ORIENTATION_PORTRAIT) { + if (orientation == Configuration.ORIENTATION_PORTRAIT) { mLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE); mWindowManager.addView(mLayout, getWindowLayoutParams()); @@ -348,11 +361,11 @@ public class RecentsOnboarding { .withLayer() .setDuration(SHOW_HIDE_DURATION_MS) .setInterpolator(new AccelerateInterpolator()) - .withEndAction(() -> mWindowManager.removeView(mLayout)) + .withEndAction(() -> mWindowManager.removeViewImmediate(mLayout)) .start(); } else { mLayout.animate().cancel(); - mWindowManager.removeView(mLayout); + mWindowManager.removeViewImmediate(mLayout); } } } @@ -400,6 +413,16 @@ public class RecentsOnboarding { } } + private boolean hasDismissedQuickScrubOnboardingOnce() { + return Prefs.getBoolean(mContext, HAS_DISMISSED_RECENTS_QUICK_SCRUB_ONBOARDING_ONCE, false); + } + + private void setHasDismissedQuickScrubOnboardingOnce( + boolean hasDismissedQuickScrubOnboardingOnce) { + Prefs.putBoolean(mContext, HAS_DISMISSED_RECENTS_QUICK_SCRUB_ONBOARDING_ONCE, + hasDismissedQuickScrubOnboardingOnce); + } + private int getOpenedOverviewFromHomeCount() { return Prefs.getInt(mContext, OVERVIEW_OPENED_FROM_HOME_COUNT, 0); } |