Loading quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +12 −10 Original line number Diff line number Diff line Loading @@ -83,7 +83,6 @@ import android.view.Display; import android.view.HapticFeedbackConstants; import android.view.RemoteAnimationTarget; import android.view.View; import android.view.WindowManagerGlobal; import android.window.BackEvent; import android.window.OnBackAnimationCallback; import android.window.OnBackInvokedDispatcher; Loading Loading @@ -421,7 +420,6 @@ public class QuickstepLauncher extends Launcher { */ private void onStateOrResumeChanging(boolean inTransition) { LauncherState state = getStateManager().getState(); if (!ENABLE_PIP_KEEP_CLEAR_ALGORITHM) { boolean started = ((getActivityFlags() & ACTIVITY_STATE_STARTED)) != 0; if (started) { DeviceProfile profile = getDeviceProfile(); Loading @@ -430,6 +428,10 @@ public class QuickstepLauncher extends Launcher { boolean visible = (state == NORMAL || state == OVERVIEW) && (willUserBeActive || isUserActive()) && !profile.isVerticalBarLayout(); if (ENABLE_PIP_KEEP_CLEAR_ALGORITHM) { SystemUiProxy.INSTANCE.get(this) .setLauncherKeepClearAreaHeight(visible, profile.hotseatBarSizePx); } else { SystemUiProxy.INSTANCE.get(this).setShelfHeight(visible, profile.hotseatBarSizePx); } } Loading quickstep/src/com/android/quickstep/SystemUiProxy.java +35 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ public class SystemUiProxy implements ISystemUiProxy { new MainThreadInitializedObject<>(SystemUiProxy::new); private static final int MSG_SET_SHELF_HEIGHT = 1; private static final int MSG_SET_LAUNCHER_KEEP_CLEAR_AREA_HEIGHT = 2; private ISystemUiProxy mSystemUiProxy; private IPip mPip; Loading Loading @@ -121,6 +122,10 @@ public class SystemUiProxy implements ISystemUiProxy { private int mLastShelfHeight; private boolean mLastShelfVisible; // Used to dedupe calls to SystemUI private int mLastLauncherKeepClearAreaHeight; private boolean mLastLauncherKeepClearAreaHeightVisible; private final Context mContext; private final Handler mAsyncHandler; Loading Loading @@ -453,6 +458,33 @@ public class SystemUiProxy implements ISystemUiProxy { } } /** * Sets the height of the keep clear area that is going to be reported by * the Launcher for the Hotseat. */ public void setLauncherKeepClearAreaHeight(boolean visible, int height) { Message.obtain(mAsyncHandler, MSG_SET_LAUNCHER_KEEP_CLEAR_AREA_HEIGHT, visible ? 1 : 0 , height).sendToTarget(); } @WorkerThread private void setLauncherKeepClearAreaHeight(int visibleInt, int height) { boolean visible = visibleInt != 0; boolean changed = visible != mLastLauncherKeepClearAreaHeightVisible || height != mLastLauncherKeepClearAreaHeight; IPip pip = mPip; if (pip != null && changed) { mLastLauncherKeepClearAreaHeightVisible = visible; mLastLauncherKeepClearAreaHeight = height; try { pip.setLauncherKeepClearAreaHeight(visible, height); } catch (RemoteException e) { Log.w(TAG, "Failed call setLauncherKeepClearAreaHeight visible: " + visible + " height: " + height, e); } } } /** * Sets listener to get pip animation callbacks. */ Loading Loading @@ -945,6 +977,9 @@ public class SystemUiProxy implements ISystemUiProxy { case MSG_SET_SHELF_HEIGHT: setShelfHeightAsync(msg.arg1, msg.arg2); return true; case MSG_SET_LAUNCHER_KEEP_CLEAR_AREA_HEIGHT: setLauncherKeepClearAreaHeight(msg.arg1, msg.arg2); return true; } return false; Loading Loading
quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +12 −10 Original line number Diff line number Diff line Loading @@ -83,7 +83,6 @@ import android.view.Display; import android.view.HapticFeedbackConstants; import android.view.RemoteAnimationTarget; import android.view.View; import android.view.WindowManagerGlobal; import android.window.BackEvent; import android.window.OnBackAnimationCallback; import android.window.OnBackInvokedDispatcher; Loading Loading @@ -421,7 +420,6 @@ public class QuickstepLauncher extends Launcher { */ private void onStateOrResumeChanging(boolean inTransition) { LauncherState state = getStateManager().getState(); if (!ENABLE_PIP_KEEP_CLEAR_ALGORITHM) { boolean started = ((getActivityFlags() & ACTIVITY_STATE_STARTED)) != 0; if (started) { DeviceProfile profile = getDeviceProfile(); Loading @@ -430,6 +428,10 @@ public class QuickstepLauncher extends Launcher { boolean visible = (state == NORMAL || state == OVERVIEW) && (willUserBeActive || isUserActive()) && !profile.isVerticalBarLayout(); if (ENABLE_PIP_KEEP_CLEAR_ALGORITHM) { SystemUiProxy.INSTANCE.get(this) .setLauncherKeepClearAreaHeight(visible, profile.hotseatBarSizePx); } else { SystemUiProxy.INSTANCE.get(this).setShelfHeight(visible, profile.hotseatBarSizePx); } } Loading
quickstep/src/com/android/quickstep/SystemUiProxy.java +35 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ public class SystemUiProxy implements ISystemUiProxy { new MainThreadInitializedObject<>(SystemUiProxy::new); private static final int MSG_SET_SHELF_HEIGHT = 1; private static final int MSG_SET_LAUNCHER_KEEP_CLEAR_AREA_HEIGHT = 2; private ISystemUiProxy mSystemUiProxy; private IPip mPip; Loading Loading @@ -121,6 +122,10 @@ public class SystemUiProxy implements ISystemUiProxy { private int mLastShelfHeight; private boolean mLastShelfVisible; // Used to dedupe calls to SystemUI private int mLastLauncherKeepClearAreaHeight; private boolean mLastLauncherKeepClearAreaHeightVisible; private final Context mContext; private final Handler mAsyncHandler; Loading Loading @@ -453,6 +458,33 @@ public class SystemUiProxy implements ISystemUiProxy { } } /** * Sets the height of the keep clear area that is going to be reported by * the Launcher for the Hotseat. */ public void setLauncherKeepClearAreaHeight(boolean visible, int height) { Message.obtain(mAsyncHandler, MSG_SET_LAUNCHER_KEEP_CLEAR_AREA_HEIGHT, visible ? 1 : 0 , height).sendToTarget(); } @WorkerThread private void setLauncherKeepClearAreaHeight(int visibleInt, int height) { boolean visible = visibleInt != 0; boolean changed = visible != mLastLauncherKeepClearAreaHeightVisible || height != mLastLauncherKeepClearAreaHeight; IPip pip = mPip; if (pip != null && changed) { mLastLauncherKeepClearAreaHeightVisible = visible; mLastLauncherKeepClearAreaHeight = height; try { pip.setLauncherKeepClearAreaHeight(visible, height); } catch (RemoteException e) { Log.w(TAG, "Failed call setLauncherKeepClearAreaHeight visible: " + visible + " height: " + height, e); } } } /** * Sets listener to get pip animation callbacks. */ Loading Loading @@ -945,6 +977,9 @@ public class SystemUiProxy implements ISystemUiProxy { case MSG_SET_SHELF_HEIGHT: setShelfHeightAsync(msg.arg1, msg.arg2); return true; case MSG_SET_LAUNCHER_KEEP_CLEAR_AREA_HEIGHT: setLauncherKeepClearAreaHeight(msg.arg1, msg.arg2); return true; } return false; Loading