summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/PipController.java5
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/PipNotification.java76
2 files changed, 41 insertions, 40 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/PipController.java
index 7b710553b67d..3468b888c06a 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/PipController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/PipController.java
@@ -224,10 +224,11 @@ public class PipController implements Pip, PipTaskOrganizer.PipTransitionCallbac
PipBoundsHandler pipBoundsHandler,
PipTaskOrganizer pipTaskOrganizer,
PipMediaController pipMediaController,
+ PipNotification pipNotification,
WindowManagerShellWrapper windowManagerShellWrapper) {
mContext = context;
mPipBoundsState = pipBoundsState;
- mPipNotification = new PipNotification(context, this);
+ mPipNotification = pipNotification;
mPipBoundsHandler = pipBoundsHandler;
mPipMediaController = pipMediaController;
// Ensure that we have the display info in case we get calls to update the bounds
@@ -242,6 +243,8 @@ public class PipController implements Pip, PipTaskOrganizer.PipTransitionCallbac
mPipTaskOrganizer.registerPipTransitionCallback(this);
mActivityTaskManager = ActivityTaskManager.getService();
+ addListener(mPipNotification);
+
final IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ACTION_CLOSE);
intentFilter.addAction(ACTION_MENU);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/PipNotification.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/PipNotification.java
index d6368ea83771..b30dee4f331f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/PipNotification.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/PipNotification.java
@@ -32,6 +32,7 @@ import android.text.TextUtils;
import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
import com.android.wm.shell.R;
+import com.android.wm.shell.pip.PipMediaController;
import java.util.Objects;
@@ -40,7 +41,7 @@ import java.util.Objects;
* <p>Once it's created, it will manage the PIP notification UI by itself except for handling
* configuration changes.
*/
-public class PipNotification {
+public class PipNotification implements PipController.Listener {
private static final boolean DEBUG = PipController.DEBUG;
private static final String TAG = "PipNotification";
@@ -63,42 +64,7 @@ public class PipNotification {
private String mMediaTitle;
private Bitmap mArt;
- private PipController.Listener mPipListener = new PipController.Listener() {
- @Override
- public void onPipEntered(String packageName) {
- mPackageName = packageName;
- notifyPipNotification();
- }
-
- @Override
- public void onPipActivityClosed() {
- dismissPipNotification();
- mPackageName = null;
- }
-
- @Override
- public void onShowPipMenu() {
- // no-op.
- }
-
- @Override
- public void onPipMenuActionsChanged(ParceledListSlice<RemoteAction> actions) {
- // no-op.
- }
-
- @Override
- public void onMoveToFullscreen() {
- dismissPipNotification();
- mPackageName = null;
- }
-
- @Override
- public void onPipResizeAboutToStart() {
- // no-op.
- }
- };
-
- public PipNotification(Context context, PipController pipController) {
+ public PipNotification(Context context, PipMediaController pipMediaController) {
mPackageManager = context.getPackageManager();
mNotificationManager = context.getSystemService(NotificationManager.class);
@@ -110,12 +76,44 @@ public class PipNotification {
.setContentIntent(createPendingIntent(context, ACTION_MENU))
.setDeleteIntent(createPendingIntent(context, ACTION_CLOSE)));
- pipController.addListener(mPipListener);
- pipController.getPipMediaController().addMetadataListener(this::onMediaMetadataChanged);
+ pipMediaController.addMetadataListener(this::onMediaMetadataChanged);
onConfigurationChanged(context);
}
+ @Override
+ public void onPipEntered(String packageName) {
+ mPackageName = packageName;
+ notifyPipNotification();
+ }
+
+ @Override
+ public void onPipActivityClosed() {
+ dismissPipNotification();
+ mPackageName = null;
+ }
+
+ @Override
+ public void onShowPipMenu() {
+ // no-op.
+ }
+
+ @Override
+ public void onPipMenuActionsChanged(ParceledListSlice<RemoteAction> actions) {
+ // no-op.
+ }
+
+ @Override
+ public void onMoveToFullscreen() {
+ dismissPipNotification();
+ mPackageName = null;
+ }
+
+ @Override
+ public void onPipResizeAboutToStart() {
+ // no-op.
+ }
+
private void onMediaMetadataChanged(MediaMetadata metadata) {
if (updateMediaControllerMetadata(metadata) && mNotified) {
// update notification