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