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

Commit f18b2721 authored by Kevin Chyn's avatar Kevin Chyn
Browse files

Add ability to listen to LockTask state changes

Bug: 176211023
Test: Presubmit
Change-Id: I1e9e7151d45751ec6398588788c512f23b2f9fb5
parent b8737dac
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -209,4 +209,10 @@ oneway interface ITaskStackListener {
     * @param taskInfo info about the task which moved
     */
    void onTaskMovedToBack(in ActivityManager.RunningTaskInfo taskInfo);

    /**
     * Called when the lock task mode changes. See ActivityManager#LOCK_TASK_MODE_* and
     * LockTaskController.
     */
    void onLockTaskModeChanged(int mode);
}
+4 −0
Original line number Diff line number Diff line
@@ -193,4 +193,8 @@ public abstract class TaskStackListener extends ITaskStackListener.Stub {
    @Override
    public void onTaskMovedToBack(RunningTaskInfo taskInfo) {
    }

    @Override
    public void onLockTaskModeChanged(int mode) {
    }
}
+6 −0
Original line number Diff line number Diff line
@@ -100,4 +100,10 @@ public abstract class TaskStackChangeListener {

    /** @see ITaskStackListener#onActivityRotation(int)*/
    public void onActivityRotation(int displayId) { }

    /**
     * Called when the lock task mode changes. See ActivityManager#LOCK_TASK_MODE_* and
     * LockTaskController.
     */
    public void onLockTaskModeChanged(int mode) { }
}
+12 −0
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@ public class TaskStackChangeListeners {
        private static final int ON_TASK_LIST_FROZEN_UNFROZEN = 20;
        private static final int ON_TASK_DESCRIPTION_CHANGED = 21;
        private static final int ON_ACTIVITY_ROTATION = 22;
        private static final int ON_LOCK_TASK_MODE_CHANGED = 23;

        /**
         * List of {@link TaskStackChangeListener} registered from {@link #addListener}.
@@ -272,6 +273,11 @@ public class TaskStackChangeListeners {
                    .sendToTarget();
        }

        @Override
        public void onLockTaskModeChanged(int mode) {
            mHandler.obtainMessage(ON_LOCK_TASK_MODE_CHANGED, mode, 0 /* unused */).sendToTarget();
        }

        @Override
        public boolean handleMessage(Message msg) {
            synchronized (mTaskStackListeners) {
@@ -421,6 +427,12 @@ public class TaskStackChangeListeners {
                        }
                        break;
                    }
                    case ON_LOCK_TASK_MODE_CHANGED: {
                        for (int i = mTaskStackListeners.size() - 1; i >= 0; i--) {
                            mTaskStackListeners.get(i).onLockTaskModeChanged(msg.arg1);
                        }
                        break;
                    }
                }
            }
            if (msg.obj instanceof SomeArgs) {
+2 −1
Original line number Diff line number Diff line
@@ -863,7 +863,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {

        mTaskChangeNotificationController =
                new TaskChangeNotificationController(mGlobalLock, mTaskSupervisor, mH);
        mLockTaskController = new LockTaskController(mContext, mTaskSupervisor, mH);
        mLockTaskController = new LockTaskController(mContext, mTaskSupervisor, mH,
                mTaskChangeNotificationController);
        mActivityStartController = new ActivityStartController(this);
        setRecentTasks(new RecentTasks(this, mTaskSupervisor));
        mVrController = new VrController(mGlobalLock);
Loading