Merge "Update QuickScrub tip according to the latest spec." into pi-dev
This commit is contained in:
@@ -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";
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user