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