Loading packages/SystemUI/src/com/android/systemui/Prefs.java +2 −0 Original line number Diff line number Diff line Loading @@ -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"; Loading packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java +47 −24 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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 Loading Loading @@ -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 { Loading @@ -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 Loading @@ -191,7 +193,11 @@ public class RecentsOnboarding { public void onViewAttachedToWindow(View view) { if (view == mLayout) { mLayoutAttachedToWindow = true; if (view.getTag().equals(R.string.recents_swipe_up_onboarding)) { mHasDismissedSwipeUpTip = false; } else { mHasDismissedQuickScrubTip = false; } } } Loading @@ -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; } } } }; Loading Loading @@ -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; } }); Loading @@ -252,6 +260,7 @@ public class RecentsOnboarding { if (RESET_PREFS_FOR_DEBUG) { setHasSeenSwipeUpOnboarding(false); setHasSeenQuickScrubOnboarding(false); setHasDismissedQuickScrubOnboardingOnce(false); setOpenedOverviewCount(0); setOpenedOverviewFromHomeCount(0); } Loading Loading @@ -289,7 +298,7 @@ public class RecentsOnboarding { mHasDismissedSwipeUpTip = false; mHasDismissedQuickScrubTip = false; mNumAppsLaunchedSinceSwipeUpTipDismiss = 0; mNumAppsLaunchedSinceQuickScrubTipDismiss = 0; mOverviewOpenedCountSinceQuickScrubTipDismiss = 0; hide(false); } Loading @@ -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()); Loading Loading @@ -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); } } } Loading Loading @@ -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); } Loading Loading
packages/SystemUI/src/com/android/systemui/Prefs.java +2 −0 Original line number Diff line number Diff line Loading @@ -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"; Loading
packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java +47 −24 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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 Loading Loading @@ -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 { Loading @@ -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 Loading @@ -191,7 +193,11 @@ public class RecentsOnboarding { public void onViewAttachedToWindow(View view) { if (view == mLayout) { mLayoutAttachedToWindow = true; if (view.getTag().equals(R.string.recents_swipe_up_onboarding)) { mHasDismissedSwipeUpTip = false; } else { mHasDismissedQuickScrubTip = false; } } } Loading @@ -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; } } } }; Loading Loading @@ -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; } }); Loading @@ -252,6 +260,7 @@ public class RecentsOnboarding { if (RESET_PREFS_FOR_DEBUG) { setHasSeenSwipeUpOnboarding(false); setHasSeenQuickScrubOnboarding(false); setHasDismissedQuickScrubOnboardingOnce(false); setOpenedOverviewCount(0); setOpenedOverviewFromHomeCount(0); } Loading Loading @@ -289,7 +298,7 @@ public class RecentsOnboarding { mHasDismissedSwipeUpTip = false; mHasDismissedQuickScrubTip = false; mNumAppsLaunchedSinceSwipeUpTipDismiss = 0; mNumAppsLaunchedSinceQuickScrubTipDismiss = 0; mOverviewOpenedCountSinceQuickScrubTipDismiss = 0; hide(false); } Loading @@ -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()); Loading Loading @@ -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); } } } Loading Loading @@ -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); } Loading