• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.wm.shell.common;
18 
19 import android.app.ActivityManager.RunningTaskInfo;
20 import android.app.ITaskStackListener;
21 import android.content.ComponentName;
22 import android.window.TaskSnapshot;
23 
24 import androidx.annotation.BinderThread;
25 
26 /**
27  * An interface to track task stack changes. Classes should implement this instead of
28  * {@link ITaskStackListener} to reduce IPC calls from system services.
29  */
30 public interface TaskStackListenerCallback {
31 
onRecentTaskListUpdated()32     default void onRecentTaskListUpdated() { }
33 
onRecentTaskListFrozenChanged(boolean frozen)34     default void onRecentTaskListFrozenChanged(boolean frozen) { }
35 
36     /** A task is removed from recents as a result of another task being added to recent tasks. */
onRecentTaskRemovedForAddTask(int taskId)37     default void onRecentTaskRemovedForAddTask(int taskId) { }
38 
39     @BinderThread
onTaskStackChangedBackground()40     default void onTaskStackChangedBackground() { }
41 
onTaskStackChanged()42     default void onTaskStackChanged() { }
43 
onTaskProfileLocked(RunningTaskInfo taskInfo, int userId)44     default void onTaskProfileLocked(RunningTaskInfo taskInfo, int userId) { }
45 
onTaskDisplayChanged(int taskId, int newDisplayId)46     default void onTaskDisplayChanged(int taskId, int newDisplayId) { }
47 
onTaskCreated(int taskId, ComponentName componentName)48     default void onTaskCreated(int taskId, ComponentName componentName) { }
49 
onTaskRemoved(int taskId)50     default void onTaskRemoved(int taskId) { }
51 
onTaskMovedToFront(int taskId)52     default void onTaskMovedToFront(int taskId) { }
53 
onTaskMovedToFront(RunningTaskInfo taskInfo)54     default void onTaskMovedToFront(RunningTaskInfo taskInfo) {
55         onTaskMovedToFront(taskInfo.taskId);
56     }
57 
onTaskDescriptionChanged(RunningTaskInfo taskInfo)58     default void onTaskDescriptionChanged(RunningTaskInfo taskInfo) { }
59 
60     /**
61      * @return whether the snapshot is consumed and the lifecycle of the snapshot extends beyond
62      *         the lifecycle of this callback.
63      */
onTaskSnapshotChanged(int taskId, TaskSnapshot snapshot)64     default boolean onTaskSnapshotChanged(int taskId, TaskSnapshot snapshot) {
65         return false;
66     }
67 
onBackPressedOnTaskRoot(RunningTaskInfo taskInfo)68     default void onBackPressedOnTaskRoot(RunningTaskInfo taskInfo) { }
69 
onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible, boolean clearedTask, boolean wasVisible)70     default void onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible,
71             boolean clearedTask, boolean wasVisible) { }
72 
onActivityPinned(String packageName, int userId, int taskId, int stackId)73     default void onActivityPinned(String packageName, int userId, int taskId, int stackId) { }
74 
onActivityUnpinned()75     default void onActivityUnpinned() { }
76 
onActivityForcedResizable(String packageName, int taskId, int reason)77     default void onActivityForcedResizable(String packageName, int taskId, int reason) { }
78 
onActivityDismissingDockedStack()79     default void onActivityDismissingDockedStack() { }
80 
onActivityLaunchOnSecondaryDisplayFailed()81     default void onActivityLaunchOnSecondaryDisplayFailed() { }
82 
onActivityLaunchOnSecondaryDisplayFailed(RunningTaskInfo taskInfo)83     default void onActivityLaunchOnSecondaryDisplayFailed(RunningTaskInfo taskInfo) {
84         onActivityLaunchOnSecondaryDisplayFailed();
85     }
86 
onActivityLaunchOnSecondaryDisplayRerouted()87     default void onActivityLaunchOnSecondaryDisplayRerouted() { }
88 
onActivityLaunchOnSecondaryDisplayRerouted(RunningTaskInfo taskInfo)89     default void onActivityLaunchOnSecondaryDisplayRerouted(RunningTaskInfo taskInfo) {
90         onActivityLaunchOnSecondaryDisplayRerouted();
91     }
92 
onActivityRequestedOrientationChanged(int taskId, int requestedOrientation)93     default void onActivityRequestedOrientationChanged(int taskId, int requestedOrientation) { }
94 
onActivityRotation(int displayId)95     default void onActivityRotation(int displayId) { }
96 }
97