1 /*
2  * Copyright (C) 2016 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 android.app;
18 
19 import android.app.ActivityManager.RunningTaskInfo;
20 import android.compat.annotation.UnsupportedAppUsage;
21 import android.content.ComponentName;
22 import android.os.Binder;
23 import android.os.Build;
24 import android.os.RemoteException;
25 import android.window.TaskSnapshot;
26 
27 /**
28  * Classes interested in observing only a subset of changes using ITaskStackListener can extend
29  * this class to avoid having to implement all the methods.
30  *
31  * @hide
32  */
33 public abstract class TaskStackListener extends ITaskStackListener.Stub {
34 
35     @UnsupportedAppUsage
TaskStackListener()36     public TaskStackListener() {
37     }
38 
39     @Override
40     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onTaskStackChanged()41     public void onTaskStackChanged() throws RemoteException {
42     }
43 
44     @Override
45     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onActivityPinned(String packageName, int userId, int taskId, int rootTaskId)46     public void onActivityPinned(String packageName, int userId, int taskId, int rootTaskId)
47             throws RemoteException {
48     }
49 
50     @Override
51     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onActivityUnpinned()52     public void onActivityUnpinned() throws RemoteException {
53     }
54 
55     @Override
56     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible, boolean clearedTask, boolean wasVisible)57     public void onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible,
58             boolean clearedTask, boolean wasVisible) throws RemoteException {
59     }
60 
61     @Override
62     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onActivityForcedResizable(String packageName, int taskId, int reason)63     public void onActivityForcedResizable(String packageName, int taskId, int reason)
64             throws RemoteException {
65     }
66 
67     @Override
68     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onActivityDismissingDockedTask()69     public void onActivityDismissingDockedTask() throws RemoteException {
70     }
71 
72     @Override
onActivityLaunchOnSecondaryDisplayFailed(RunningTaskInfo taskInfo, int requestedDisplayId)73     public void onActivityLaunchOnSecondaryDisplayFailed(RunningTaskInfo taskInfo,
74             int requestedDisplayId) throws RemoteException {
75         onActivityLaunchOnSecondaryDisplayFailed();
76     }
77 
78     /**
79      * @deprecated see {@link
80      *         #onActivityLaunchOnSecondaryDisplayFailed(RunningTaskInfo, int)}
81      */
82     @Deprecated
83     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onActivityLaunchOnSecondaryDisplayFailed()84     public void onActivityLaunchOnSecondaryDisplayFailed() throws RemoteException {
85     }
86 
87     @Override
88     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onActivityLaunchOnSecondaryDisplayRerouted(RunningTaskInfo taskInfo, int requestedDisplayId)89     public void onActivityLaunchOnSecondaryDisplayRerouted(RunningTaskInfo taskInfo,
90             int requestedDisplayId) throws RemoteException {
91     }
92 
93     @Override
onTaskCreated(int taskId, ComponentName componentName)94     public void onTaskCreated(int taskId, ComponentName componentName) throws RemoteException {
95     }
96 
97     @Override
98     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onTaskRemoved(int taskId)99     public void onTaskRemoved(int taskId) throws RemoteException {
100     }
101 
102     @Override
onTaskMovedToFront(RunningTaskInfo taskInfo)103     public void onTaskMovedToFront(RunningTaskInfo taskInfo)
104             throws RemoteException {
105         onTaskMovedToFront(taskInfo.taskId);
106     }
107 
108     /**
109      * @deprecated see {@link #onTaskMovedToFront(RunningTaskInfo)}
110      */
111     @Deprecated
112     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onTaskMovedToFront(int taskId)113     public void onTaskMovedToFront(int taskId) throws RemoteException {
114     }
115 
116     @Override
onTaskRemovalStarted(RunningTaskInfo taskInfo)117     public void onTaskRemovalStarted(RunningTaskInfo taskInfo)
118             throws RemoteException {
119         onTaskRemovalStarted(taskInfo.taskId);
120     }
121 
122     /**
123      * @deprecated see {@link #onTaskRemovalStarted(RunningTaskInfo)}
124      */
125     @Deprecated
onTaskRemovalStarted(int taskId)126     public void onTaskRemovalStarted(int taskId) throws RemoteException {
127     }
128 
129     @Override
onTaskDescriptionChanged(RunningTaskInfo taskInfo)130     public void onTaskDescriptionChanged(RunningTaskInfo taskInfo)
131             throws RemoteException {
132         onTaskDescriptionChanged(taskInfo.taskId, taskInfo.taskDescription);
133     }
134 
135     /**
136      * @deprecated see {@link #onTaskDescriptionChanged(RunningTaskInfo)}
137      */
138     @Deprecated
onTaskDescriptionChanged(int taskId, ActivityManager.TaskDescription td)139     public void onTaskDescriptionChanged(int taskId, ActivityManager.TaskDescription td)
140             throws RemoteException {
141     }
142 
143     @Override
144     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onActivityRequestedOrientationChanged(int taskId, int requestedOrientation)145     public void onActivityRequestedOrientationChanged(int taskId, int requestedOrientation)
146             throws RemoteException {
147     }
148 
149     @Override
150     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onTaskProfileLocked(int taskId, int userId)151     public void onTaskProfileLocked(int taskId, int userId) throws RemoteException {
152     }
153 
154     @Override
155     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
onTaskSnapshotChanged(int taskId, TaskSnapshot snapshot)156     public void onTaskSnapshotChanged(int taskId, TaskSnapshot snapshot) throws RemoteException {
157         if (Binder.getCallingPid() != android.os.Process.myPid()
158                 && snapshot != null && snapshot.getHardwareBuffer() != null) {
159             // Preemptively clear any reference to the buffer
160             snapshot.getHardwareBuffer().close();
161         }
162     }
163 
164     @Override
onBackPressedOnTaskRoot(RunningTaskInfo taskInfo)165     public void onBackPressedOnTaskRoot(RunningTaskInfo taskInfo)
166             throws RemoteException {
167     }
168 
169     @Override
onTaskDisplayChanged(int taskId, int newDisplayId)170     public void onTaskDisplayChanged(int taskId, int newDisplayId) throws RemoteException {
171     }
172 
173     @Override
onRecentTaskListUpdated()174     public void onRecentTaskListUpdated() throws RemoteException {
175     }
176 
177     @Override
onRecentTaskListFrozenChanged(boolean frozen)178     public void onRecentTaskListFrozenChanged(boolean frozen) {
179     }
180 
181     @Override
onTaskFocusChanged(int taskId, boolean focused)182     public void onTaskFocusChanged(int taskId, boolean focused) {
183     }
184 
185     @Override
onTaskRequestedOrientationChanged(int taskId, int requestedOrientation)186     public void onTaskRequestedOrientationChanged(int taskId, int requestedOrientation) {
187     }
188 
189     @Override
onActivityRotation(int displayId)190     public void onActivityRotation(int displayId) {
191     }
192 
193     @Override
onTaskMovedToBack(RunningTaskInfo taskInfo)194     public void onTaskMovedToBack(RunningTaskInfo taskInfo) {
195     }
196 
197     @Override
onLockTaskModeChanged(int mode)198     public void onLockTaskModeChanged(int mode) {
199     }
200 }
201