Loading core/java/android/view/IPinnedTaskListener.aidl +0 −8 Original line number Diff line number Diff line Loading @@ -42,12 +42,4 @@ oneway interface IPinnedTaskListener { * with fromImeAdjustement set to {@code true}. */ void onImeVisibilityChanged(boolean imeVisible, int imeHeight); /** * Called by the window manager to notify the listener that Activity (was or is in pinned mode) * is hidden (either stopped or removed). This is generally used as a signal to reset saved * reentry fraction and size. * {@param componentName} represents the application component of PiP window. */ void onActivityHidden(in ComponentName componentName); } libs/WindowManager/Shell/src/com/android/wm/shell/pip/PinnedStackListenerForwarder.java +0 −16 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.wm.shell.pip; import android.content.ComponentName; import android.os.RemoteException; import android.view.IPinnedTaskListener; import android.view.WindowManagerGlobal; Loading Loading @@ -70,12 +69,6 @@ public class PinnedStackListenerForwarder { } } private void onActivityHidden(ComponentName componentName) { for (PinnedTaskListener listener : mListeners) { listener.onActivityHidden(componentName); } } @BinderThread private class PinnedTaskListenerImpl extends IPinnedTaskListener.Stub { @Override Loading @@ -91,13 +84,6 @@ public class PinnedStackListenerForwarder { PinnedStackListenerForwarder.this.onImeVisibilityChanged(imeVisible, imeHeight); }); } @Override public void onActivityHidden(ComponentName componentName) { mMainExecutor.execute(() -> { PinnedStackListenerForwarder.this.onActivityHidden(componentName); }); } } /** Loading @@ -108,7 +94,5 @@ public class PinnedStackListenerForwarder { public void onMovementBoundsChanged(boolean fromImeAdjustment) {} public void onImeVisibilityChanged(boolean imeVisible, int imeHeight) {} public void onActivityHidden(ComponentName componentName) {} } } libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java +20 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static android.util.RotationUtils.rotateBounds; import static android.view.Surface.ROTATION_270; import static android.view.Surface.ROTATION_90; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_PIP; import static android.view.WindowManager.TRANSIT_TO_BACK; Loading Loading @@ -300,6 +301,10 @@ public class PipTransition extends PipTransitionController { finishTransaction); } if (isCurrentPipActivityClosed(info)) { mPipBoundsState.setLastPipComponentName(null /* componentName */); } return false; } Loading @@ -322,6 +327,21 @@ public class PipTransition extends PipTransitionController { return true; } private boolean isCurrentPipActivityClosed(TransitionInfo info) { for (int i = info.getChanges().size() - 1; i >= 0; --i) { TransitionInfo.Change change = info.getChanges().get(i); boolean isTaskChange = change.getTaskInfo() != null; boolean hasComponentNameOfPip = change.getActivityComponent() != null && change.getActivityComponent().equals( mPipBoundsState.getLastPipComponentName()); if (!isTaskChange && change.getMode() == TRANSIT_CLOSE && hasComponentNameOfPip) { return true; } } return false; } @Override public void mergeAnimation(@NonNull IBinder transition, @NonNull TransitionInfo info, @NonNull SurfaceControl.Transaction t, @NonNull IBinder mergeTarget, Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +0 −9 Original line number Diff line number Diff line Loading @@ -368,15 +368,6 @@ public class PipController implements PipTransitionController.PipTransitionCallb false /* fromRotation */, fromImeAdjustment, false /* fromShelfAdjustment */, null /* windowContainerTransaction */); } @Override public void onActivityHidden(ComponentName componentName) { if (componentName.equals(mPipBoundsState.getLastPipComponentName())) { // The activity was removed, we don't want to restore to the reentry state // saved for this component anymore. mPipBoundsState.setLastPipComponentName(null); } } } /** Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java +0 −22 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ import static org.mockito.Mockito.when; import static java.lang.Integer.MAX_VALUE; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Configuration; Loading Loading @@ -234,27 +233,6 @@ public class PipControllerTest extends ShellTestCase { mMockOneHandedController, mMockExecutor)); } @Test public void onActivityHidden_isLastPipComponentName_clearLastPipComponent() { final ComponentName component1 = new ComponentName(mContext, "component1"); when(mMockPipBoundsState.getLastPipComponentName()).thenReturn(component1); mPipController.mPinnedTaskListener.onActivityHidden(component1); verify(mMockPipBoundsState).setLastPipComponentName(null); } @Test public void onActivityHidden_isNotLastPipComponentName_lastPipComponentNotCleared() { final ComponentName component1 = new ComponentName(mContext, "component1"); final ComponentName component2 = new ComponentName(mContext, "component2"); when(mMockPipBoundsState.getLastPipComponentName()).thenReturn(component1); mPipController.mPinnedTaskListener.onActivityHidden(component2); verify(mMockPipBoundsState, never()).setLastPipComponentName(null); } @Test public void saveReentryState_savesPipBoundsState() { final Rect bounds = new Rect(0, 0, 10, 10); Loading Loading
core/java/android/view/IPinnedTaskListener.aidl +0 −8 Original line number Diff line number Diff line Loading @@ -42,12 +42,4 @@ oneway interface IPinnedTaskListener { * with fromImeAdjustement set to {@code true}. */ void onImeVisibilityChanged(boolean imeVisible, int imeHeight); /** * Called by the window manager to notify the listener that Activity (was or is in pinned mode) * is hidden (either stopped or removed). This is generally used as a signal to reset saved * reentry fraction and size. * {@param componentName} represents the application component of PiP window. */ void onActivityHidden(in ComponentName componentName); }
libs/WindowManager/Shell/src/com/android/wm/shell/pip/PinnedStackListenerForwarder.java +0 −16 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.wm.shell.pip; import android.content.ComponentName; import android.os.RemoteException; import android.view.IPinnedTaskListener; import android.view.WindowManagerGlobal; Loading Loading @@ -70,12 +69,6 @@ public class PinnedStackListenerForwarder { } } private void onActivityHidden(ComponentName componentName) { for (PinnedTaskListener listener : mListeners) { listener.onActivityHidden(componentName); } } @BinderThread private class PinnedTaskListenerImpl extends IPinnedTaskListener.Stub { @Override Loading @@ -91,13 +84,6 @@ public class PinnedStackListenerForwarder { PinnedStackListenerForwarder.this.onImeVisibilityChanged(imeVisible, imeHeight); }); } @Override public void onActivityHidden(ComponentName componentName) { mMainExecutor.execute(() -> { PinnedStackListenerForwarder.this.onActivityHidden(componentName); }); } } /** Loading @@ -108,7 +94,5 @@ public class PinnedStackListenerForwarder { public void onMovementBoundsChanged(boolean fromImeAdjustment) {} public void onImeVisibilityChanged(boolean imeVisible, int imeHeight) {} public void onActivityHidden(ComponentName componentName) {} } }
libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java +20 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static android.util.RotationUtils.rotateBounds; import static android.view.Surface.ROTATION_270; import static android.view.Surface.ROTATION_90; import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_PIP; import static android.view.WindowManager.TRANSIT_TO_BACK; Loading Loading @@ -300,6 +301,10 @@ public class PipTransition extends PipTransitionController { finishTransaction); } if (isCurrentPipActivityClosed(info)) { mPipBoundsState.setLastPipComponentName(null /* componentName */); } return false; } Loading @@ -322,6 +327,21 @@ public class PipTransition extends PipTransitionController { return true; } private boolean isCurrentPipActivityClosed(TransitionInfo info) { for (int i = info.getChanges().size() - 1; i >= 0; --i) { TransitionInfo.Change change = info.getChanges().get(i); boolean isTaskChange = change.getTaskInfo() != null; boolean hasComponentNameOfPip = change.getActivityComponent() != null && change.getActivityComponent().equals( mPipBoundsState.getLastPipComponentName()); if (!isTaskChange && change.getMode() == TRANSIT_CLOSE && hasComponentNameOfPip) { return true; } } return false; } @Override public void mergeAnimation(@NonNull IBinder transition, @NonNull TransitionInfo info, @NonNull SurfaceControl.Transaction t, @NonNull IBinder mergeTarget, Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +0 −9 Original line number Diff line number Diff line Loading @@ -368,15 +368,6 @@ public class PipController implements PipTransitionController.PipTransitionCallb false /* fromRotation */, fromImeAdjustment, false /* fromShelfAdjustment */, null /* windowContainerTransaction */); } @Override public void onActivityHidden(ComponentName componentName) { if (componentName.equals(mPipBoundsState.getLastPipComponentName())) { // The activity was removed, we don't want to restore to the reentry state // saved for this component anymore. mPipBoundsState.setLastPipComponentName(null); } } } /** Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java +0 −22 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ import static org.mockito.Mockito.when; import static java.lang.Integer.MAX_VALUE; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Configuration; Loading Loading @@ -234,27 +233,6 @@ public class PipControllerTest extends ShellTestCase { mMockOneHandedController, mMockExecutor)); } @Test public void onActivityHidden_isLastPipComponentName_clearLastPipComponent() { final ComponentName component1 = new ComponentName(mContext, "component1"); when(mMockPipBoundsState.getLastPipComponentName()).thenReturn(component1); mPipController.mPinnedTaskListener.onActivityHidden(component1); verify(mMockPipBoundsState).setLastPipComponentName(null); } @Test public void onActivityHidden_isNotLastPipComponentName_lastPipComponentNotCleared() { final ComponentName component1 = new ComponentName(mContext, "component1"); final ComponentName component2 = new ComponentName(mContext, "component2"); when(mMockPipBoundsState.getLastPipComponentName()).thenReturn(component1); mPipController.mPinnedTaskListener.onActivityHidden(component2); verify(mMockPipBoundsState, never()).setLastPipComponentName(null); } @Test public void saveReentryState_savesPipBoundsState() { final Rect bounds = new Rect(0, 0, 10, 10); Loading