diff --git a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java index 846e80377e..80d63aeb89 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java +++ b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java @@ -18,6 +18,7 @@ package com.android.launcher3.uioverrides; import static com.android.launcher3.Utilities.getPrefs; import static com.android.quickstep.OverviewInteractionState.KEY_SWIPE_UP_ENABLED; +import static com.android.launcher3.LauncherState.ALL_APPS; import android.content.Context; import android.content.SharedPreferences; @@ -33,6 +34,7 @@ import com.android.launcher3.util.TouchController; import com.android.quickstep.OverviewInteractionState; import com.android.quickstep.RecentsModel; import com.android.quickstep.views.RecentsView; +import com.android.systemui.shared.system.WindowManagerWrapper; public class UiFactory { @@ -93,6 +95,14 @@ public class UiFactory { } } + public static void onLauncherStateOrResumeChanged(Launcher launcher) { + WindowManagerWrapper.getInstance().setShelfHeight( + launcher.getStateManager().getState() != ALL_APPS && + launcher.isUserActive() && + !launcher.getDeviceProfile().isVerticalBarLayout(), + launcher.getDeviceProfile().hotseatBarSizePx); + } + public static void onTrimMemory(Context context, int level) { RecentsModel model = RecentsModel.getInstance(context); if (model != null) { diff --git a/src/com/android/launcher3/BaseActivity.java b/src/com/android/launcher3/BaseActivity.java index 02d70c42ca..cf2d79faf2 100644 --- a/src/com/android/launcher3/BaseActivity.java +++ b/src/com/android/launcher3/BaseActivity.java @@ -39,6 +39,7 @@ public abstract class BaseActivity extends Activity { protected SystemUiController mSystemUiController; private boolean mStarted; + private boolean mUserActive; public DeviceProfile getDeviceProfile() { return mDeviceProfile; @@ -84,6 +85,18 @@ public abstract class BaseActivity extends Activity { super.onStart(); } + @Override + protected void onResume() { + mUserActive = true; + super.onResume(); + } + + @Override + protected void onUserLeaveHint() { + mUserActive = false; + super.onUserLeaveHint(); + } + @Override protected void onStop() { mStarted = false; @@ -94,6 +107,10 @@ public abstract class BaseActivity extends Activity { return mStarted; } + public boolean isUserActive() { + return mUserActive; + } + public void addOnDeviceProfileChangeListener(OnDeviceProfileChangeListener listener) { mDPChangeListeners.add(listener); } diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index ed94aa4382..985e0968dc 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -379,6 +379,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, L } mOldConfig.setTo(newConfig); + UiFactory.onLauncherStateOrResumeChanged(this); super.onConfigurationChanged(newConfig); } @@ -820,6 +821,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, L if (mLauncherCallbacks != null) { mLauncherCallbacks.onResume(); } + UiFactory.onLauncherStateOrResumeChanged(this); TraceHelper.endSection("ON_RESUME"); } @@ -838,6 +840,12 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, L } } + @Override + protected void onUserLeaveHint() { + super.onUserLeaveHint(); + UiFactory.onLauncherStateOrResumeChanged(this); + } + @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java index 7d50a5263a..ef285df6fa 100644 --- a/src/com/android/launcher3/LauncherStateManager.java +++ b/src/com/android/launcher3/LauncherStateManager.java @@ -294,6 +294,7 @@ public class LauncherStateManager { // Only disable clipping if needed, otherwise leave it as previous value. mLauncher.getWorkspace().setClipChildren(false); } + UiFactory.onLauncherStateOrResumeChanged(mLauncher); } private void onStateTransitionEnd(LauncherState state) { @@ -312,6 +313,7 @@ public class LauncherStateManager { } UiFactory.onLauncherStateOrFocusChanged(mLauncher); + UiFactory.onLauncherStateOrResumeChanged(mLauncher); } public void onWindowFocusChanged() { diff --git a/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java b/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java index 94abcce57e..6645e896d2 100644 --- a/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java +++ b/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java @@ -46,6 +46,8 @@ public class UiFactory { public static void onStart(Launcher launcher) { } + public static void onLauncherStateOrResumeChanged(Launcher launcher) { } + public static void onTrimMemory(Launcher launcher, int level) { } public static View[] getHotseatExtraContent(Hotseat hotseat) {