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