Merge "Dismiss TV PiP when app op OP_PICTURE_IN_PICTURE is revoked" into tm-dev am: 7bea00698c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17907962 Change-Id: Icdc7a26c1655ca50bf2509d1651e93e259acfdb9 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -29,6 +29,7 @@ import com.android.wm.shell.common.TaskStackListenerImpl;
|
||||
import com.android.wm.shell.common.annotations.ShellMainThread;
|
||||
import com.android.wm.shell.pip.Pip;
|
||||
import com.android.wm.shell.pip.PipAnimationController;
|
||||
import com.android.wm.shell.pip.PipAppOpsListener;
|
||||
import com.android.wm.shell.pip.PipMediaController;
|
||||
import com.android.wm.shell.pip.PipParamsChangedForwarder;
|
||||
import com.android.wm.shell.pip.PipSnapAlgorithm;
|
||||
@@ -63,6 +64,7 @@ public abstract class TvPipModule {
|
||||
Context context,
|
||||
TvPipBoundsState tvPipBoundsState,
|
||||
TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
|
||||
PipAppOpsListener pipAppOpsListener,
|
||||
PipTaskOrganizer pipTaskOrganizer,
|
||||
TvPipMenuController tvPipMenuController,
|
||||
PipMediaController pipMediaController,
|
||||
@@ -79,6 +81,7 @@ public abstract class TvPipModule {
|
||||
context,
|
||||
tvPipBoundsState,
|
||||
tvPipBoundsAlgorithm,
|
||||
pipAppOpsListener,
|
||||
pipTaskOrganizer,
|
||||
pipTransitionController,
|
||||
tvPipMenuController,
|
||||
@@ -185,4 +188,12 @@ public abstract class TvPipModule {
|
||||
static PipParamsChangedForwarder providePipParamsChangedForwarder() {
|
||||
return new PipParamsChangedForwarder();
|
||||
}
|
||||
|
||||
@WMSingleton
|
||||
@Provides
|
||||
static PipAppOpsListener providePipAppOpsListener(Context context,
|
||||
PipTaskOrganizer pipTaskOrganizer,
|
||||
@ShellMainThread ShellExecutor mainExecutor) {
|
||||
return new PipAppOpsListener(context, pipTaskOrganizer::removePip, mainExecutor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,6 @@ import com.android.wm.shell.pip.Pip;
|
||||
import com.android.wm.shell.pip.PipMediaController;
|
||||
import com.android.wm.shell.pip.PipSurfaceTransactionHelper;
|
||||
import com.android.wm.shell.pip.PipUiEventLogger;
|
||||
import com.android.wm.shell.pip.phone.PipAppOpsListener;
|
||||
import com.android.wm.shell.pip.phone.PipTouchHandler;
|
||||
import com.android.wm.shell.recents.RecentTasks;
|
||||
import com.android.wm.shell.recents.RecentTasksController;
|
||||
@@ -435,14 +434,6 @@ public abstract class WMShellBaseModule {
|
||||
return new FloatingContentCoordinator();
|
||||
}
|
||||
|
||||
@WMSingleton
|
||||
@Provides
|
||||
static PipAppOpsListener providePipAppOpsListener(Context context,
|
||||
PipTouchHandler pipTouchHandler,
|
||||
@ShellMainThread ShellExecutor mainExecutor) {
|
||||
return new PipAppOpsListener(context, pipTouchHandler.getMotionHelper(), mainExecutor);
|
||||
}
|
||||
|
||||
// Needs handler for registering broadcast receivers
|
||||
@WMSingleton
|
||||
@Provides
|
||||
|
||||
@@ -51,6 +51,7 @@ import com.android.wm.shell.legacysplitscreen.LegacySplitScreenController;
|
||||
import com.android.wm.shell.onehanded.OneHandedController;
|
||||
import com.android.wm.shell.pip.Pip;
|
||||
import com.android.wm.shell.pip.PipAnimationController;
|
||||
import com.android.wm.shell.pip.PipAppOpsListener;
|
||||
import com.android.wm.shell.pip.PipBoundsAlgorithm;
|
||||
import com.android.wm.shell.pip.PipBoundsState;
|
||||
import com.android.wm.shell.pip.PipMediaController;
|
||||
@@ -63,7 +64,6 @@ import com.android.wm.shell.pip.PipTransitionController;
|
||||
import com.android.wm.shell.pip.PipTransitionState;
|
||||
import com.android.wm.shell.pip.PipUiEventLogger;
|
||||
import com.android.wm.shell.pip.phone.PhonePipMenuController;
|
||||
import com.android.wm.shell.pip.phone.PipAppOpsListener;
|
||||
import com.android.wm.shell.pip.phone.PipController;
|
||||
import com.android.wm.shell.pip.phone.PipMotionHelper;
|
||||
import com.android.wm.shell.pip.phone.PipTouchHandler;
|
||||
@@ -323,6 +323,14 @@ public class WMShellModule {
|
||||
pipSurfaceTransactionHelper, splitScreenOptional);
|
||||
}
|
||||
|
||||
@WMSingleton
|
||||
@Provides
|
||||
static PipAppOpsListener providePipAppOpsListener(Context context,
|
||||
PipTouchHandler pipTouchHandler,
|
||||
@ShellMainThread ShellExecutor mainExecutor) {
|
||||
return new PipAppOpsListener(context, pipTouchHandler.getMotionHelper(), mainExecutor);
|
||||
}
|
||||
|
||||
@WMSingleton
|
||||
@Provides
|
||||
static PipMotionHelper providePipMotionHelper(Context context,
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.wm.shell.pip.phone;
|
||||
package com.android.wm.shell.pip;
|
||||
|
||||
import static android.app.AppOpsManager.MODE_ALLOWED;
|
||||
import static android.app.AppOpsManager.OP_PICTURE_IN_PICTURE;
|
||||
@@ -28,7 +28,6 @@ import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.wm.shell.common.ShellExecutor;
|
||||
import com.android.wm.shell.pip.PipUtils;
|
||||
|
||||
public class PipAppOpsListener {
|
||||
private static final String TAG = PipAppOpsListener.class.getSimpleName();
|
||||
@@ -76,6 +76,7 @@ import com.android.wm.shell.pip.IPipAnimationListener;
|
||||
import com.android.wm.shell.pip.PinnedStackListenerForwarder;
|
||||
import com.android.wm.shell.pip.Pip;
|
||||
import com.android.wm.shell.pip.PipAnimationController;
|
||||
import com.android.wm.shell.pip.PipAppOpsListener;
|
||||
import com.android.wm.shell.pip.PipBoundsAlgorithm;
|
||||
import com.android.wm.shell.pip.PipBoundsState;
|
||||
import com.android.wm.shell.pip.PipMediaController;
|
||||
|
||||
@@ -44,6 +44,7 @@ import com.android.wm.shell.animation.FloatProperties;
|
||||
import com.android.wm.shell.animation.PhysicsAnimator;
|
||||
import com.android.wm.shell.common.FloatingContentCoordinator;
|
||||
import com.android.wm.shell.common.magnetictarget.MagnetizedObject;
|
||||
import com.android.wm.shell.pip.PipAppOpsListener;
|
||||
import com.android.wm.shell.pip.PipBoundsState;
|
||||
import com.android.wm.shell.pip.PipSnapAlgorithm;
|
||||
import com.android.wm.shell.pip.PipTaskOrganizer;
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.android.wm.shell.common.TaskStackListenerImpl;
|
||||
import com.android.wm.shell.pip.PinnedStackListenerForwarder;
|
||||
import com.android.wm.shell.pip.Pip;
|
||||
import com.android.wm.shell.pip.PipAnimationController;
|
||||
import com.android.wm.shell.pip.PipAppOpsListener;
|
||||
import com.android.wm.shell.pip.PipBoundsState;
|
||||
import com.android.wm.shell.pip.PipMediaController;
|
||||
import com.android.wm.shell.pip.PipParamsChangedForwarder;
|
||||
@@ -97,6 +98,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
|
||||
|
||||
private final TvPipBoundsState mTvPipBoundsState;
|
||||
private final TvPipBoundsAlgorithm mTvPipBoundsAlgorithm;
|
||||
private final PipAppOpsListener mAppOpsListener;
|
||||
private final PipTaskOrganizer mPipTaskOrganizer;
|
||||
private final PipMediaController mPipMediaController;
|
||||
private final TvPipNotificationController mPipNotificationController;
|
||||
@@ -121,6 +123,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
|
||||
Context context,
|
||||
TvPipBoundsState tvPipBoundsState,
|
||||
TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
|
||||
PipAppOpsListener pipAppOpsListener,
|
||||
PipTaskOrganizer pipTaskOrganizer,
|
||||
PipTransitionController pipTransitionController,
|
||||
TvPipMenuController tvPipMenuController,
|
||||
@@ -136,6 +139,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
|
||||
context,
|
||||
tvPipBoundsState,
|
||||
tvPipBoundsAlgorithm,
|
||||
pipAppOpsListener,
|
||||
pipTaskOrganizer,
|
||||
pipTransitionController,
|
||||
tvPipMenuController,
|
||||
@@ -153,6 +157,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
|
||||
Context context,
|
||||
TvPipBoundsState tvPipBoundsState,
|
||||
TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
|
||||
PipAppOpsListener pipAppOpsListener,
|
||||
PipTaskOrganizer pipTaskOrganizer,
|
||||
PipTransitionController pipTransitionController,
|
||||
TvPipMenuController tvPipMenuController,
|
||||
@@ -181,6 +186,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
|
||||
mTvPipMenuController = tvPipMenuController;
|
||||
mTvPipMenuController.setDelegate(this);
|
||||
|
||||
mAppOpsListener = pipAppOpsListener;
|
||||
mPipTaskOrganizer = pipTaskOrganizer;
|
||||
pipTransitionController.registerPipTransitionCallback(this);
|
||||
|
||||
@@ -521,6 +527,12 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
|
||||
@Override
|
||||
public void onActivityPinned(String packageName, int userId, int taskId, int stackId) {
|
||||
checkIfPinnedTaskAppeared();
|
||||
mAppOpsListener.onActivityPinned(packageName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityUnpinned() {
|
||||
mAppOpsListener.onActivityUnpinned();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.android.wm.shell.common.DisplayLayout;
|
||||
import com.android.wm.shell.common.ShellExecutor;
|
||||
import com.android.wm.shell.common.TaskStackListenerImpl;
|
||||
import com.android.wm.shell.onehanded.OneHandedController;
|
||||
import com.android.wm.shell.pip.PipAppOpsListener;
|
||||
import com.android.wm.shell.pip.PipBoundsAlgorithm;
|
||||
import com.android.wm.shell.pip.PipBoundsState;
|
||||
import com.android.wm.shell.pip.PipMediaController;
|
||||
|
||||
Reference in New Issue
Block a user