Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 85d3c8a8 authored by Winson Chung's avatar Winson Chung
Browse files

Ensure profile-specific PiP notification is shown.

- Pipe through user id when an activity is pinned, to ensure we show the
  right notification with the correct profile badge that launches into the
  correct profile's PiP settings.

Bug: 65417722
Test: Enter PiP for work profile app, ensure that it shows the notification
      for that profile, and launches the profile-specific PiP settings.

Change-Id: I62b8e1b23cb81bfc60c93f452cf950ab06cbf32d
parent cda0464f
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -30,7 +30,7 @@ oneway interface ITaskStackListener {
    void onTaskStackChanged();
    void onTaskStackChanged();


    /** Called whenever an Activity is moved to the pinned stack from another stack. */
    /** Called whenever an Activity is moved to the pinned stack from another stack. */
    void onActivityPinned(String packageName, int taskId);
    void onActivityPinned(String packageName, int userId, int taskId);


    /** Called whenever an Activity is moved from the pinned stack to another stack. */
    /** Called whenever an Activity is moved from the pinned stack to another stack. */
    void onActivityUnpinned();
    void onActivityUnpinned();
+2 −1
Original line number Original line Diff line number Diff line
@@ -31,7 +31,8 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub {
    }
    }


    @Override
    @Override
    public void onActivityPinned(String packageName, int taskId) throws RemoteException {
    public void onActivityPinned(String packageName, int userId, int taskId)
            throws RemoteException {
    }
    }


    @Override
    @Override
+12 −9
Original line number Original line Diff line number Diff line
@@ -30,6 +30,7 @@ import android.graphics.Rect;
import android.os.Handler;
import android.os.Handler;
import android.os.RemoteException;
import android.os.RemoteException;
import android.util.Log;
import android.util.Log;
import android.util.Pair;
import android.view.IPinnedStackController;
import android.view.IPinnedStackController;
import android.view.IPinnedStackListener;
import android.view.IPinnedStackListener;
import android.view.IWindowManager;
import android.view.IWindowManager;
@@ -70,11 +71,11 @@ public class PipManager implements BasePipManager {
     */
     */
    TaskStackListener mTaskStackListener = new TaskStackListener() {
    TaskStackListener mTaskStackListener = new TaskStackListener() {
        @Override
        @Override
        public void onActivityPinned(String packageName, int taskId) {
        public void onActivityPinned(String packageName, int userId, int taskId) {
            mTouchHandler.onActivityPinned();
            mTouchHandler.onActivityPinned();
            mMediaController.onActivityPinned();
            mMediaController.onActivityPinned();
            mMenuController.onActivityPinned();
            mMenuController.onActivityPinned();
            mNotificationController.onActivityPinned(packageName,
            mNotificationController.onActivityPinned(packageName, userId,
                    true /* deferUntilAnimationEnds */);
                    true /* deferUntilAnimationEnds */);


            SystemServicesProxy.getInstance(mContext).setPipVisibility(true);
            SystemServicesProxy.getInstance(mContext).setPipVisibility(true);
@@ -82,13 +83,15 @@ public class PipManager implements BasePipManager {


        @Override
        @Override
        public void onActivityUnpinned() {
        public void onActivityUnpinned() {
            ComponentName topPipActivity = PipUtils.getTopPinnedActivity(mContext,
            final Pair<ComponentName, Integer> topPipActivityInfo = PipUtils.getTopPinnedActivity(
                    mActivityManager);
                    mContext, mActivityManager);
            mMenuController.onActivityUnpinned(topPipActivity);
            final ComponentName topActivity = topPipActivityInfo.first;
            mTouchHandler.onActivityUnpinned(topPipActivity);
            final int userId = topActivity != null ? topPipActivityInfo.second : 0;
            mNotificationController.onActivityUnpinned(topPipActivity);
            mMenuController.onActivityUnpinned();

            mTouchHandler.onActivityUnpinned(topActivity);
            SystemServicesProxy.getInstance(mContext).setPipVisibility(topPipActivity != null);
            mNotificationController.onActivityUnpinned(topActivity, userId);

            SystemServicesProxy.getInstance(mContext).setPipVisibility(topActivity != null);
        }
        }


        @Override
        @Override
+1 −1
Original line number Original line Diff line number Diff line
@@ -230,7 +230,7 @@ public class PipMediaController {
    private void resolveActiveMediaController(List<MediaController> controllers) {
    private void resolveActiveMediaController(List<MediaController> controllers) {
        if (controllers != null) {
        if (controllers != null) {
            final ComponentName topActivity = PipUtils.getTopPinnedActivity(mContext,
            final ComponentName topActivity = PipUtils.getTopPinnedActivity(mContext,
                    mActivityManager);
                    mActivityManager).first;
            if (topActivity != null) {
            if (topActivity != null) {
                for (int i = 0; i < controllers.size(); i++) {
                for (int i = 0; i < controllers.size(); i++) {
                    final MediaController controller = controllers.get(i);
                    final MediaController controller = controllers.get(i);
+1 −1
Original line number Original line Diff line number Diff line
@@ -223,7 +223,7 @@ public class PipMenuActivityController {
        }
        }
    }
    }


    public void onActivityUnpinned(ComponentName topPipActivity) {
    public void onActivityUnpinned() {
        hideMenu();
        hideMenu();
        setStartActivityRequested(false);
        setStartActivityRequested(false);
    }
    }
Loading