From 41d909ff672c58e325f26d839da727344d51044d Mon Sep 17 00:00:00 2001 From: Samuel Fufa Date: Fri, 20 Mar 2020 16:27:09 -0700 Subject: [PATCH] Go home when new tab is installed Bug: 150943778 Test: Manual Change-Id: Iccd7f62c4cad856849fc1afb2faac9b9fa2f9f97 --- src/com/android/launcher3/Launcher.java | 8 ++++++++ src/com/android/launcher3/pm/UserCache.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index a83a694c9c..b324b36dea 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -115,6 +115,7 @@ import com.android.launcher3.model.BgDataModel.Callbacks; import com.android.launcher3.model.ModelWriter; import com.android.launcher3.notification.NotificationListener; import com.android.launcher3.pm.PinRequestHelper; +import com.android.launcher3.pm.UserCache; import com.android.launcher3.popup.PopupContainerWithArrow; import com.android.launcher3.popup.PopupDataProvider; import com.android.launcher3.popup.SystemShortcut; @@ -139,6 +140,7 @@ import com.android.launcher3.util.MultiValueAlpha.AlphaProperty; import com.android.launcher3.util.PackageManagerHelper; import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.PendingRequestArgs; +import com.android.launcher3.util.SafeCloseable; import com.android.launcher3.util.ShortcutUtil; import com.android.launcher3.util.SystemUiController; import com.android.launcher3.util.Themes; @@ -341,6 +343,8 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, private long mLastTouchUpTime = -1; + private SafeCloseable mUserChangedCallbackCloseable; + @Override protected void onCreate(Bundle savedInstanceState) { Object traceToken = TraceHelper.INSTANCE.beginSection(ON_CREATE_EVT, @@ -459,6 +463,9 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, }); TraceHelper.INSTANCE.endSection(traceToken); + + mUserChangedCallbackCloseable = UserCache.INSTANCE.get(this).addUserChangeListener( + () -> getStateManager().goToState(NORMAL)); } protected LauncherOverlayManager getDefaultOverlay() { @@ -1589,6 +1596,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, mOverlayManager.onActivityDestroyed(this); mAppTransitionManager.unregisterRemoteAnimations(); + mUserChangedCallbackCloseable.close(); } public LauncherAccessibilityDelegate getAccessibilityDelegate() { diff --git a/src/com/android/launcher3/pm/UserCache.java b/src/com/android/launcher3/pm/UserCache.java index 678b647400..f723256510 100644 --- a/src/com/android/launcher3/pm/UserCache.java +++ b/src/com/android/launcher3/pm/UserCache.java @@ -95,7 +95,7 @@ public class UserCache { private void removeUserChangeListener(Runnable command) { synchronized (this) { - mUserChangeListeners.add(command); + mUserChangeListeners.remove(command); if (mUserChangeListeners.isEmpty()) { // Disable cache and stop listening mContext.unregisterReceiver(mUserChangeReceiver);