From 6a14189b071180b8dfdbfa9e3860405b2e3c0a5b Mon Sep 17 00:00:00 2001 From: Brandon Dayauon Date: Tue, 30 May 2023 10:53:51 -0700 Subject: Fix "Pause work apps" button in strange location The issue why the button sticks up is because of the translation not resetting when closing All apps. - This CL resets ime insets and the position of the button to the original location. bug: 278722407 test: manual - before:https://drive.google.com/file/d/1_L4ICHrt582KcVcpvQDK9HciC_n5eiEy/view?usp=sharing after: https://drive.google.com/file/d/1_G8-Jd_wdUKjy7vFj6iQ1QmCx_7Qrogn/view?usp=sharing Change-Id: Ib32b8ef950d03aa812f30c2393e3cad3201c08da --- src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java | 3 +++ src/com/android/launcher3/allapps/WorkModeSwitch.java | 6 +++++- src/com/android/launcher3/allapps/WorkProfileManager.java | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) (limited to 'src/com/android') diff --git a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java index 21dfbe1d0c..d4140d851c 100644 --- a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java @@ -444,6 +444,9 @@ public class ActivityAllAppsContainerView // Animate to A-Z with 0 time to reset the animation with proper state management. animateToSearchState(false, 0); } + if (isSearching()) { + mWorkManager.reset(); + } } @Override diff --git a/src/com/android/launcher3/allapps/WorkModeSwitch.java b/src/com/android/launcher3/allapps/WorkModeSwitch.java index 663fdb9822..8c2fb195c6 100644 --- a/src/com/android/launcher3/allapps/WorkModeSwitch.java +++ b/src/com/android/launcher3/allapps/WorkModeSwitch.java @@ -166,7 +166,7 @@ public class WorkModeSwitch extends LinearLayout implements Insettable, return super.onApplyWindowInsets(insets); } - private void updateTranslationY() { + void updateTranslationY() { setTranslationY(-mImeInsets.bottom); } @@ -180,6 +180,10 @@ public class WorkModeSwitch extends LinearLayout implements Insettable, rect.set(insets.left, insets.top, insets.right, insets.bottom); } + public Rect getImeInsets() { + return mImeInsets; + } + @Override public void onTranslationStart() { setFlag(FLAG_TRANSLATION_ONGOING); diff --git a/src/com/android/launcher3/allapps/WorkProfileManager.java b/src/com/android/launcher3/allapps/WorkProfileManager.java index 30af50261d..44c233f557 100644 --- a/src/com/android/launcher3/allapps/WorkProfileManager.java +++ b/src/com/android/launcher3/allapps/WorkProfileManager.java @@ -136,6 +136,11 @@ public class WorkProfileManager implements PersonalWorkSlidingTabStrip.OnActiveP public void reset() { boolean isEnabled = !mAllApps.getAppsStore().hasModelFlag(FLAG_QUIET_MODE_ENABLED); updateCurrentState(isEnabled ? STATE_ENABLED : STATE_DISABLED); + if (mWorkModeSwitch != null) { + // reset the position of the button and clear IME insets. + mWorkModeSwitch.getImeInsets().setEmpty(); + mWorkModeSwitch.updateTranslationY(); + } } private void updateCurrentState(@WorkProfileState int currentState) { -- cgit v1.2.3