From 8cb8652792173405e1c29d63c8e728cb5101f0f5 Mon Sep 17 00:00:00 2001 From: Tracy Zhou Date: Sun, 18 Jul 2021 15:22:54 -0700 Subject: [PATCH] Remove RecentsOnboarding RIP Fixes: 180248278 Test: manual Change-Id: Ifb73928ceab67c451776c1657bdc230670c9af81 --- packages/SystemUI/res/values/strings.xml | 2 - .../shared/system/LauncherEventUtil.java | 4 - .../src/com/android/systemui/Prefs.java | 6 - .../systemui/navigationbar/NavigationBar.java | 4 - .../navigationbar/NavigationBarView.java | 23 - .../systemui/recents/RecentsOnboarding.java | 490 ------------------ 6 files changed, 529 deletions(-) delete mode 100644 packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 55b6c9ab55390..5aff817baf7cd 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -1006,8 +1006,6 @@ Device - - Swipe up to switch apps Toggle Overview diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/LauncherEventUtil.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/LauncherEventUtil.java index 4959fb7ddfdb6..a51d668c82242 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/LauncherEventUtil.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/LauncherEventUtil.java @@ -21,8 +21,4 @@ public class LauncherEventUtil { // Constants for the Action public static final int VISIBLE = 0; public static final int DISMISS = 1; - - // Constants for the Target (View) - public static final int RECENTS_SWIPE_UP_ONBOARDING_TIP = 0; - } diff --git a/packages/SystemUI/src/com/android/systemui/Prefs.java b/packages/SystemUI/src/com/android/systemui/Prefs.java index cf56eb16b373a..6a60afa8eadfd 100644 --- a/packages/SystemUI/src/com/android/systemui/Prefs.java +++ b/packages/SystemUI/src/com/android/systemui/Prefs.java @@ -64,8 +64,6 @@ public final class Prefs { Key.QS_NIGHTDISPLAY_ADDED, Key.QS_LONG_PRESS_TOOLTIP_SHOWN_COUNT, Key.SEEN_MULTI_USER, - Key.HAS_SEEN_RECENTS_SWIPE_UP_ONBOARDING, - Key.OVERVIEW_OPENED_FROM_HOME_COUNT, Key.SEEN_RINGER_GUIDANCE_COUNT, Key.QS_HAS_TURNED_OFF_MOBILE_DATA, Key.TOUCHED_RINGER_TOGGLE, @@ -107,10 +105,6 @@ public final class Prefs { */ String QS_LONG_PRESS_TOOLTIP_SHOWN_COUNT = "QsLongPressTooltipShownCount"; String SEEN_MULTI_USER = "HasSeenMultiUser"; - String OVERVIEW_OPENED_FROM_HOME_COUNT = "OverviewOpenedFromHomeCount"; - String HAS_SEEN_RECENTS_SWIPE_UP_ONBOARDING = "HasSeenRecentsSwipeUpOnboarding"; - String DISMISSED_RECENTS_SWIPE_UP_ONBOARDING_COUNT = - "DismissedRecentsSwipeUpOnboardingCount"; 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/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java index 26f38ddd5919f..bb0ef327df418 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java @@ -1047,10 +1047,6 @@ public class NavigationBar implements View.OnAttachStateChangeListener, // Returns true if the bar mode is changed. private boolean updateBarMode(int barMode) { if (mNavigationBarMode != barMode) { - if (mNavigationBarMode == MODE_TRANSPARENT - || mNavigationBarMode == MODE_LIGHTS_OUT_TRANSPARENT) { - mNavigationBarView.hideRecentsOnboarding(); - } mNavigationBarMode = barMode; checkNavBarModes(); if (mAutoHideController != null) { diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java index f5b4c7671dfd3..c840c7a3345d4 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java @@ -82,7 +82,6 @@ import com.android.systemui.navigationbar.gestural.FloatingRotationButton; import com.android.systemui.navigationbar.gestural.RegionSamplingHelper; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.Recents; -import com.android.systemui.recents.RecentsOnboarding; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.shared.system.SysUiStatsLog; @@ -164,7 +163,6 @@ public class NavigationBarView extends FrameLayout implements private Configuration mTmpLastConfiguration; private NavigationBarInflaterView mNavigationInflaterView; - private RecentsOnboarding mRecentsOnboarding; private NotificationPanelViewController mPanelView; private RotationContextButton mRotationContextButton; private FloatingRotationButton mFloatingRotationButton; @@ -323,7 +321,6 @@ public class NavigationBarView extends FrameLayout implements updateRotationButton(); mOverviewProxyService = Dependency.get(OverviewProxyService.class); - mRecentsOnboarding = new RecentsOnboarding(context, mOverviewProxyService); mConfiguration = new Configuration(); mTmpLastConfiguration = new Configuration(); @@ -697,7 +694,6 @@ public class NavigationBarView extends FrameLayout implements updateNavButtonIcons(); updateSlippery(); - setUpSwipeUpOnboarding(isQuickStepSwipeUpEnabled()); updateDisabledSystemUiStateFlags(); } @@ -873,7 +869,6 @@ public class NavigationBarView extends FrameLayout implements updateSlippery(); reloadNavIcons(); updateNavButtonIcons(); - setUpSwipeUpOnboarding(isQuickStepSwipeUpEnabled()); WindowManagerWrapper.getInstance().setNavBarVirtualKeyHapticFeedbackEnabled(!showSwipeUpUI); getHomeButton().setAccessibilityDelegate( showSwipeUpUI ? mQuickStepAccessibilityDelegate : null); @@ -917,7 +912,6 @@ public class NavigationBarView extends FrameLayout implements mNavBarMode = mode; mBarTransitions.onNavigationModeChanged(mNavBarMode); mEdgeBackGestureHandler.onNavigationModeChanged(mNavBarMode); - mRecentsOnboarding.onNavigationModeChanged(mNavBarMode); updateRotationButton(); if (isGesturalMode(mNavBarMode)) { @@ -933,10 +927,6 @@ public class NavigationBarView extends FrameLayout implements mContextualButtonGroup.setButtonVisibility(R.id.accessibility_button, visible); } - void hideRecentsOnboarding() { - mRecentsOnboarding.hide(true); - } - @Override public void onFinishInflate() { super.onFinishInflate(); @@ -981,7 +971,6 @@ public class NavigationBarView extends FrameLayout implements super.onLayout(changed, left, top, right, bottom); notifyActiveTouchRegions(); - mRecentsOnboarding.setNavBarHeight(getMeasuredHeight()); } /** @@ -1197,7 +1186,6 @@ public class NavigationBarView extends FrameLayout implements updateIcons(mTmpLastConfiguration); updateRecentsIcon(); mEdgeBackGestureHandler.onConfigurationChanged(mConfiguration); - mRecentsOnboarding.onConfigurationChanged(mConfiguration); if (uiCarModeChanged || mTmpLastConfiguration.densityDpi != mConfiguration.densityDpi || mTmpLastConfiguration.getLayoutDirection() != mConfiguration.getLayoutDirection()) { // If car mode or density changes, we need to reset the icons. @@ -1261,7 +1249,6 @@ public class NavigationBarView extends FrameLayout implements requestApplyInsets(); reorient(); onNavigationModeChanged(mNavBarMode); - setUpSwipeUpOnboarding(isQuickStepSwipeUpEnabled()); if (mRotationButtonController != null) { mRotationButtonController.registerListeners(); } @@ -1277,7 +1264,6 @@ public class NavigationBarView extends FrameLayout implements protected void onDetachedFromWindow() { super.onDetachedFromWindow(); Dependency.get(NavigationModeController.class).removeListener(this); - setUpSwipeUpOnboarding(false); for (int i = 0; i < mButtonDispatchers.size(); ++i) { mButtonDispatchers.valueAt(i).onDestroy(); } @@ -1294,14 +1280,6 @@ public class NavigationBarView extends FrameLayout implements mOnComputeInternalInsetsListener); } - private void setUpSwipeUpOnboarding(boolean connectedToOverviewProxy) { - if (connectedToOverviewProxy) { - mRecentsOnboarding.onConnectedToLauncher(); - } else { - mRecentsOnboarding.onDisconnectedFromLauncher(); - } - } - public void dump(PrintWriter pw) { final Rect r = new Rect(); final Point size = new Point(); @@ -1345,7 +1323,6 @@ public class NavigationBarView extends FrameLayout implements } mBarTransitions.dump(pw); mContextualButtonGroup.dump(pw); - mRecentsOnboarding.dump(pw); mRegionSamplingHelper.dump(pw); mEdgeBackGestureHandler.dump(pw); } diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java deleted file mode 100644 index 13da0f0224fcf..0000000000000 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java +++ /dev/null @@ -1,490 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.systemui.recents; - -import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; -import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON; - -import static com.android.systemui.Prefs.Key.DISMISSED_RECENTS_SWIPE_UP_ONBOARDING_COUNT; -import static com.android.systemui.Prefs.Key.HAS_SEEN_RECENTS_SWIPE_UP_ONBOARDING; -import static com.android.systemui.Prefs.Key.OVERVIEW_OPENED_FROM_HOME_COUNT; -import static com.android.systemui.shared.system.LauncherEventUtil.DISMISS; -import static com.android.systemui.shared.system.LauncherEventUtil.RECENTS_SWIPE_UP_ONBOARDING_TIP; -import static com.android.systemui.shared.system.LauncherEventUtil.VISIBLE; - -import android.annotation.StringRes; -import android.annotation.TargetApi; -import android.app.ActivityManager; -import android.content.BroadcastReceiver; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.res.Configuration; -import android.content.res.Resources; -import android.graphics.CornerPathEffect; -import android.graphics.Paint; -import android.graphics.PixelFormat; -import android.graphics.drawable.ShapeDrawable; -import android.os.Build; -import android.os.RemoteException; -import android.os.SystemProperties; -import android.os.UserManager; -import android.util.TypedValue; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.WindowManager; -import android.view.animation.AccelerateInterpolator; -import android.view.animation.DecelerateInterpolator; -import android.widget.ImageView; -import android.widget.TextView; - -import com.android.systemui.Dependency; -import com.android.systemui.Prefs; -import com.android.systemui.R; -import com.android.systemui.broadcast.BroadcastDispatcher; -import com.android.systemui.shared.recents.IOverviewProxy; -import com.android.systemui.shared.system.ActivityManagerWrapper; -import com.android.systemui.shared.system.QuickStepContract; -import com.android.systemui.shared.system.TaskStackChangeListener; -import com.android.systemui.shared.system.TaskStackChangeListeners; - -import java.io.PrintWriter; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -/** - * Shows onboarding for the new recents interaction in P (codenamed quickstep). - */ -@TargetApi(Build.VERSION_CODES.P) -public class RecentsOnboarding { - - private static final String TAG = "RecentsOnboarding"; - private static final boolean RESET_PREFS_FOR_DEBUG = false; - private static final boolean ONBOARDING_ENABLED = true; - private static final long SHOW_DELAY_MS = 500; - private static final long SHOW_DURATION_MS = 300; - private static final long HIDE_DURATION_MS = 100; - // Show swipe-up tips after opening overview from home this number of times. - private static final int SWIPE_UP_SHOW_ON_OVERVIEW_OPENED_FROM_HOME_COUNT = 3; - // Maximum number of dismissals while still showing swipe-up tips. - private static final int MAX_DISMISSAL_ON_SWIPE_UP_SHOW = 2; - // Number of dismissals for swipe-up tips when exponential backoff starts. - private static final int BACKOFF_DISMISSAL_COUNT_ON_SWIPE_UP_SHOW = 1; - // After explicitly dismissing for <= BACKOFF_DISMISSAL_COUNT_ON_SWIPE_UP_SHOW times, 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 for > BACKOFF_DISMISSAL_COUNT_ON_SWIPE_UP_SHOW but - // <= MAX_DISMISSAL_ON_SWIPE_UP_SHOW times, show again after launching this number of apps for - // swipe-up tips. - private static final int SWIPE_UP_SHOW_ON_APP_LAUNCH_AFTER_DISMISS_BACK_OFF = 40; - - private final Context mContext; - private final WindowManager mWindowManager; - private final OverviewProxyService mOverviewProxyService; - private Set mBlacklistedPackages; - private final View mLayout; - private final TextView mTextView; - private final ImageView mDismissView; - private final View mArrowView; - private final int mOnboardingToastColor; - private final int mOnboardingToastArrowRadius; - private int mNavBarHeight; - private int mNavBarMode = NAV_BAR_MODE_3BUTTON; - - private boolean mOverviewProxyListenerRegistered; - private boolean mTaskListenerRegistered; - private boolean mLayoutAttachedToWindow; - private boolean mHasDismissedSwipeUpTip; - private int mNumAppsLaunchedSinceSwipeUpTipDismiss; - - private final TaskStackChangeListener mTaskListener = new TaskStackChangeListener() { - private String mLastPackageName; - - @Override - public void onTaskCreated(int taskId, ComponentName componentName) { - onAppLaunch(); - } - - @Override - public void onTaskMovedToFront(int taskId) { - onAppLaunch(); - } - - private void onAppLaunch() { - if (!isRecentsOnboardingEnabled()) { - onDisconnectedFromLauncher(); - return; - } - ActivityManager.RunningTaskInfo info = ActivityManagerWrapper.getInstance() - .getRunningTask(); - if (info == null || info.baseActivity == null) { - return; - } - if (mBlacklistedPackages.contains(info.baseActivity.getPackageName())) { - hide(true); - return; - } - if (info.baseActivity.getPackageName().equals(mLastPackageName)) { - return; - } - mLastPackageName = info.baseActivity.getPackageName(); - int activityType = info.configuration.windowConfiguration.getActivityType(); - if (activityType == ACTIVITY_TYPE_STANDARD) { - boolean alreadySeenSwipeUpOnboarding = hasSeenSwipeUpOnboarding(); - if (alreadySeenSwipeUpOnboarding) { - onDisconnectedFromLauncher(); - return; - } - - boolean shouldLog = false; - if (!alreadySeenSwipeUpOnboarding) { - if (getOpenedOverviewFromHomeCount() - >= SWIPE_UP_SHOW_ON_OVERVIEW_OPENED_FROM_HOME_COUNT) { - if (mHasDismissedSwipeUpTip) { - int hasDimissedSwipeUpOnboardingCount = - getDismissedSwipeUpOnboardingCount(); - if (hasDimissedSwipeUpOnboardingCount - > MAX_DISMISSAL_ON_SWIPE_UP_SHOW) { - return; - } - final int swipeUpShowOnAppLauncherAfterDismiss = - hasDimissedSwipeUpOnboardingCount - <= BACKOFF_DISMISSAL_COUNT_ON_SWIPE_UP_SHOW - ? SWIPE_UP_SHOW_ON_APP_LAUNCH_AFTER_DISMISS - : SWIPE_UP_SHOW_ON_APP_LAUNCH_AFTER_DISMISS_BACK_OFF; - mNumAppsLaunchedSinceSwipeUpTipDismiss++; - if (mNumAppsLaunchedSinceSwipeUpTipDismiss - >= swipeUpShowOnAppLauncherAfterDismiss) { - mNumAppsLaunchedSinceSwipeUpTipDismiss = 0; - shouldLog = show(R.string.recents_swipe_up_onboarding); - } - } else { - shouldLog = show(R.string.recents_swipe_up_onboarding); - } - if (shouldLog) { - notifyOnTip(VISIBLE, RECENTS_SWIPE_UP_ONBOARDING_TIP); - } - } - } - } else { - hide(false); - } - } - }; - - private OverviewProxyService.OverviewProxyListener mOverviewProxyListener = - new OverviewProxyService.OverviewProxyListener() { - @Override - public void onOverviewShown(boolean fromHome) { - if (!hasSeenSwipeUpOnboarding() && !fromHome) { - setHasSeenSwipeUpOnboarding(true); - } - if (fromHome) { - incrementOpenedOverviewFromHomeCount(); - } - } - - @Override - public void onQuickStepStarted() { - hide(true); - } - }; - - private final View.OnAttachStateChangeListener mOnAttachStateChangeListener - = new View.OnAttachStateChangeListener() { - - private final BroadcastDispatcher mBroadcastDispatcher = Dependency.get( - BroadcastDispatcher.class); - - @Override - public void onViewAttachedToWindow(View view) { - if (view == mLayout) { - mBroadcastDispatcher.registerReceiver(mReceiver, - new IntentFilter(Intent.ACTION_SCREEN_OFF)); - mLayoutAttachedToWindow = true; - if (view.getTag().equals(R.string.recents_swipe_up_onboarding)) { - mHasDismissedSwipeUpTip = false; - } - } - } - - @Override - public void onViewDetachedFromWindow(View view) { - if (view == mLayout) { - mLayoutAttachedToWindow = false; - mBroadcastDispatcher.unregisterReceiver(mReceiver); - } - } - }; - - public RecentsOnboarding(Context context, OverviewProxyService overviewProxyService) { - mContext = context; - mOverviewProxyService = overviewProxyService; - final Resources res = context.getResources(); - mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); - mBlacklistedPackages = new HashSet<>(); - Collections.addAll(mBlacklistedPackages, res.getStringArray( - R.array.recents_onboarding_blacklisted_packages)); - mLayout = LayoutInflater.from(mContext).inflate(R.layout.recents_onboarding, null); - mTextView = mLayout.findViewById(R.id.onboarding_text); - mDismissView = mLayout.findViewById(R.id.dismiss); - mArrowView = mLayout.findViewById(R.id.arrow); - - TypedValue typedValue = new TypedValue(); - context.getTheme().resolveAttribute(android.R.attr.colorAccent, typedValue, true); - mOnboardingToastColor = res.getColor(typedValue.resourceId); - mOnboardingToastArrowRadius = res.getDimensionPixelSize( - R.dimen.recents_onboarding_toast_arrow_corner_radius); - - mLayout.addOnAttachStateChangeListener(mOnAttachStateChangeListener); - mDismissView.setOnClickListener(v -> { - hide(true); - if (v.getTag().equals(R.string.recents_swipe_up_onboarding)) { - mHasDismissedSwipeUpTip = true; - mNumAppsLaunchedSinceSwipeUpTipDismiss = 0; - setDismissedSwipeUpOnboardingCount(getDismissedSwipeUpOnboardingCount() + 1); - if (getDismissedSwipeUpOnboardingCount() > MAX_DISMISSAL_ON_SWIPE_UP_SHOW) { - setHasSeenSwipeUpOnboarding(true); - } - notifyOnTip(DISMISS, RECENTS_SWIPE_UP_ONBOARDING_TIP); - } - }); - - ViewGroup.LayoutParams arrowLp = mArrowView.getLayoutParams(); - ShapeDrawable arrowDrawable = new ShapeDrawable(TriangleShape.create( - arrowLp.width, arrowLp.height, false)); - Paint arrowPaint = arrowDrawable.getPaint(); - arrowPaint.setColor(mOnboardingToastColor); - // The corner path effect won't be reflected in the shadow, but shouldn't be noticeable. - arrowPaint.setPathEffect(new CornerPathEffect(mOnboardingToastArrowRadius)); - mArrowView.setBackground(arrowDrawable); - - if (RESET_PREFS_FOR_DEBUG) { - setHasSeenSwipeUpOnboarding(false); - setDismissedSwipeUpOnboardingCount(0); - setOpenedOverviewFromHomeCount(0); - } - } - - private void notifyOnTip(int action, int target) { - try { - IOverviewProxy overviewProxy = mOverviewProxyService.getProxy(); - if (overviewProxy != null) { - overviewProxy.onTip(action, target); - } - } catch (RemoteException e) { - } - } - - public void onNavigationModeChanged(int mode) { - mNavBarMode = mode; - } - - public void onConnectedToLauncher() { - if (!isRecentsOnboardingEnabled()) { - return; - } - - if (hasSeenSwipeUpOnboarding()) { - return; - } - - if (!mOverviewProxyListenerRegistered) { - mOverviewProxyService.addCallback(mOverviewProxyListener); - mOverviewProxyListenerRegistered = true; - } - if (!mTaskListenerRegistered) { - TaskStackChangeListeners.getInstance().registerTaskStackListener(mTaskListener); - mTaskListenerRegistered = true; - } - } - - public void onDisconnectedFromLauncher() { - if (mOverviewProxyListenerRegistered) { - mOverviewProxyService.removeCallback(mOverviewProxyListener); - mOverviewProxyListenerRegistered = false; - } - if (mTaskListenerRegistered) { - TaskStackChangeListeners.getInstance().unregisterTaskStackListener(mTaskListener); - mTaskListenerRegistered = false; - } - - mHasDismissedSwipeUpTip = false; - mNumAppsLaunchedSinceSwipeUpTipDismiss = 0; - hide(true); - } - - public void onConfigurationChanged(Configuration newConfiguration) { - if (newConfiguration.orientation != Configuration.ORIENTATION_PORTRAIT) { - hide(false); - } - } - - public boolean show(@StringRes int stringRes) { - if (!shouldShow()) { - return 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) { - mLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE); - - final int gravity; - final int x; - if (stringRes == R.string.recents_swipe_up_onboarding) { - gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL; - x = 0; - } else { - int layoutDirection = - mContext.getResources().getConfiguration().getLayoutDirection(); - gravity = Gravity.BOTTOM | (layoutDirection == View.LAYOUT_DIRECTION_LTR - ? Gravity.LEFT : Gravity.RIGHT); - x = mContext.getResources().getDimensionPixelSize( - R.dimen.recents_quick_scrub_onboarding_margin_start); - } - mWindowManager.addView(mLayout, getWindowLayoutParams(gravity, x)); - mLayout.setAlpha(0); - mLayout.animate() - .alpha(1f) - .withLayer() - .setStartDelay(SHOW_DELAY_MS) - .setDuration(SHOW_DURATION_MS) - .setInterpolator(new DecelerateInterpolator()) - .start(); - return true; - } - return false; - } - - /** - * @return True unless setprop has been set to false, we're in demo mode, or running tests in - * automation. - */ - private boolean shouldShow() { - return SystemProperties.getBoolean("persist.quickstep.onboarding.enabled", - !(mContext.getSystemService(UserManager.class)).isDemoUser() && - !ActivityManager.isRunningInTestHarness()); - } - - public void hide(boolean animate) { - if (mLayoutAttachedToWindow) { - if (animate) { - mLayout.animate() - .alpha(0f) - .withLayer() - .setStartDelay(0) - .setDuration(HIDE_DURATION_MS) - .setInterpolator(new AccelerateInterpolator()) - .withEndAction(() -> mWindowManager.removeViewImmediate(mLayout)) - .start(); - } else { - mLayout.animate().cancel(); - mWindowManager.removeViewImmediate(mLayout); - } - } - } - - public void setNavBarHeight(int navBarHeight) { - mNavBarHeight = navBarHeight; - } - - public void dump(PrintWriter pw) { - pw.println("RecentsOnboarding"); - pw.println(" mTaskListenerRegistered: " + mTaskListenerRegistered); - pw.println(" mOverviewProxyListenerRegistered: " + mOverviewProxyListenerRegistered); - pw.println(" mLayoutAttachedToWindow: " + mLayoutAttachedToWindow); - pw.println(" mHasDismissedSwipeUpTip: " + mHasDismissedSwipeUpTip); - pw.println(" mNumAppsLaunchedSinceSwipeUpTipDismiss: " - + mNumAppsLaunchedSinceSwipeUpTipDismiss); - pw.println(" hasSeenSwipeUpOnboarding: " + hasSeenSwipeUpOnboarding()); - pw.println(" getDismissedSwipeUpOnboardingCount: " - + getDismissedSwipeUpOnboardingCount()); - pw.println(" getOpenedOverviewFromHomeCount: " + getOpenedOverviewFromHomeCount()); - } - - private WindowManager.LayoutParams getWindowLayoutParams(int gravity, int x) { - int flags = WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS - | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; - final WindowManager.LayoutParams lp = new WindowManager.LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, - ViewGroup.LayoutParams.WRAP_CONTENT, - x, -mNavBarHeight / 2, - WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, - flags, - PixelFormat.TRANSLUCENT); - lp.privateFlags |= WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS; - lp.setTitle("RecentsOnboarding"); - lp.gravity = gravity; - return lp; - } - - private boolean isRecentsOnboardingEnabled() { - return ONBOARDING_ENABLED && !QuickStepContract.isGesturalMode(mNavBarMode); - } - - private boolean hasSeenSwipeUpOnboarding() { - return Prefs.getBoolean(mContext, HAS_SEEN_RECENTS_SWIPE_UP_ONBOARDING, false); - } - - private void setHasSeenSwipeUpOnboarding(boolean hasSeenSwipeUpOnboarding) { - Prefs.putBoolean(mContext, HAS_SEEN_RECENTS_SWIPE_UP_ONBOARDING, hasSeenSwipeUpOnboarding); - if (hasSeenSwipeUpOnboarding) { - onDisconnectedFromLauncher(); - } - } - - private int getDismissedSwipeUpOnboardingCount() { - return Prefs.getInt(mContext, DISMISSED_RECENTS_SWIPE_UP_ONBOARDING_COUNT, 0); - } - - private void setDismissedSwipeUpOnboardingCount(int dismissedSwipeUpOnboardingCount) { - Prefs.putInt(mContext, DISMISSED_RECENTS_SWIPE_UP_ONBOARDING_COUNT, - dismissedSwipeUpOnboardingCount); - } - - private int getOpenedOverviewFromHomeCount() { - return Prefs.getInt(mContext, OVERVIEW_OPENED_FROM_HOME_COUNT, 0); - } - - private void incrementOpenedOverviewFromHomeCount() { - int openedOverviewFromHomeCount = getOpenedOverviewFromHomeCount(); - if (openedOverviewFromHomeCount >= SWIPE_UP_SHOW_ON_OVERVIEW_OPENED_FROM_HOME_COUNT) { - return; - } - setOpenedOverviewFromHomeCount(openedOverviewFromHomeCount + 1); - } - - private void setOpenedOverviewFromHomeCount(int openedOverviewFromHomeCount) { - Prefs.putInt(mContext, OVERVIEW_OPENED_FROM_HOME_COUNT, openedOverviewFromHomeCount); - } - - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { - hide(false); - } - } - }; -}