IActivityManager.aidl revision 132dffbc83b2dd91218a8e82a4df9e4d2da128ac
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
17package android.app;
18
19import android.app.ActivityManager;
20import android.app.ApplicationErrorReport;
21import android.app.ContentProviderHolder;
22import android.app.IApplicationThread;
23import android.app.IActivityContainer;
24import android.app.IActivityContainerCallback;
25import android.app.IActivityController;
26import android.app.IAppTask;
27import android.app.IInstrumentationWatcher;
28import android.app.IProcessObserver;
29import android.app.IServiceConnection;
30import android.app.IStopUserCallback;
31import android.app.ITaskStackListener;
32import android.app.IUiAutomationConnection;
33import android.app.IUidObserver;
34import android.app.IUserSwitchObserver;
35import android.app.Notification;
36import android.app.PendingIntent;
37import android.app.PictureInPictureArgs;
38import android.app.ProfilerInfo;
39import android.app.WaitResult;
40import android.app.assist.AssistContent;
41import android.app.assist.AssistStructure;
42import android.content.ComponentName;
43import android.content.IIntentReceiver;
44import android.content.IIntentSender;
45import android.content.Intent;
46import android.content.IntentFilter;
47import android.content.IntentSender;
48import android.content.pm.ApplicationInfo;
49import android.content.pm.ConfigurationInfo;
50import android.content.pm.IPackageDataObserver;
51import android.content.pm.ParceledListSlice;
52import android.content.pm.ProviderInfo;
53import android.content.pm.UserInfo;
54import android.content.res.Configuration;
55import android.graphics.Bitmap;
56import android.graphics.GraphicBuffer;
57import android.graphics.Point;
58import android.graphics.Rect;
59import android.net.Uri;
60import android.os.Bundle;
61import android.os.Debug;
62import android.os.IBinder;
63import android.os.IProgressListener;
64import android.os.ParcelFileDescriptor;
65import android.os.PersistableBundle;
66import android.os.StrictMode;
67import android.service.voice.IVoiceInteractionSession;
68import com.android.internal.app.IVoiceInteractor;
69import com.android.internal.os.IResultReceiver;
70import com.android.internal.policy.IKeyguardDismissCallback;
71
72import java.util.List;
73
74/**
75 * System private API for talking with the activity manager service.  This
76 * provides calls from the application back to the activity manager.
77 *
78 * {@hide}
79 */
80interface IActivityManager {
81    // WARNING: when these transactions are updated, check if they are any callers on the native
82    // side. If so, make sure they are using the correct transaction ids and arguments.
83    // If a transaction which will also be used on the native side is being inserted, add it to
84    // below block of transactions.
85
86    // Since these transactions are also called from native code, these must be kept in sync with
87    // the ones in frameworks/native/include/binder/IActivityManager.h
88    // =============== Beginning of transactions used on native side as well ======================
89    ParcelFileDescriptor openContentUri(in String uriString);
90    // =============== End of transactions used on native side as well ============================
91
92    // Special low-level communication with activity manager.
93    void handleApplicationCrash(in IBinder app,
94            in ApplicationErrorReport.ParcelableCrashInfo crashInfo);
95    int startActivity(in IApplicationThread caller, in String callingPackage, in Intent intent,
96            in String resolvedType, in IBinder resultTo, in String resultWho, int requestCode,
97            int flags, in ProfilerInfo profilerInfo, in Bundle options);
98    void unhandledBack();
99
100    boolean finishActivity(in IBinder token, int code, in Intent data, int finishTask);
101    Intent registerReceiver(in IApplicationThread caller, in String callerPackage,
102            in IIntentReceiver receiver, in IntentFilter filter,
103            in String requiredPermission, int userId);
104    void unregisterReceiver(in IIntentReceiver receiver);
105    int broadcastIntent(in IApplicationThread caller, in Intent intent,
106            in String resolvedType, in IIntentReceiver resultTo, int resultCode,
107            in String resultData, in Bundle map, in String[] requiredPermissions,
108            int appOp, in Bundle options, boolean serialized, boolean sticky, int userId);
109    void unbroadcastIntent(in IApplicationThread caller, in Intent intent, int userId);
110    oneway void finishReceiver(in IBinder who, int resultCode, in String resultData, in Bundle map,
111            boolean abortBroadcast, int flags);
112    void attachApplication(in IApplicationThread app);
113    oneway void activityIdle(in IBinder token, in Configuration config,
114            in boolean stopProfiling);
115    void activityPaused(in IBinder token);
116    oneway void activityStopped(in IBinder token, in Bundle state,
117            in PersistableBundle persistentState, in CharSequence description);
118    String getCallingPackage(in IBinder token);
119    ComponentName getCallingActivity(in IBinder token);
120    List<ActivityManager.RunningTaskInfo> getTasks(int maxNum, int flags);
121    void moveTaskToFront(int task, int flags, in Bundle options);
122    void moveTaskBackwards(int task);
123    int getTaskForActivity(in IBinder token, in boolean onlyRoot);
124    ContentProviderHolder getContentProvider(in IApplicationThread caller,
125            in String name, int userId, boolean stable);
126    void publishContentProviders(in IApplicationThread caller,
127            in List<ContentProviderHolder> providers);
128    boolean refContentProvider(in IBinder connection, int stableDelta, int unstableDelta);
129    void finishSubActivity(in IBinder token, in String resultWho, int requestCode);
130    PendingIntent getRunningServiceControlPanel(in ComponentName service);
131    ComponentName startService(in IApplicationThread caller, in Intent service,
132            in String resolvedType, int id, in Notification notification,
133            in String callingPackage, int userId);
134    int stopService(in IApplicationThread caller, in Intent service,
135            in String resolvedType, int userId);
136    int bindService(in IApplicationThread caller, in IBinder token, in Intent service,
137            in String resolvedType, in IServiceConnection connection, int flags,
138            in String callingPackage, int userId);
139    boolean unbindService(in IServiceConnection connection);
140    void publishService(in IBinder token, in Intent intent, in IBinder service);
141    void activityResumed(in IBinder token);
142    void setDebugApp(in String packageName, boolean waitForDebugger, boolean persistent);
143    void setAlwaysFinish(boolean enabled);
144    boolean startInstrumentation(in ComponentName className, in String profileFile,
145            int flags, in Bundle arguments, in IInstrumentationWatcher watcher,
146            in IUiAutomationConnection connection, int userId,
147            in String abiOverride);
148    void finishInstrumentation(in IApplicationThread target, int resultCode,
149            in Bundle results);
150    /**
151     * @return A copy of global {@link Configuration}, contains general settings for the entire
152     *         system. Corresponds to the configuration of the default display.
153     * @throws RemoteException
154     */
155    Configuration getConfiguration();
156    /**
157     * Updates global configuration and applies changes to the entire system.
158     * @param values Update values for global configuration. If null is passed it will request the
159     *               Window Manager to compute new config for the default display.
160     * @throws RemoteException
161     * @return Returns true if the configuration was updated.
162     */
163    boolean updateConfiguration(in Configuration values);
164    boolean stopServiceToken(in ComponentName className, in IBinder token, int startId);
165    ComponentName getActivityClassForToken(in IBinder token);
166    String getPackageForToken(in IBinder token);
167    void setProcessLimit(int max);
168    int getProcessLimit();
169    int checkPermission(in String permission, int pid, int uid);
170    int checkUriPermission(in Uri uri, int pid, int uid, int mode, int userId,
171            in IBinder callerToken);
172    void grantUriPermission(in IApplicationThread caller, in String targetPkg, in Uri uri,
173            int mode, int userId);
174    void revokeUriPermission(in IApplicationThread caller, in Uri uri, int mode, int userId);
175    void setActivityController(in IActivityController watcher, boolean imAMonkey);
176    void showWaitingForDebugger(in IApplicationThread who, boolean waiting);
177    /*
178     * This will deliver the specified signal to all the persistent processes. Currently only
179     * SIGUSR1 is delivered. All others are ignored.
180     */
181    void signalPersistentProcesses(int signal);
182    ParceledListSlice getRecentTasks(int maxNum,
183            int flags, int userId);
184    oneway void serviceDoneExecuting(in IBinder token, int type, int startId, int res);
185    oneway void activityDestroyed(in IBinder token);
186    IIntentSender getIntentSender(int type, in String packageName, in IBinder token,
187            in String resultWho, int requestCode, in Intent[] intents, in String[] resolvedTypes,
188            int flags, in Bundle options, int userId);
189    void cancelIntentSender(in IIntentSender sender);
190    String getPackageForIntentSender(in IIntentSender sender);
191    void enterSafeMode();
192    boolean startNextMatchingActivity(in IBinder callingActivity,
193            in Intent intent, in Bundle options);
194    void noteWakeupAlarm(in IIntentSender sender, int sourceUid,
195            in String sourcePkg, in String tag);
196    void removeContentProvider(in IBinder connection, boolean stable);
197    void setRequestedOrientation(in IBinder token, int requestedOrientation);
198    int getRequestedOrientation(in IBinder token);
199    void unbindFinished(in IBinder token, in Intent service, boolean doRebind);
200    void setProcessForeground(in IBinder token, int pid, boolean isForeground);
201    void setServiceForeground(in ComponentName className, in IBinder token,
202            int id, in Notification notification, int flags);
203    boolean moveActivityTaskToBack(in IBinder token, boolean nonRoot);
204    void getMemoryInfo(out ActivityManager.MemoryInfo outInfo);
205    List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState();
206    boolean clearApplicationUserData(in String packageName,
207            in IPackageDataObserver observer, int userId);
208    void forceStopPackage(in String packageName, int userId);
209    boolean killPids(in int[] pids, in String reason, boolean secure);
210    List<ActivityManager.RunningServiceInfo> getServices(int maxNum, int flags);
211    ActivityManager.TaskThumbnail getTaskThumbnail(int taskId);
212    // Retrieve running application processes in the system
213    List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses();
214    // Get device configuration
215    ConfigurationInfo getDeviceConfigurationInfo();
216    IBinder peekService(in Intent service, in String resolvedType, in String callingPackage);
217    // Turn on/off profiling in a particular process.
218    boolean profileControl(in String process, int userId, boolean start,
219            in ProfilerInfo profilerInfo, int profileType);
220    boolean shutdown(int timeout);
221    void stopAppSwitches();
222    void resumeAppSwitches();
223    boolean bindBackupAgent(in String packageName, int backupRestoreMode, int userId);
224    void backupAgentCreated(in String packageName, in IBinder agent);
225    void unbindBackupAgent(in ApplicationInfo appInfo);
226    int getUidForIntentSender(in IIntentSender sender);
227    int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll,
228            boolean requireFull, in String name, in String callerPackage);
229    void addPackageDependency(in String packageName);
230    void killApplication(in String pkg, int appId, int userId, in String reason);
231    void closeSystemDialogs(in String reason);
232    Debug.MemoryInfo[] getProcessMemoryInfo(in int[] pids);
233    void killApplicationProcess(in String processName, int uid);
234    int startActivityIntentSender(in IApplicationThread caller,
235            in IntentSender intent, in Intent fillInIntent, in String resolvedType,
236            in IBinder resultTo, in String resultWho, int requestCode,
237            int flagsMask, int flagsValues, in Bundle options);
238    void overridePendingTransition(in IBinder token, in String packageName,
239            int enterAnim, int exitAnim);
240    // Special low-level communication with activity manager.
241    boolean handleApplicationWtf(in IBinder app, in String tag, boolean system,
242            in ApplicationErrorReport.ParcelableCrashInfo crashInfo);
243    void killBackgroundProcesses(in String packageName, int userId);
244    boolean isUserAMonkey();
245    WaitResult startActivityAndWait(in IApplicationThread caller, in String callingPackage,
246            in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho,
247            int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options,
248            int userId);
249    boolean willActivityBeVisible(in IBinder token);
250    int startActivityWithConfig(in IApplicationThread caller, in String callingPackage,
251            in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho,
252            int requestCode, int startFlags, in Configuration newConfig,
253            in Bundle options, int userId);
254    // Retrieve info of applications installed on external media that are currently
255    // running.
256    List<ApplicationInfo> getRunningExternalApplications();
257    void finishHeavyWeightApp();
258    // A StrictMode violation to be handled.  The violationMask is a
259    // subset of the original StrictMode policy bitmask, with only the
260    // bit violated and penalty bits to be executed by the
261    // ActivityManagerService remaining set.
262    void handleApplicationStrictModeViolation(in IBinder app, int violationMask,
263            in StrictMode.ViolationInfo crashInfo);
264    boolean isImmersive(in IBinder token);
265    void setImmersive(in IBinder token, boolean immersive);
266    boolean isTopActivityImmersive();
267    void crashApplication(int uid, int initialPid, in String packageName, int userId, in String message);
268    String getProviderMimeType(in Uri uri, int userId);
269    IBinder newUriPermissionOwner(in String name);
270    void grantUriPermissionFromOwner(in IBinder owner, int fromUid, in String targetPkg,
271            in Uri uri, int mode, int sourceUserId, int targetUserId);
272    void revokeUriPermissionFromOwner(in IBinder owner, in Uri uri, int mode, int userId);
273    int checkGrantUriPermission(int callingUid, in String targetPkg, in Uri uri,
274            int modeFlags, int userId);
275    // Cause the specified process to dump the specified heap.
276    boolean dumpHeap(in String process, int userId, boolean managed, in String path,
277            in ParcelFileDescriptor fd);
278    int startActivities(in IApplicationThread caller, in String callingPackage,
279            in Intent[] intents, in String[] resolvedTypes, in IBinder resultTo,
280            in Bundle options, int userId);
281    boolean isUserRunning(int userid, int flags);
282    oneway void activitySlept(in IBinder token);
283    int getFrontActivityScreenCompatMode();
284    void setFrontActivityScreenCompatMode(int mode);
285    int getPackageScreenCompatMode(in String packageName);
286    void setPackageScreenCompatMode(in String packageName, int mode);
287    boolean getPackageAskScreenCompat(in String packageName);
288    void setPackageAskScreenCompat(in String packageName, boolean ask);
289    boolean switchUser(int userid);
290    void setFocusedTask(int taskId);
291    boolean removeTask(int taskId);
292    void registerProcessObserver(in IProcessObserver observer);
293    void unregisterProcessObserver(in IProcessObserver observer);
294    boolean isIntentSenderTargetedToPackage(in IIntentSender sender);
295    void updatePersistentConfiguration(in Configuration values);
296    long[] getProcessPss(in int[] pids);
297    void showBootMessage(in CharSequence msg, boolean always);
298    void killAllBackgroundProcesses();
299    ContentProviderHolder getContentProviderExternal(in String name, int userId,
300            in IBinder token);
301    void removeContentProviderExternal(in String name, in IBinder token);
302    // Get memory information about the calling process.
303    void getMyMemoryState(out ActivityManager.RunningAppProcessInfo outInfo);
304    boolean killProcessesBelowForeground(in String reason);
305    UserInfo getCurrentUser();
306    boolean shouldUpRecreateTask(in IBinder token, in String destAffinity);
307    boolean navigateUpTo(in IBinder token, in Intent target, int resultCode,
308            in Intent resultData);
309    void setLockScreenShown(boolean showing);
310    boolean finishActivityAffinity(in IBinder token);
311    // This is not public because you need to be very careful in how you
312    // manage your activity to make sure it is always the uid you expect.
313    int getLaunchedFromUid(in IBinder activityToken);
314    void unstableProviderDied(in IBinder connection);
315    boolean isIntentSenderAnActivity(in IIntentSender sender);
316    int startActivityAsUser(in IApplicationThread caller, in String callingPackage,
317            in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho,
318            int requestCode, int flags, in ProfilerInfo profilerInfo,
319            in Bundle options, int userId);
320    int stopUser(int userid, boolean force, in IStopUserCallback callback);
321    void registerUserSwitchObserver(in IUserSwitchObserver observer, in String name);
322    void unregisterUserSwitchObserver(in IUserSwitchObserver observer);
323    int[] getRunningUserIds();
324
325    // Deprecated - This method is only used by a few internal components and it will soon be
326    // replaced by a proper bug report API (which will be restricted to a few, pre-defined apps).
327    // No new code should be calling it.
328    void requestBugReport(int bugreportType);
329
330    long inputDispatchingTimedOut(int pid, boolean aboveSystem, in String reason);
331    void clearPendingBackup();
332    Intent getIntentForIntentSender(in IIntentSender sender);
333    Bundle getAssistContextExtras(int requestType);
334    void reportAssistContextExtras(in IBinder token, in Bundle extras,
335            in AssistStructure structure, in AssistContent content, in Uri referrer);
336    // This is not public because you need to be very careful in how you
337    // manage your activity to make sure it is always the uid you expect.
338    String getLaunchedFromPackage(in IBinder activityToken);
339    void killUid(int appId, int userId, in String reason);
340    void setUserIsMonkey(boolean monkey);
341    void hang(in IBinder who, boolean allowRestart);
342    IActivityContainer createVirtualActivityContainer(in IBinder parentActivityToken,
343            in IActivityContainerCallback callback);
344    void moveTaskToStack(int taskId, int stackId, boolean toTop);
345    /**
346     * Resizes the input stack id to the given bounds.
347     *
348     * @param stackId Id of the stack to resize.
349     * @param bounds Bounds to resize the stack to or {@code null} for fullscreen.
350     * @param allowResizeInDockedMode True if the resize should be allowed when the docked stack is
351     *                                active.
352     * @param preserveWindows True if the windows of activities contained in the stack should be
353     *                        preserved.
354     * @param animate True if the stack resize should be animated.
355     * @param animationDuration The duration of the resize animation in milliseconds or -1 if the
356     *                          default animation duration should be used.
357     * @throws RemoteException
358     */
359    void resizeStack(int stackId, in Rect bounds, boolean allowResizeInDockedMode,
360            boolean preserveWindows, boolean animate, int animationDuration);
361    List<ActivityManager.StackInfo> getAllStackInfos();
362    void setFocusedStack(int stackId);
363    ActivityManager.StackInfo getStackInfo(int stackId);
364    boolean convertFromTranslucent(in IBinder token);
365    boolean convertToTranslucent(in IBinder token, in Bundle options);
366    void notifyActivityDrawn(in IBinder token);
367    void reportActivityFullyDrawn(in IBinder token);
368    void restart();
369    void performIdleMaintenance();
370    void takePersistableUriPermission(in Uri uri, int modeFlags, int userId);
371    void releasePersistableUriPermission(in Uri uri, int modeFlags, int userId);
372    ParceledListSlice getPersistedUriPermissions(in String packageName, boolean incoming);
373    void appNotRespondingViaProvider(in IBinder connection);
374    Rect getTaskBounds(int taskId);
375    int getActivityDisplayId(in IBinder activityToken);
376    boolean setProcessMemoryTrimLevel(in String process, int uid, int level);
377
378
379    // Start of L transactions
380    String getTagForIntentSender(in IIntentSender sender, in String prefix);
381    boolean startUserInBackground(int userid);
382    void startLockTaskModeById(int taskId);
383    void startLockTaskModeByToken(in IBinder token);
384    void stopLockTaskMode();
385    boolean isInLockTaskMode();
386    void setTaskDescription(in IBinder token, in ActivityManager.TaskDescription values);
387    int startVoiceActivity(in String callingPackage, int callingPid, int callingUid,
388            in Intent intent, in String resolvedType, in IVoiceInteractionSession session,
389            in IVoiceInteractor interactor, int flags, in ProfilerInfo profilerInfo,
390            in Bundle options, int userId);
391    Bundle getActivityOptions(in IBinder token);
392    List<IBinder> getAppTasks(in String callingPackage);
393    void startSystemLockTaskMode(int taskId);
394    void stopSystemLockTaskMode();
395    void finishVoiceTask(in IVoiceInteractionSession session);
396    boolean isTopOfTask(in IBinder token);
397    boolean requestVisibleBehind(in IBinder token, boolean visible);
398    boolean isBackgroundVisibleBehind(in IBinder token);
399    void backgroundResourcesReleased(in IBinder token);
400    void notifyLaunchTaskBehindComplete(in IBinder token);
401    int startActivityFromRecents(int taskId, in Bundle options);
402    void notifyEnterAnimationComplete(in IBinder token);
403    int startActivityAsCaller(in IApplicationThread caller, in String callingPackage,
404            in Intent intent, in String resolvedType, in IBinder resultTo, in String resultWho,
405            int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options,
406            boolean ignoreTargetSecurity, int userId);
407    int addAppTask(in IBinder activityToken, in Intent intent,
408            in ActivityManager.TaskDescription description, in Bitmap thumbnail);
409    Point getAppTaskThumbnailSize();
410    boolean releaseActivityInstance(in IBinder token);
411    void releaseSomeActivities(in IApplicationThread app);
412    void bootAnimationComplete();
413    Bitmap getTaskDescriptionIcon(in String filename, int userId);
414    boolean launchAssistIntent(in Intent intent, int requestType, in String hint, int userHandle,
415            in Bundle args);
416    void startInPlaceAnimationOnFrontMostApplication(in Bundle opts);
417    int checkPermissionWithToken(in String permission, int pid, int uid,
418            in IBinder callerToken);
419    void registerTaskStackListener(in ITaskStackListener listener);
420
421
422    // Start of M transactions
423    void notifyCleartextNetwork(int uid, in byte[] firstPacket);
424    IActivityContainer createStackOnDisplay(int displayId);
425    int getFocusedStackId();
426    void setTaskResizeable(int taskId, int resizeableMode);
427    boolean requestAssistContextExtras(int requestType, in IResultReceiver receiver,
428            in Bundle receiverExtras, in IBinder activityToken,
429            boolean focused, boolean newSessionId);
430    void resizeTask(int taskId, in Rect bounds, int resizeMode);
431    int getLockTaskModeState();
432    void setDumpHeapDebugLimit(in String processName, int uid, long maxMemSize,
433            in String reportPackage);
434    void dumpHeapFinished(in String path);
435    void setVoiceKeepAwake(in IVoiceInteractionSession session, boolean keepAwake);
436    void updateLockTaskPackages(int userId, in String[] packages);
437    void noteAlarmStart(in IIntentSender sender, int sourceUid, in String tag);
438    void noteAlarmFinish(in IIntentSender sender, int sourceUid, in String tag);
439    int getPackageProcessState(in String packageName, in String callingPackage);
440    oneway void showLockTaskEscapeMessage(in IBinder token);
441    void updateDeviceOwner(in String packageName);
442    /**
443     * Notify the system that the keyguard is going away.
444     *
445     * @param flags See {@link android.view.WindowManagerPolicy#KEYGUARD_GOING_AWAY_FLAG_TO_SHADE}
446     *              etc.
447     */
448    void keyguardGoingAway(int flags);
449    void registerUidObserver(in IUidObserver observer, int which, int cutpoint,
450            String callingPackage);
451    void unregisterUidObserver(in IUidObserver observer);
452    boolean isAssistDataAllowedOnCurrentActivity();
453    boolean showAssistFromActivity(in IBinder token, in Bundle args);
454    boolean isRootVoiceInteraction(in IBinder token);
455
456
457    // Start of N transactions
458    // Start Binder transaction tracking for all applications.
459    boolean startBinderTracking();
460    // Stop Binder transaction tracking for all applications and dump trace data to the given file
461    // descriptor.
462    boolean stopBinderTrackingAndDump(in ParcelFileDescriptor fd);
463    /**
464     * Try to place task to provided position. The final position might be different depending on
465     * current user and stacks state. The task will be moved to target stack if it's currently in
466     * different stack.
467     */
468    void positionTaskInStack(int taskId, int stackId, int position);
469    int getActivityStackId(in IBinder token);
470    void exitFreeformMode(in IBinder token);
471    void reportSizeConfigurations(in IBinder token, in int[] horizontalSizeConfiguration,
472            in int[] verticalSizeConfigurations, in int[] smallestWidthConfigurations);
473    boolean moveTaskToDockedStack(int taskId, int createMode, boolean toTop, boolean animate,
474            in Rect initialBounds, boolean moveHomeStackFront);
475    void suppressResizeConfigChanges(boolean suppress);
476    void moveTasksToFullscreenStack(int fromStackId, boolean onTop);
477    boolean moveTopActivityToPinnedStack(int stackId, in Rect bounds);
478    boolean isAppStartModeDisabled(int uid, in String packageName);
479    boolean unlockUser(int userid, in byte[] token, in byte[] secret,
480            in IProgressListener listener);
481    boolean isInMultiWindowMode(in IBinder token);
482    boolean isInPictureInPictureMode(in IBinder token);
483    void killPackageDependents(in String packageName, int userId);
484    boolean enterPictureInPictureMode(in IBinder token, in PictureInPictureArgs args);
485    void setPictureInPictureArgs(in IBinder token, in PictureInPictureArgs args);
486    void activityRelaunched(in IBinder token);
487    IBinder getUriPermissionOwnerForActivity(in IBinder activityToken);
488    /**
489     * Resizes the docked stack, and all other stacks as the result of the dock stack bounds change.
490     *
491     * @param dockedBounds The bounds for the docked stack.
492     * @param tempDockedTaskBounds The temporary bounds for the tasks in the docked stack, which
493     *                             might be different from the stack bounds to allow more
494     *                             flexibility while resizing, or {@code null} if they should be the
495     *                             same as the stack bounds.
496     * @param tempDockedTaskInsetBounds The temporary bounds for the tasks to calculate the insets.
497     *                                  When resizing, we usually "freeze" the layout of a task. To
498     *                                  achieve that, we also need to "freeze" the insets, which
499     *                                  gets achieved by changing task bounds but not bounds used
500     *                                  to calculate the insets in this transient state
501     * @param tempOtherTaskBounds The temporary bounds for the tasks in all other stacks, or
502     *                            {@code null} if they should be the same as the stack bounds.
503     * @param tempOtherTaskInsetBounds Like {@code tempDockedTaskInsetBounds}, but for the other
504     *                                 stacks.
505     * @throws RemoteException
506     */
507    void resizeDockedStack(in Rect dockedBounds, in Rect tempDockedTaskBounds,
508            in Rect tempDockedTaskInsetBounds,
509            in Rect tempOtherTaskBounds, in Rect tempOtherTaskInsetBounds);
510    int setVrMode(in IBinder token, boolean enabled, in ComponentName packageName);
511    // Gets the URI permissions granted to an arbitrary package.
512    // NOTE: this is different from getPersistedUriPermissions(), which returns the URIs the package
513    // granted to another packages (instead of those granted to it).
514    ParceledListSlice getGrantedUriPermissions(in String packageName, int userId);
515    // Clears the URI permissions granted to an arbitrary package.
516    void clearGrantedUriPermissions(in String packageName, int userId);
517    boolean isAppForeground(int uid);
518    void startLocalVoiceInteraction(in IBinder token, in Bundle options);
519    void stopLocalVoiceInteraction(in IBinder token);
520    boolean supportsLocalVoiceInteraction();
521    void notifyPinnedStackAnimationEnded();
522    void removeStack(int stackId);
523    void makePackageIdle(String packageName, int userId);
524    int getMemoryTrimLevel();
525    /**
526     * Resizes the pinned stack.
527     *
528     * @param pinnedBounds The bounds for the pinned stack.
529     * @param tempPinnedTaskBounds The temporary bounds for the tasks in the pinned stack, which
530     *                             might be different from the stack bounds to allow more
531     *                             flexibility while resizing, or {@code null} if they should be the
532     *                             same as the stack bounds.
533     */
534    void resizePinnedStack(in Rect pinnedBounds, in Rect tempPinnedTaskBounds);
535    boolean isVrModePackageEnabled(in ComponentName packageName);
536    /**
537     * Moves all tasks from the docked stack in the fullscreen stack and puts the top task of the
538     * fullscreen stack into the docked stack.
539     */
540    void swapDockedAndFullscreenStack();
541    void notifyLockedProfile(int userId);
542    void startConfirmDeviceCredentialIntent(in Intent intent, in Bundle options);
543    void sendIdleJobTrigger();
544    int sendIntentSender(in IIntentSender target, int code, in Intent intent,
545            in String resolvedType, in IIntentReceiver finishedReceiver,
546            in String requiredPermission, in Bundle options);
547
548
549    // Start of N MR1 transactions
550    void setVrThread(int tid);
551    void setRenderThread(int tid);
552    /**
553     * Lets activity manager know whether the calling process is currently showing "top-level" UI
554     * that is not an activity, i.e. windows on the screen the user is currently interacting with.
555     *
556     * <p>This flag can only be set for persistent processes.
557     *
558     * @param hasTopUi Whether the calling process has "top-level" UI.
559     */
560    void setHasTopUi(boolean hasTopUi);
561    /**
562     * Returns if the target of the PendingIntent can be fired directly, without triggering
563     * a work profile challenge. This can happen if the PendingIntent is to start direct-boot
564     * aware activities, and the target user is in RUNNING_LOCKED state, i.e. we should allow
565     * direct-boot aware activity to bypass work challenge when the user hasn't unlocked yet.
566     * @param intent the {@link  PendingIntent} to be tested.
567     * @return {@code true} if the intent should not trigger a work challenge, {@code false}
568     *     otherwise.
569     * @throws RemoteException
570     */
571    boolean canBypassWorkChallenge(in PendingIntent intent);
572
573    // Start of O transactions
574    void requestActivityRelaunch(in IBinder token);
575    /**
576     * Updates override configuration applied to specific display.
577     * @param values Update values for display configuration. If null is passed it will request the
578     *               Window Manager to compute new config for the specified display.
579     * @param displayId Id of the display to apply the config to.
580     * @throws RemoteException
581     * @return Returns true if the configuration was updated.
582     */
583    boolean updateDisplayOverrideConfiguration(in Configuration values, int displayId);
584    void unregisterTaskStackListener(ITaskStackListener listener);
585    void moveStackToDisplay(int stackId, int displayId);
586    boolean requestAutoFillData(in IResultReceiver receiver, in Bundle receiverExtras,
587            int resultCode, in IBinder activityToken, int flags);
588    void dismissKeyguard(in IBinder token, in IKeyguardDismissCallback callback);
589    int restartUserInBackground(int userId);
590
591    /** Cancels the window transitions for the given task. */
592    void cancelTaskWindowTransition(int taskId);
593
594    /** Cancels the thumbnail transitions for the given task. */
595    void cancelTaskThumbnailTransition(int taskId);
596
597    /**
598     * @return a graphic buffer representing a screenshot of a task
599     */
600    ActivityManager.TaskSnapshot getTaskSnapshot(int taskId);
601
602    void scheduleApplicationInfoChanged(in List<String> packageNames, int userId);
603
604    // WARNING: when these transactions are updated, check if they are any callers on the native
605    // side. If so, make sure they are using the correct transaction ids and arguments.
606    // If a transaction which will also be used on the native side is being inserted, add it
607    // alongside with other transactions of this kind at the top of this file.
608}
609