summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/Prefs.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java71
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);
}