ActivityManagerNative.java revision 648f69b95ce7fc95f551f6e08a2408d6e57dbab9
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.app;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautnerimport android.app.ActivityManager.StackInfo;
201b012d302b56b4adf950035136d1d191a1936d5aJeff Haoimport android.app.ProfilerInfo;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ComponentName;
22dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.content.IIntentReceiver;
23dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.content.IIntentSender;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.IntentFilter;
26fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackbornimport android.content.IntentSender;
27e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkeyimport android.content.UriPermission;
28181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tateimport android.content.pm.ApplicationInfo;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ConfigurationInfo;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageDataObserver;
31e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkeyimport android.content.pm.ParceledListSlice;
3252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasaniimport android.content.pm.UserInfo;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.Configuration;
34aec68bb89fe614181a20eb97340149406218ce2fDianne Hackbornimport android.graphics.Bitmap;
35aec68bb89fe614181a20eb97340149406218ce2fDianne Hackbornimport android.graphics.Point;
36bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautnerimport android.graphics.Rect;
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri;
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Binder;
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle;
403025ef332c29e255388f74b2afefe05f64bce07cDianne Hackbornimport android.os.Debug;
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder;
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel;
43dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.ParcelFileDescriptor;
44dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.Parcelable;
45a002604af0c9b1204556610537b85685d7055996Craig Mautnerimport android.os.PersistableBundle;
46dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.RemoteException;
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ServiceManager;
48cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrickimport android.os.StrictMode;
4991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackbornimport android.service.voice.IVoiceInteractionSession;
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.text.TextUtils;
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log;
52663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrickimport android.util.Singleton;
5391097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackbornimport com.android.internal.app.IVoiceInteractor;
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.ArrayList;
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.List;
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** {@hide} */
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic abstract class ActivityManagerNative extends Binder implements IActivityManager
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Cast a Binder object into an activity manager interface, generating
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a proxy if needed.
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
65663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    static public IActivityManager asInterface(IBinder obj) {
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (obj == null) {
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return null;
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        IActivityManager in =
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            (IActivityManager)obj.queryLocalInterface(descriptor);
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (in != null) {
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return in;
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
74663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return new ActivityManagerProxy(obj);
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
77663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieve the system's default/global activity manager.
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
81663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    static public IActivityManager getDefault() {
82663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick        return gDefault.get();
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Convenience for checking whether the system is ready.  For internal use only.
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static public boolean isSystemReady() {
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (!sSystemReady) {
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sSystemReady = getDefault().testIsSystemReady();
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return sSystemReady;
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static boolean sSystemReady = false;
95663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Convenience for sending a sticky broadcast.  For internal use only.
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If you don't care about permission, use null.
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1005ac72a29593ab9a20337a2225df52bdf4754be02Dianne Hackborn    static public void broadcastStickyIntent(Intent intent, String permission, int userId) {
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        try {
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getDefault().broadcastIntent(
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                null, intent, null, null, Activity.RESULT_OK, null, null,
104f51f61269aacdfcf737b2c32b6b216c48ab61e65Dianne Hackborn                null /*permission*/, AppOpsManager.OP_NONE, false, true, userId);
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } catch (RemoteException ex) {
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
109099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn    static public void noteWakeupAlarm(PendingIntent ps, int sourceUid, String sourcePkg) {
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        try {
111099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn            getDefault().noteWakeupAlarm(ps.getTarget(), sourceUid, sourcePkg);
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } catch (RemoteException ex) {
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
116663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    public ActivityManagerNative() {
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        attachInterface(this, descriptor);
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1194cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner
1204cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner    @Override
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean onTransact(int code, Parcel data, Parcel reply, int flags)
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        switch (code) {
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case START_ACTIVITY_TRANSACTION:
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
129f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            String callingPackage = data.readString();
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder resultTo = data.readStrongBinder();
13392a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy            String resultWho = data.readString();
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int requestCode = data.readInt();
135a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int startFlags = data.readInt();
1361b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            ProfilerInfo profilerInfo = data.readInt() != 0
1371b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    ? ProfilerInfo.CREATOR.createFromParcel(data) : null;
138a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
139a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
140f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            int result = startActivity(app, callingPackage, intent, resolvedType,
1411b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    resultTo, resultWho, requestCode, startFlags, profilerInfo, options);
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(result);
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
146bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn
1478264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        case START_ACTIVITY_AS_USER_TRANSACTION:
1488264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        {
1498264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            data.enforceInterface(IActivityManager.descriptor);
1508264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            IBinder b = data.readStrongBinder();
1518264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            IApplicationThread app = ApplicationThreadNative.asInterface(b);
152f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            String callingPackage = data.readString();
1538264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            Intent intent = Intent.CREATOR.createFromParcel(data);
1548264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            String resolvedType = data.readString();
1558264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            IBinder resultTo = data.readStrongBinder();
1568264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            String resultWho = data.readString();
1578264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int requestCode = data.readInt();
1588264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int startFlags = data.readInt();
1591b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            ProfilerInfo profilerInfo = data.readInt() != 0
1601b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    ? ProfilerInfo.CREATOR.createFromParcel(data) : null;
1618264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            Bundle options = data.readInt() != 0
1628264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani                    ? Bundle.CREATOR.createFromParcel(data) : null;
1638264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int userId = data.readInt();
164f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            int result = startActivityAsUser(app, callingPackage, intent, resolvedType,
1651b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    resultTo, resultWho, requestCode, startFlags, profilerInfo, options, userId);
1668264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            reply.writeNoException();
1678264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            reply.writeInt(result);
1688264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            return true;
1698264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        }
1708264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani
171028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        case START_ACTIVITY_AS_CALLER_TRANSACTION:
172028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        {
173028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
174028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            IBinder b = data.readStrongBinder();
175028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            IApplicationThread app = ApplicationThreadNative.asInterface(b);
176028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            String callingPackage = data.readString();
177028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            Intent intent = Intent.CREATOR.createFromParcel(data);
178028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            String resolvedType = data.readString();
179028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            IBinder resultTo = data.readStrongBinder();
180028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            String resultWho = data.readString();
181028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            int requestCode = data.readInt();
182028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            int startFlags = data.readInt();
1831b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            ProfilerInfo profilerInfo = data.readInt() != 0
1841b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    ? ProfilerInfo.CREATOR.createFromParcel(data) : null;
185028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            Bundle options = data.readInt() != 0
186028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
187028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            int result = startActivityAsCaller(app, callingPackage, intent, resolvedType,
1881b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    resultTo, resultWho, requestCode, startFlags, profilerInfo, options);
189028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            reply.writeNoException();
190028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            reply.writeInt(result);
191028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            return true;
192028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        }
193028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn
1948f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        case START_ACTIVITY_AND_WAIT_TRANSACTION:
1958f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        {
1968f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1978f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            IBinder b = data.readStrongBinder();
1988f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            IApplicationThread app = ApplicationThreadNative.asInterface(b);
199f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            String callingPackage = data.readString();
2008f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            Intent intent = Intent.CREATOR.createFromParcel(data);
2018f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            String resolvedType = data.readString();
2028f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            IBinder resultTo = data.readStrongBinder();
20392a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy            String resultWho = data.readString();
2048f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            int requestCode = data.readInt();
205a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int startFlags = data.readInt();
2061b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            ProfilerInfo profilerInfo = data.readInt() != 0
2071b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    ? ProfilerInfo.CREATOR.createFromParcel(data) : null;
208a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
209a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
2105e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int userId = data.readInt();
211f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            WaitResult result = startActivityAndWait(app, callingPackage, intent, resolvedType,
2121b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    resultTo, resultWho, requestCode, startFlags, profilerInfo, options, userId);
2138f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            reply.writeNoException();
2148f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            result.writeToParcel(reply, 0);
2158f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            return true;
2168f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        }
2178f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn
2182ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        case START_ACTIVITY_WITH_CONFIG_TRANSACTION:
2192ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        {
2202ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
2212ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            IBinder b = data.readStrongBinder();
2222ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            IApplicationThread app = ApplicationThreadNative.asInterface(b);
223f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            String callingPackage = data.readString();
2242ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            Intent intent = Intent.CREATOR.createFromParcel(data);
2252ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            String resolvedType = data.readString();
2262ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            IBinder resultTo = data.readStrongBinder();
2274cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner            String resultWho = data.readString();
2282ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            int requestCode = data.readInt();
229a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int startFlags = data.readInt();
2302ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            Configuration config = Configuration.CREATOR.createFromParcel(data);
231a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
232a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
2334120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int userId = data.readInt();
234f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            int result = startActivityWithConfig(app, callingPackage, intent, resolvedType,
2354120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                    resultTo, resultWho, requestCode, startFlags, config, options, userId);
2362ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            reply.writeNoException();
2372ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            reply.writeInt(result);
2382ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            return true;
2392ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        }
2402ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn
241fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn        case START_ACTIVITY_INTENT_SENDER_TRANSACTION:
242bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        {
243bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
244bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            IBinder b = data.readStrongBinder();
245bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            IApplicationThread app = ApplicationThreadNative.asInterface(b);
246fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn            IntentSender intent = IntentSender.CREATOR.createFromParcel(data);
247bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            Intent fillInIntent = null;
248bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            if (data.readInt() != 0) {
249bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn                fillInIntent = Intent.CREATOR.createFromParcel(data);
250bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            }
251bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            String resolvedType = data.readString();
252bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            IBinder resultTo = data.readStrongBinder();
2534cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner            String resultWho = data.readString();
254bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            int requestCode = data.readInt();
255bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            int flagsMask = data.readInt();
256bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            int flagsValues = data.readInt();
257a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
258a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
259fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn            int result = startActivityIntentSender(app, intent,
260bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn                    fillInIntent, resolvedType, resultTo, resultWho,
261a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    requestCode, flagsMask, flagsValues, options);
262bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            reply.writeNoException();
263bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            reply.writeInt(result);
264bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            return true;
265bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        }
2664cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner
26791097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        case START_VOICE_ACTIVITY_TRANSACTION:
26891097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        {
26991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
27091097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            String callingPackage = data.readString();
27191097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            int callingPid = data.readInt();
27291097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            int callingUid = data.readInt();
27391097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            Intent intent = Intent.CREATOR.createFromParcel(data);
27491097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            String resolvedType = data.readString();
27591097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            IVoiceInteractionSession session = IVoiceInteractionSession.Stub.asInterface(
27691097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn                    data.readStrongBinder());
27791097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            IVoiceInteractor interactor = IVoiceInteractor.Stub.asInterface(
27891097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn                    data.readStrongBinder());
27991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            int startFlags = data.readInt();
2801b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            ProfilerInfo profilerInfo = data.readInt() != 0
2811b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    ? ProfilerInfo.CREATOR.createFromParcel(data) : null;
28291097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            Bundle options = data.readInt() != 0
28391097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
28491097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            int userId = data.readInt();
2851b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            int result = startVoiceActivity(callingPackage, callingPid, callingUid, intent,
2861b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    resolvedType, session, interactor, startFlags, profilerInfo, options, userId);
28791097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            reply.writeNoException();
28891097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            reply.writeInt(result);
28991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            return true;
29091097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        }
29191097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case START_NEXT_MATCHING_ACTIVITY_TRANSACTION:
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder callingActivity = data.readStrongBinder();
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
297a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
298a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
299a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            boolean result = startNextMatchingActivity(callingActivity, intent, options);
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(result ? 1 : 0);
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
304ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn
305dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        case START_ACTIVITY_FROM_RECENTS_TRANSACTION:
306dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        {
307dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
308dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner            int taskId = data.readInt();
309dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner            Bundle options = data.readInt() == 0 ? null : Bundle.CREATOR.createFromParcel(data);
310dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner            int result = startActivityFromRecents(taskId, options);
311dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner            reply.writeNoException();
312dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner            reply.writeInt(result);
313dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner            return true;
314dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        }
315dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case FINISH_ACTIVITY_TRANSACTION: {
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent resultData = null;
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode = data.readInt();
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (data.readInt() != 0) {
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                resultData = Intent.CREATOR.createFromParcel(data);
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3243b3f464445d1d369c8e87f526deba606ca62f76cWinson Chung            boolean finishTask = (data.readInt() != 0);
3253b3f464445d1d369c8e87f526deba606ca62f76cWinson Chung            boolean res = finishActivity(token, resultCode, resultData, finishTask);
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case FINISH_SUB_ACTIVITY_TRANSACTION: {
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
3344cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner            String resultWho = data.readString();
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int requestCode = data.readInt();
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            finishSubActivity(token, resultWho, requestCode);
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
341ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        case FINISH_ACTIVITY_AFFINITY_TRANSACTION: {
342ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
343ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            IBinder token = data.readStrongBinder();
344ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            boolean res = finishActivityAffinity(token);
345ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            reply.writeNoException();
346ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            reply.writeInt(res ? 1 : 0);
347ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            return true;
348ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        }
349ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn
3506ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn        case FINISH_VOICE_TASK_TRANSACTION: {
3516ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
3526ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn            IVoiceInteractionSession session = IVoiceInteractionSession.Stub.asInterface(
3536ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn                    data.readStrongBinder());
3546ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn            finishVoiceTask(session);
3556ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn            reply.writeNoException();
3566ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn            return true;
3576ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn        }
3586ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn
35989ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        case RELEASE_ACTIVITY_INSTANCE_TRANSACTION: {
36089ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
36189ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            IBinder token = data.readStrongBinder();
36289ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            boolean res = releaseActivityInstance(token);
36389ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            reply.writeNoException();
36489ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            reply.writeInt(res ? 1 : 0);
36589ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            return true;
36689ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        }
36789ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn
36889ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        case RELEASE_SOME_ACTIVITIES_TRANSACTION: {
36989ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
37089ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            IApplicationThread app = ApplicationThreadNative.asInterface(data.readStrongBinder());
37189ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            releaseSomeActivities(app);
37289ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            reply.writeNoException();
37389ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn            return true;
37489ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        }
37589ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn
376061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        case WILL_ACTIVITY_BE_VISIBLE_TRANSACTION: {
377061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
378061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            IBinder token = data.readStrongBinder();
379061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            boolean res = willActivityBeVisible(token);
380061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            reply.writeNoException();
381061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            reply.writeInt(res ? 1 : 0);
382061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            return true;
383061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        }
384061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case REGISTER_RECEIVER_TRANSACTION:
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app =
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                b != null ? ApplicationThreadNative.asInterface(b) : null;
3916c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            String packageName = data.readString();
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            b = data.readStrongBinder();
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentReceiver rec
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                = b != null ? IIntentReceiver.Stub.asInterface(b) : null;
3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IntentFilter filter = IntentFilter.CREATOR.createFromParcel(data);
3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String perm = data.readString();
39720e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            int userId = data.readInt();
39820e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            Intent intent = registerReceiver(app, packageName, rec, filter, perm, userId);
3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (intent != null) {
4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(1);
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                intent.writeToParcel(reply, 0);
4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } else {
4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(0);
4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UNREGISTER_RECEIVER_TRANSACTION:
4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (b == null) {
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return true;
4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentReceiver rec = IIntentReceiver.Stub.asInterface(b);
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            unregisterReceiver(rec);
4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case BROADCAST_INTENT_TRANSACTION:
4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app =
4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                b != null ? ApplicationThreadNative.asInterface(b) : null;
4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            b = data.readStrongBinder();
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentReceiver resultTo =
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                b != null ? IIntentReceiver.Stub.asInterface(b) : null;
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode = data.readInt();
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resultData = data.readString();
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle resultExtras = data.readBundle();
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String perm = data.readString();
437f51f61269aacdfcf737b2c32b6b216c48ab61e65Dianne Hackborn            int appOp = data.readInt();
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean serialized = data.readInt() != 0;
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean sticky = data.readInt() != 0;
440742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            int userId = data.readInt();
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int res = broadcastIntent(app, intent, resolvedType, resultTo,
442f51f61269aacdfcf737b2c32b6b216c48ab61e65Dianne Hackborn                    resultCode, resultData, resultExtras, perm, appOp,
443742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani                    serialized, sticky, userId);
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UNBROADCAST_INTENT_TRANSACTION:
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = b != null ? ApplicationThreadNative.asInterface(b) : null;
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
455742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            int userId = data.readInt();
456742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            unbroadcastIntent(app, intent, userId);
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case FINISH_RECEIVER_TRANSACTION: {
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder who = data.readStrongBinder();
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode = data.readInt();
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resultData = data.readString();
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle resultExtras = data.readBundle();
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean resultAbort = data.readInt() != 0;
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (who != null) {
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                finishReceiver(who, resultCode, resultData, resultExtras, resultAbort);
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ATTACH_APPLICATION_TRANSACTION: {
4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(
4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    data.readStrongBinder());
4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (app != null) {
4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                attachApplication(app);
4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ACTIVITY_IDLE_TRANSACTION: {
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
489e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            Configuration config = null;
490e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            if (data.readInt() != 0) {
491e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn                config = Configuration.CREATOR.createFromParcel(data);
492e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            }
49362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            boolean stopProfiling = data.readInt() != 0;
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (token != null) {
49562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn                activityIdle(token, config, stopProfiling);
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
501ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn        case ACTIVITY_RESUMED_TRANSACTION: {
502ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
503ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn            IBinder token = data.readStrongBinder();
504ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn            activityResumed(token);
505ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn            reply.writeNoException();
506ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn            return true;
507ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn        }
508ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ACTIVITY_PAUSED_TRANSACTION: {
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
512a4e102ee580282dc7abeb22f4a025813e53b9431Dianne Hackborn            activityPaused(token);
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ACTIVITY_STOPPED_TRANSACTION: {
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
5200aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn            Bundle map = data.readBundle();
521a002604af0c9b1204556610537b85685d7055996Craig Mautner            PersistableBundle persistentState = data.readPersistableBundle();
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            CharSequence description = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data);
523a002604af0c9b1204556610537b85685d7055996Craig Mautner            activityStopped(token, map, persistentState, description);
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5284eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        case ACTIVITY_SLEPT_TRANSACTION: {
5294eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
5304eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            IBinder token = data.readStrongBinder();
5314eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            activitySlept(token);
5324eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            reply.writeNoException();
5334eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            return true;
5344eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        }
5354eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ACTIVITY_DESTROYED_TRANSACTION: {
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            activityDestroyed(token);
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_CALLING_PACKAGE_TRANSACTION: {
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String res = token != null ? getCallingPackage(token) : null;
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeString(res);
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_CALLING_ACTIVITY_TRANSACTION: {
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName cn = getCallingActivity(token);
5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName.writeToParcel(cn, reply);
5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5621147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        case GET_APP_TASKS_TRANSACTION: {
5631147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            data.enforceInterface(IActivityManager.descriptor);
564885fbe5c070cf1579c96ab8e150449af00e16501Dianne Hackborn            String callingPackage = data.readString();
565885fbe5c070cf1579c96ab8e150449af00e16501Dianne Hackborn            List<IAppTask> list = getAppTasks(callingPackage);
5661147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            reply.writeNoException();
5671147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            int N = list != null ? list.size() : -1;
5681147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            reply.writeInt(N);
5691147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            int i;
5701147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            for (i=0; i<N; i++) {
5711147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung                IAppTask task = list.get(i);
5721147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung                reply.writeStrongBinder(task.asBinder());
5731147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            }
5741147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            return true;
5751147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        }
5761147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung
577aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        case ADD_APP_TASK_TRANSACTION: {
578aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
579aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            IBinder activityToken = data.readStrongBinder();
580aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            Intent intent = Intent.CREATOR.createFromParcel(data);
581aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            ActivityManager.TaskDescription descr
582aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn                    = ActivityManager.TaskDescription.CREATOR.createFromParcel(data);
583aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            Bitmap thumbnail = Bitmap.CREATOR.createFromParcel(data);
584aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            int res = addAppTask(activityToken, intent, descr, thumbnail);
585aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            reply.writeNoException();
586aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            reply.writeInt(res);
587aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            return true;
588aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        }
589aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn
590aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        case GET_APP_TASK_THUMBNAIL_SIZE_TRANSACTION: {
591aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
592aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            Point size = getAppTaskThumbnailSize();
593aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            reply.writeNoException();
594aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            size.writeToParcel(reply, 0);
595aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            return true;
596aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        }
597aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_TASKS_TRANSACTION: {
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int maxNum = data.readInt();
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
60209233289624a85093b1d99e4a6a149bf09059d8dDianne Hackborn            List<ActivityManager.RunningTaskInfo> list = getTasks(maxNum, fl);
6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int N = list != null ? list.size() : -1;
6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(N);
6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int i;
6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (i=0; i<N; i++) {
6084cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner                ActivityManager.RunningTaskInfo info = list.get(i);
6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                info.writeToParcel(reply, 0);
6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_RECENT_TASKS_TRANSACTION: {
6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int maxNum = data.readInt();
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
6188264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int userId = data.readInt();
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ActivityManager.RecentTaskInfo> list = getRecentTasks(maxNum,
6208264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani                    fl, userId);
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeTypedList(list);
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
62515491c6a728131e322c45bc440500a8a78e4a410Dianne Hackborn
626c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner        case GET_TASK_THUMBNAIL_TRANSACTION: {
627d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
628d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn            int id = data.readInt();
629c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner            ActivityManager.TaskThumbnail taskThumbnail = getTaskThumbnail(id);
630d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn            reply.writeNoException();
631c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner            if (taskThumbnail != null) {
632d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn                reply.writeInt(1);
633c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner                taskThumbnail.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
63415491c6a728131e322c45bc440500a8a78e4a410Dianne Hackborn            } else {
63515491c6a728131e322c45bc440500a8a78e4a410Dianne Hackborn                reply.writeInt(0);
63615491c6a728131e322c45bc440500a8a78e4a410Dianne Hackborn            }
63715491c6a728131e322c45bc440500a8a78e4a410Dianne Hackborn            return true;
63815491c6a728131e322c45bc440500a8a78e4a410Dianne Hackborn        }
63915491c6a728131e322c45bc440500a8a78e4a410Dianne Hackborn
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_SERVICES_TRANSACTION: {
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int maxNum = data.readInt();
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
6444cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner            List<ActivityManager.RunningServiceInfo> list = getServices(maxNum, fl);
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int N = list != null ? list.size() : -1;
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(N);
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int i;
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (i=0; i<N; i++) {
6504cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner                ActivityManager.RunningServiceInfo info = list.get(i);
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                info.writeToParcel(reply, 0);
6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_PROCESSES_IN_ERROR_STATE_TRANSACTION: {
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ActivityManager.ProcessErrorStateInfo> list = getProcessesInErrorState();
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeTypedList(list);
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6634cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_RUNNING_APP_PROCESSES_TRANSACTION: {
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ActivityManager.RunningAppProcessInfo> list = getRunningAppProcesses();
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeTypedList(list);
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
672f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        case GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION: {
673f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            data.enforceInterface(IActivityManager.descriptor);
674f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            List<ApplicationInfo> list = getRunningExternalApplications();
675f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            reply.writeNoException();
676f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            reply.writeTypedList(list);
677f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            return true;
678f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        }
679f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case MOVE_TASK_TO_FRONT_TRANSACTION: {
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int task = data.readInt();
683621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            int fl = data.readInt();
6848078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            Bundle options = data.readInt() != 0
6858078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
6868078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            moveTaskToFront(task, fl, options);
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case MOVE_TASK_TO_BACK_TRANSACTION: {
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int task = data.readInt();
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            moveTaskToBack(task);
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION: {
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean nonRoot = data.readInt() != 0;
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean res = moveActivityTaskToBack(token, nonRoot);
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case MOVE_TASK_BACKWARDS_TRANSACTION: {
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int task = data.readInt();
7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            moveTaskBackwards(task);
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
717c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        case MOVE_TASK_TO_STACK_TRANSACTION: {
718c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
719c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            int taskId = data.readInt();
720c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            int stackId = data.readInt();
721c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            boolean toTop = data.readInt() != 0;
722c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            moveTaskToStack(taskId, stackId, toTop);
723c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            reply.writeNoException();
724c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            return true;
725c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        }
726c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner
727c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        case RESIZE_STACK_TRANSACTION: {
728c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
729bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner            int stackId = data.readInt();
730c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            float weight = data.readFloat();
731bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner            Rect r = Rect.CREATOR.createFromParcel(data);
732bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner            resizeStack(stackId, r);
733c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            reply.writeNoException();
734c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner            return true;
735c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        }
736c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner
737bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner        case GET_ALL_STACK_INFOS_TRANSACTION: {
7385ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
739bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner            List<StackInfo> list = getAllStackInfos();
7405ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner            reply.writeNoException();
7415ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner            reply.writeTypedList(list);
7425ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner            return true;
7435ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner        }
7445ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner
745bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner        case GET_STACK_INFO_TRANSACTION: {
746fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
747bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner            int stackId = data.readInt();
748bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner            StackInfo info = getStackInfo(stackId);
749fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner            reply.writeNoException();
750fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner            if (info != null) {
751fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner                reply.writeInt(1);
752fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner                info.writeToParcel(reply, 0);
753fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner            } else {
754fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner                reply.writeInt(0);
755fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner            }
756fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner            return true;
757fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        }
758fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner
759303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        case IS_IN_HOME_STACK_TRANSACTION: {
760303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung            data.enforceInterface(IActivityManager.descriptor);
761303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung            int taskId = data.readInt();
762303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung            boolean isInHomeStack = isInHomeStack(taskId);
763303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung            reply.writeNoException();
764303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung            reply.writeInt(isInHomeStack ? 1 : 0);
765303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung            return true;
766303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        }
767303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung
768cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        case SET_FOCUSED_STACK_TRANSACTION: {
769cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
770cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner            int stackId = data.readInt();
771cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner            setFocusedStack(stackId);
772cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner            reply.writeNoException();
773cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner            return true;
774cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        }
775cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_TASK_FOR_ACTIVITY_TRANSACTION: {
7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean onlyRoot = data.readInt() != 0;
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int res = token != null
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ? getTaskForActivity(token, onlyRoot) : -1;
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeNoException();
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_CONTENT_PROVIDER_TRANSACTION: {
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String name = data.readString();
7926d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey            int userId = data.readInt();
7936ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            boolean stable = data.readInt() != 0;
7946d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey            ContentProviderHolder cph = getContentProvider(app, name, userId, stable);
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (cph != null) {
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(1);
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                cph.writeToParcel(reply, 0);
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } else {
8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(0);
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
80525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        case GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION: {
80625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            data.enforceInterface(IActivityManager.descriptor);
80725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            String name = data.readString();
8086d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey            int userId = data.readInt();
80925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            IBinder token = data.readStrongBinder();
8106d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey            ContentProviderHolder cph = getContentProviderExternal(name, userId, token);
81125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            reply.writeNoException();
81225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            if (cph != null) {
81325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov                reply.writeInt(1);
81425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov                cph.writeToParcel(reply, 0);
81525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            } else {
81625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov                reply.writeInt(0);
81725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            }
81825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            return true;
81925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        }
82025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case PUBLISH_CONTENT_PROVIDERS_TRANSACTION: {
8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ArrayList<ContentProviderHolder> providers =
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                data.createTypedArrayList(ContentProviderHolder.CREATOR);
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            publishContentProviders(app, providers);
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8326ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        case REF_CONTENT_PROVIDER_TRANSACTION: {
8336ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
8346ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            IBinder b = data.readStrongBinder();
8356ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            int stable = data.readInt();
8366ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            int unstable = data.readInt();
8376ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            boolean res = refContentProvider(b, stable, unstable);
8386ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            reply.writeNoException();
8396ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            reply.writeInt(res ? 1 : 0);
8406ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            return true;
8416ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        }
8426ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn
8436ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        case UNSTABLE_PROVIDER_DIED_TRANSACTION: {
8446ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
8456ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            IBinder b = data.readStrongBinder();
8466ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            unstableProviderDied(b);
8476ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            reply.writeNoException();
8486ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            return true;
8496ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        }
8506ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn
8517aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey        case APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION: {
8527aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey            data.enforceInterface(IActivityManager.descriptor);
8537aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey            IBinder b = data.readStrongBinder();
8547aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey            appNotRespondingViaProvider(b);
8557aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey            reply.writeNoException();
8567aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey            return true;
8577aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey        }
8587aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey
8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case REMOVE_CONTENT_PROVIDER_TRANSACTION: {
8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
8626ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            boolean stable = data.readInt() != 0;
8636ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            removeContentProvider(b, stable);
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
86725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov
86825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        case REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION: {
86925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            data.enforceInterface(IActivityManager.descriptor);
87025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            String name = data.readString();
87125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            IBinder token = data.readStrongBinder();
87225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            removeContentProviderExternal(name, token);
87325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            reply.writeNoException();
87425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            return true;
87525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        }
87625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov
877dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        case GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION: {
878dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
879dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            ComponentName comp = ComponentName.CREATOR.createFromParcel(data);
880dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            PendingIntent pi = getRunningServiceControlPanel(comp);
881dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            reply.writeNoException();
882dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            PendingIntent.writePendingIntentOrNullToParcel(pi, reply);
883dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            return true;
884dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        }
885dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn
8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case START_SERVICE_TRANSACTION: {
8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent service = Intent.CREATOR.createFromParcel(data);
8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
8927767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            int userId = data.readInt();
8937767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            ComponentName cn = startService(app, service, resolvedType, userId);
8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName.writeToParcel(cn, reply);
8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case STOP_SERVICE_TRANSACTION: {
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent service = Intent.CREATOR.createFromParcel(data);
9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
9057767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            int userId = data.readInt();
9067767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            int res = stopService(app, service, resolvedType, userId);
9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case STOP_SERVICE_TOKEN_TRANSACTION: {
9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName className = ComponentName.readFromParcel(data);
9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int startId = data.readInt();
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean res = stopServiceToken(className, token, startId);
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_SERVICE_FOREGROUND_TRANSACTION: {
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName className = ComponentName.readFromParcel(data);
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
927d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            int id = data.readInt();
928d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            Notification notification = null;
929d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            if (data.readInt() != 0) {
930d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn                notification = Notification.CREATOR.createFromParcel(data);
931d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            }
932d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            boolean removeNotification = data.readInt() != 0;
933d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            setServiceForeground(className, token, id, notification, removeNotification);
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case BIND_SERVICE_TRANSACTION: {
9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent service = Intent.CREATOR.createFromParcel(data);
9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            b = data.readStrongBinder();
9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
94737ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani            int userId = data.readInt();
9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IServiceConnection conn = IServiceConnection.Stub.asInterface(b);
94937ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani            int res = bindService(app, token, service, resolvedType, conn, fl, userId);
9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UNBIND_SERVICE_TRANSACTION: {
9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IServiceConnection conn = IServiceConnection.Stub.asInterface(b);
9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean res = unbindService(conn);
9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case PUBLISH_SERVICE_TRANSACTION: {
9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder service = data.readStrongBinder();
9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            publishService(token, intent, service);
9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UNBIND_FINISHED_TRANSACTION: {
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean doRebind = data.readInt() != 0;
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            unbindFinished(token, intent, doRebind);
9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SERVICE_DONE_EXECUTING_TRANSACTION: {
9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
988f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            int type = data.readInt();
989f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            int startId = data.readInt();
990f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            int res = data.readInt();
991f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            serviceDoneExecuting(token, type, startId, res);
9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case START_INSTRUMENTATION_TRANSACTION: {
9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName className = ComponentName.readFromParcel(data);
9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String profileFile = data.readString();
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle arguments = data.readBundle();
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IInstrumentationWatcher w = IInstrumentationWatcher.Stub.asInterface(b);
100480943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov            b = data.readStrongBinder();
100580943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov            IUiAutomationConnection c = IUiAutomationConnection.Stub.asInterface(b);
10065e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int userId = data.readInt();
10078dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath            String abiOverride = data.readString();
10088dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath            boolean res = startInstrumentation(className, profileFile, fl, arguments, w, c, userId,
10098dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath                    abiOverride);
10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case FINISH_INSTRUMENTATION_TRANSACTION: {
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode = data.readInt();
10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle results = data.readBundle();
10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            finishInstrumentation(app, resultCode, results);
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_CONFIGURATION_TRANSACTION: {
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Configuration config = getConfiguration();
10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            config.writeToParcel(reply, 0);
10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UPDATE_CONFIGURATION_TRANSACTION: {
10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Configuration config = Configuration.CREATOR.createFromParcel(data);
10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            updateConfiguration(config);
10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_REQUESTED_ORIENTATION_TRANSACTION: {
10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int requestedOrientation = data.readInt();
10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            setRequestedOrientation(token, requestedOrientation);
10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_REQUESTED_ORIENTATION_TRANSACTION: {
10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int req = getRequestedOrientation(token);
10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(req);
10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION: {
10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName cn = getActivityClassForToken(token);
10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName.writeToParcel(cn, reply);
10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_PACKAGE_FOR_TOKEN_TRANSACTION: {
10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeString(getPackageForToken(token));
10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_INTENT_SENDER_TRANSACTION: {
10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int type = data.readInt();
10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String packageName = data.readString();
10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resultWho = data.readString();
10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int requestCode = data.readInt();
1085621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            Intent[] requestIntents;
1086621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            String[] requestResolvedTypes;
1087621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            if (data.readInt() != 0) {
1088621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn                requestIntents = data.createTypedArray(Intent.CREATOR);
1089621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn                requestResolvedTypes = data.createStringArray();
1090621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            } else {
1091621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn                requestIntents = null;
1092621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn                requestResolvedTypes = null;
1093621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            }
10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
10957a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn            Bundle options = data.readInt() != 0
10967a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
10974120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int userId = data.readInt();
10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentSender res = getIntentSender(type, packageName, token,
1099621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn                    resultWho, requestCode, requestIntents,
11004120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                    requestResolvedTypes, fl, options, userId);
11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeStrongBinder(res != null ? res.asBinder() : null);
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case CANCEL_INTENT_SENDER_TRANSACTION: {
11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentSender r = IIntentSender.Stub.asInterface(
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                data.readStrongBinder());
11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            cancelIntentSender(r);
11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION: {
11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentSender r = IIntentSender.Stub.asInterface(
11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                data.readStrongBinder());
11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String res = getPackageForIntentSender(r);
11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeString(res);
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1125c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        case GET_UID_FOR_INTENT_SENDER_TRANSACTION: {
1126c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            data.enforceInterface(IActivityManager.descriptor);
1127c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            IIntentSender r = IIntentSender.Stub.asInterface(
1128c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate                data.readStrongBinder());
1129c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            int res = getUidForIntentSender(r);
1130c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            reply.writeNoException();
1131c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            reply.writeInt(res);
1132c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            return true;
1133c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        }
1134c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate
11354120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        case HANDLE_INCOMING_USER_TRANSACTION: {
11364120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
11374120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int callingPid = data.readInt();
11384120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int callingUid = data.readInt();
11394120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int userId = data.readInt();
11404120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            boolean allowAll = data.readInt() != 0 ;
11414120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            boolean requireFull = data.readInt() != 0;
11424120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            String name = data.readString();
11434120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            String callerPackage = data.readString();
11444120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int res = handleIncomingUser(callingPid, callingUid, userId, allowAll,
11454120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                    requireFull, name, callerPackage);
11464120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            reply.writeNoException();
11474120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            reply.writeInt(res);
11484120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            return true;
11494120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        }
11504120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn
11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_PROCESS_LIMIT_TRANSACTION: {
11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int max = data.readInt();
11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            setProcessLimit(max);
11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_PROCESS_LIMIT_TRANSACTION: {
11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int limit = getProcessLimit();
11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(limit);
11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_PROCESS_FOREGROUND_TRANSACTION: {
11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int pid = data.readInt();
11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean isForeground = data.readInt() != 0;
11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            setProcessForeground(token, pid, isForeground);
11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case CHECK_PERMISSION_TRANSACTION: {
11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String perm = data.readString();
11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int pid = data.readInt();
11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int uid = data.readInt();
11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int res = checkPermission(perm, pid, uid);
11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case CHECK_URI_PERMISSION_TRANSACTION: {
11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri uri = Uri.CREATOR.createFromParcel(data);
11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int pid = data.readInt();
11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int uid = data.readInt();
11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int mode = data.readInt();
1194d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int userId = data.readInt();
1195d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int res = checkUriPermission(uri, pid, uid, mode, userId);
11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
12004cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner
12019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case CLEAR_APP_DATA_TRANSACTION: {
12024cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String packageName = data.readString();
12049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IPackageDataObserver observer = IPackageDataObserver.Stub.asInterface(
12059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    data.readStrongBinder());
1206742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            int userId = data.readInt();
1207742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            boolean res = clearApplicationUserData(packageName, observer, userId);
12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
12124cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner
12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GRANT_URI_PERMISSION_TRANSACTION: {
12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String targetPkg = data.readString();
12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri uri = Uri.CREATOR.createFromParcel(data);
12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int mode = data.readInt();
1220d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int userId = data.readInt();
1221d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            grantUriPermission(app, targetPkg, uri, mode, userId);
12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
12254cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner
12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case REVOKE_URI_PERMISSION_TRANSACTION: {
12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
12289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri uri = Uri.CREATOR.createFromParcel(data);
12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int mode = data.readInt();
1232d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int userId = data.readInt();
1233d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            revokeUriPermission(app, uri, mode, userId);
12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
12374cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner
1238e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        case TAKE_PERSISTABLE_URI_PERMISSION_TRANSACTION: {
1239e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            data.enforceInterface(IActivityManager.descriptor);
1240e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            Uri uri = Uri.CREATOR.createFromParcel(data);
1241e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            int mode = data.readInt();
1242d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int userId = data.readInt();
1243d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            takePersistableUriPermission(uri, mode, userId);
1244e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            reply.writeNoException();
1245e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            return true;
1246e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        }
1247e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey
1248e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        case RELEASE_PERSISTABLE_URI_PERMISSION_TRANSACTION: {
1249e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            data.enforceInterface(IActivityManager.descriptor);
1250e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            Uri uri = Uri.CREATOR.createFromParcel(data);
1251e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            int mode = data.readInt();
1252d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int userId = data.readInt();
1253d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            releasePersistableUriPermission(uri, mode, userId);
1254e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            reply.writeNoException();
1255e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            return true;
1256e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        }
1257e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey
1258e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        case GET_PERSISTED_URI_PERMISSIONS_TRANSACTION: {
1259e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            data.enforceInterface(IActivityManager.descriptor);
1260bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey            final String packageName = data.readString();
1261bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey            final boolean incoming = data.readInt() != 0;
1262bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey            final ParceledListSlice<UriPermission> perms = getPersistedUriPermissions(
1263bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey                    packageName, incoming);
1264e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            reply.writeNoException();
1265e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            perms.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
1266e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey            return true;
1267e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        }
1268e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey
12699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SHOW_WAITING_FOR_DEBUGGER_TRANSACTION: {
12709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
12719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
12729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
12739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean waiting = data.readInt() != 0;
12749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            showWaitingForDebugger(app, waiting);
12759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
12769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
12779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
12789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_MEMORY_INFO_TRANSACTION: {
12809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
12819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
12829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getMemoryInfo(mi);
12839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
12849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mi.writeToParcel(reply, 0);
12859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
12869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
12879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UNHANDLED_BACK_TRANSACTION: {
12899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
12909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            unhandledBack();
12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case OPEN_CONTENT_URI_TRANSACTION: {
12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri uri = Uri.parse(data.readString());
12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ParcelFileDescriptor pfd = openContentUri(uri);
12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
13009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (pfd != null) {
13019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(1);
13029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                pfd.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
13039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } else {
13049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(0);
13059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
13069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1308ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn
1309ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        case SET_LOCK_SCREEN_SHOWN_TRANSACTION: {
1310ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1311ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn            setLockScreenShown(data.readInt() != 0);
1312ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn            reply.writeNoException();
1313ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn            return true;
1314ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        }
1315ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn
13169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_DEBUG_APP_TRANSACTION: {
13179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
13189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String pn = data.readString();
13199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean wfd = data.readInt() != 0;
13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean per = data.readInt() != 0;
13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            setDebugApp(pn, wfd, per);
13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
13249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_ALWAYS_FINISH_TRANSACTION: {
13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean enabled = data.readInt() != 0;
13299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            setAlwaysFinish(enabled);
13309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
13319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
13329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
13339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1334b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn        case SET_ACTIVITY_CONTROLLER_TRANSACTION: {
13359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
1336b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn            IActivityController watcher = IActivityController.Stub.asInterface(
13379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    data.readStrongBinder());
1338b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn            setActivityController(watcher);
1339cdb86bb15707d18004f22d761a0f9d2623769e4aSungmin Choi            reply.writeNoException();
13409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
13419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
13429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ENTER_SAFE_MODE_TRANSACTION: {
13449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
13459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            enterSafeMode();
13469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
13479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
13489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
13499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
13509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case NOTE_WAKEUP_ALARM_TRANSACTION: {
13519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
13529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentSender is = IIntentSender.Stub.asInterface(
13539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    data.readStrongBinder());
1354099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn            int sourceUid = data.readInt();
1355099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn            String sourcePkg = data.readString();
1356099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn            noteWakeupAlarm(is, sourceUid, sourcePkg);
13579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
13589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
13599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
13609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1361e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu        case KILL_PIDS_TRANSACTION: {
13629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
13639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int[] pids = data.createIntArray();
1364e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu            String reason = data.readString();
1365648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn            boolean secure = data.readInt() != 0;
1366648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn            boolean res = killPids(pids, reason, secure);
13679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
13689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
13699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
13709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
13719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1372b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        case KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION: {
1373b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            data.enforceInterface(IActivityManager.descriptor);
1374b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            String reason = data.readString();
1375b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            boolean res = killProcessesBelowForeground(reason);
1376b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            reply.writeNoException();
1377b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            reply.writeInt(res ? 1 : 0);
1378b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            return true;
1379b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        }
1380b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey
138160d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        case HANDLE_APPLICATION_CRASH_TRANSACTION: {
138260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            data.enforceInterface(IActivityManager.descriptor);
138360d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            IBinder app = data.readStrongBinder();
138460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data);
138560d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            handleApplicationCrash(app, ci);
138660d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            reply.writeNoException();
138760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            return true;
138860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        }
138960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor
139060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        case HANDLE_APPLICATION_WTF_TRANSACTION: {
13919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
13929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder app = data.readStrongBinder();
13939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String tag = data.readString();
13945232271a41323594ae406be7476b6ca2f08af3d8Dianne Hackborn            boolean system = data.readInt() != 0;
1395b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor            ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data);
13965232271a41323594ae406be7476b6ca2f08af3d8Dianne Hackborn            boolean res = handleApplicationWtf(app, tag, system, ci);
13979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
139860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            reply.writeInt(res ? 1 : 0);
13999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
14009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1401b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor
1402438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        case HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION: {
1403438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick            data.enforceInterface(IActivityManager.descriptor);
1404438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick            IBinder app = data.readStrongBinder();
140546d42387464a651268648659e91d022566d4844cBrad Fitzpatrick            int violationMask = data.readInt();
1406cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick            StrictMode.ViolationInfo info = new StrictMode.ViolationInfo(data);
1407cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick            handleApplicationStrictModeViolation(app, violationMask, info);
1408438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick            reply.writeNoException();
1409438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick            return true;
1410438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        }
1411438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick
14129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SIGNAL_PERSISTENT_PROCESSES_TRANSACTION: {
14139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
14149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int sig = data.readInt();
14159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            signalPersistentProcesses(sig);
14169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
14179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
14189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
14199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
142003abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        case KILL_BACKGROUND_PROCESSES_TRANSACTION: {
142103abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
14229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String packageName = data.readString();
14231676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn            int userId = data.readInt();
14241676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn            killBackgroundProcesses(packageName, userId);
142503abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            reply.writeNoException();
142603abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            return true;
142703abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        }
1428e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn
1429e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        case KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION: {
1430e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1431e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn            killAllBackgroundProcesses();
1432e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn            reply.writeNoException();
1433e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn            return true;
1434e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        }
14354cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner
143603abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        case FORCE_STOP_PACKAGE_TRANSACTION: {
143703abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
143803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            String packageName = data.readString();
14391676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn            int userId = data.readInt();
14401676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn            forceStopPackage(packageName, userId);
14419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
14429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
14439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
144427ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn
144527ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        case GET_MY_MEMORY_STATE_TRANSACTION: {
144627ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
144727ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            ActivityManager.RunningAppProcessInfo info =
144827ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn                    new ActivityManager.RunningAppProcessInfo();
144927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            getMyMemoryState(info);
145027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            reply.writeNoException();
145127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            info.writeToParcel(reply, 0);
145227ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            return true;
145327ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        }
145427ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn
14559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_DEVICE_CONFIGURATION_TRANSACTION: {
14569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
14579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ConfigurationInfo config = getDeviceConfigurationInfo();
14589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
14599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            config.writeToParcel(reply, 0);
14609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
14619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
14621b012d302b56b4adf950035136d1d191a1936d5aJeff Hao
1463f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        case PROFILE_CONTROL_TRANSACTION: {
1464f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
1465f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            String process = data.readString();
14661676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn            int userId = data.readInt();
1467f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            boolean start = data.readInt() != 0;
14689a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8Romain Guy            int profileType = data.readInt();
14691b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            ProfilerInfo profilerInfo = data.readInt() != 0
14701b012d302b56b4adf950035136d1d191a1936d5aJeff Hao                    ? ProfilerInfo.CREATOR.createFromParcel(data) : null;
14711b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            boolean res = profileControl(process, userId, start, profilerInfo, profileType);
1472f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            reply.writeNoException();
1473f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            reply.writeInt(res ? 1 : 0);
1474f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            return true;
1475f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        }
14761b012d302b56b4adf950035136d1d191a1936d5aJeff Hao
147755280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        case SHUTDOWN_TRANSACTION: {
147855280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
147955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn            boolean res = shutdown(data.readInt());
148055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn            reply.writeNoException();
148155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn            reply.writeInt(res ? 1 : 0);
148255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn            return true;
148355280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        }
148455280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn
148595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        case STOP_APP_SWITCHES_TRANSACTION: {
148695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
148795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            stopAppSwitches();
148895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            reply.writeNoException();
148995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            return true;
149095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        }
149195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn
149295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        case RESUME_APP_SWITCHES_TRANSACTION: {
149395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
149495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            resumeAppSwitches();
149595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            reply.writeNoException();
149695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            return true;
149795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        }
149895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn
14999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case PEEK_SERVICE_TRANSACTION: {
15009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
15019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent service = Intent.CREATOR.createFromParcel(data);
15029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
15039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder binder = peekService(service, resolvedType);
15049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
15059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeStrongBinder(binder);
15069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
15079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1508181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
1509181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        case START_BACKUP_AGENT_TRANSACTION: {
1510181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            data.enforceInterface(IActivityManager.descriptor);
1511181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            ApplicationInfo info = ApplicationInfo.CREATOR.createFromParcel(data);
1512181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            int backupRestoreMode = data.readInt();
1513181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            boolean success = bindBackupAgent(info, backupRestoreMode);
1514181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            reply.writeNoException();
1515181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            reply.writeInt(success ? 1 : 0);
1516181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            return true;
1517181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        }
1518181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
1519181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        case BACKUP_AGENT_CREATED_TRANSACTION: {
1520181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            data.enforceInterface(IActivityManager.descriptor);
1521181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            String packageName = data.readString();
1522181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            IBinder agent = data.readStrongBinder();
1523181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            backupAgentCreated(packageName, agent);
1524181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            reply.writeNoException();
1525181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            return true;
1526181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        }
1527181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
1528181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        case UNBIND_BACKUP_AGENT_TRANSACTION: {
1529181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            data.enforceInterface(IActivityManager.descriptor);
1530181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            ApplicationInfo info = ApplicationInfo.CREATOR.createFromParcel(data);
1531181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            unbindBackupAgent(info);
1532181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            reply.writeNoException();
1533181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            return true;
1534181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        }
1535fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn
1536fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn        case ADD_PACKAGE_DEPENDENCY_TRANSACTION: {
1537fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1538fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn            String packageName = data.readString();
1539fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn            addPackageDependency(packageName);
1540fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn            reply.writeNoException();
1541fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn            return true;
1542fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn        }
1543fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn
15445e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        case KILL_APPLICATION_WITH_APPID_TRANSACTION: {
1545261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu            data.enforceInterface(IActivityManager.descriptor);
1546261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu            String pkg = data.readString();
15475e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int appid = data.readInt();
154821d9b5669257ca931da2d383f12db4865479752aDianne Hackborn            String reason = data.readString();
154921d9b5669257ca931da2d383f12db4865479752aDianne Hackborn            killApplicationWithAppId(pkg, appid, reason);
1550261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu            reply.writeNoException();
1551261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu            return true;
1552261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        }
1553fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn
1554a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        case CLOSE_SYSTEM_DIALOGS_TRANSACTION: {
1555a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1556a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn            String reason = data.readString();
1557a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn            closeSystemDialogs(reason);
1558a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn            reply.writeNoException();
1559a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn            return true;
1560a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        }
15613025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn
15623025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        case GET_PROCESS_MEMORY_INFO_TRANSACTION: {
15633025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
15644f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn            int[] pids = data.createIntArray();
15654f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn            Debug.MemoryInfo[] res =  getProcessMemoryInfo(pids);
15663025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            reply.writeNoException();
15674f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn            reply.writeTypedArray(res, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
15683025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            return true;
15693025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        }
15705e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate
15715e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        case KILL_APPLICATION_PROCESS_TRANSACTION: {
15725e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            data.enforceInterface(IActivityManager.descriptor);
15735e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            String processName = data.readString();
15745e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            int uid = data.readInt();
15755e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            killApplicationProcess(processName, uid);
15765e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            reply.writeNoException();
15775e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            return true;
15785e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        }
15793b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn
15803b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        case OVERRIDE_PENDING_TRANSITION_TRANSACTION: {
15813b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
15823b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            IBinder token = data.readStrongBinder();
15833b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            String packageName = data.readString();
15843b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            int enterAnim = data.readInt();
15853b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            int exitAnim = data.readInt();
15863b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            overridePendingTransition(token, packageName, enterAnim, exitAnim);
15879327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn            reply.writeNoException();
15889327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn            return true;
15899327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        }
15909327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn
15919327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        case IS_USER_A_MONKEY_TRANSACTION: {
15929327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
15937e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            boolean areThey = isUserAMonkey();
15949327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn            reply.writeNoException();
15957e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeInt(areThey ? 1 : 0);
15963b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            return true;
15973b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        }
1598860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn
15998f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz        case SET_USER_IS_MONKEY_TRANSACTION: {
16008f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz            data.enforceInterface(IActivityManager.descriptor);
16018f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz            final boolean monkey = (data.readInt() == 1);
16028f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz            setUserIsMonkey(monkey);
16038f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz            reply.writeNoException();
16048f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz            return true;
16058f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz        }
16068f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz
1607860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        case FINISH_HEAVY_WEIGHT_APP_TRANSACTION: {
1608860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1609860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn            finishHeavyWeightApp();
1610860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn            reply.writeNoException();
1611860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn            return true;
1612860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        }
161369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
161469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        case IS_IMMERSIVE_TRANSACTION: {
161569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            data.enforceInterface(IActivityManager.descriptor);
161669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            IBinder token = data.readStrongBinder();
16177e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            boolean isit = isImmersive(token);
161869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            reply.writeNoException();
16197e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeInt(isit ? 1 : 0);
162069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            return true;
162169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        }
162269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
1623d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        case IS_TOP_OF_TASK_TRANSACTION: {
1624d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
1625d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner            IBinder token = data.readStrongBinder();
1626d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner            final boolean isTopOfTask = isTopOfTask(token);
1627d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner            reply.writeNoException();
1628d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner            reply.writeInt(isTopOfTask ? 1 : 0);
1629d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner            return true;
1630d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        }
1631d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner
16325eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        case CONVERT_FROM_TRANSLUCENT_TRANSACTION: {
16334addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
16344addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner            IBinder token = data.readStrongBinder();
1635bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner            boolean converted = convertFromTranslucent(token);
16365eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner            reply.writeNoException();
1637bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner            reply.writeInt(converted ? 1 : 0);
16385eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner            return true;
16395eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        }
16405eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner
16415eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        case CONVERT_TO_TRANSLUCENT_TRANSACTION: {
16425eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
16435eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner            IBinder token = data.readStrongBinder();
1644233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            final Bundle bundle;
1645233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            if (data.readInt() == 0) {
1646233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner                bundle = null;
1647233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            } else {
1648233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner                bundle = data.readBundle();
1649233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            }
1650233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            final ActivityOptions options = bundle == null ? null : new ActivityOptions(bundle);
1651233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            boolean converted = convertToTranslucent(token, options);
16524addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner            reply.writeNoException();
1653bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner            reply.writeInt(converted ? 1 : 0);
16544addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner            return true;
16554addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner        }
16564addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner
1657233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        case GET_ACTIVITY_OPTIONS_TRANSACTION: {
1658233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
1659233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            IBinder token = data.readStrongBinder();
1660233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            final ActivityOptions options = getActivityOptions(token);
1661233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            reply.writeNoException();
1662233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            reply.writeBundle(options == null ? null : options.toBundle());
1663233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            return true;
1664233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        }
1665233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner
166669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        case SET_IMMERSIVE_TRANSACTION: {
166769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            data.enforceInterface(IActivityManager.descriptor);
166869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            IBinder token = data.readStrongBinder();
166969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            boolean imm = data.readInt() == 1;
167069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            setImmersive(token, imm);
167169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            reply.writeNoException();
167269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            return true;
167369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        }
167469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
167569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        case IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION: {
167669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            data.enforceInterface(IActivityManager.descriptor);
16777e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            boolean isit = isTopActivityImmersive();
167869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            reply.writeNoException();
16797e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeInt(isit ? 1 : 0);
168069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            return true;
168169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        }
168269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
16839d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        case CRASH_APPLICATION_TRANSACTION: {
16849d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
16859d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            int uid = data.readInt();
16869d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            int initialPid = data.readInt();
16879d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            String packageName = data.readString();
16889d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            String message = data.readString();
16899d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            crashApplication(uid, initialPid, packageName, message);
16909d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            reply.writeNoException();
16919d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            return true;
16929d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        }
1693cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn
1694cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        case GET_PROVIDER_MIME_TYPE_TRANSACTION: {
1695cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1696cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn            Uri uri = Uri.CREATOR.createFromParcel(data);
16975e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int userId = data.readInt();
16985e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            String type = getProviderMimeType(uri, userId);
1699cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn            reply.writeNoException();
1700cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn            reply.writeString(type);
1701cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn            return true;
1702cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        }
1703cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn
17047e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        case NEW_URI_PERMISSION_OWNER_TRANSACTION: {
17057e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
17067e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            String name = data.readString();
17077e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            IBinder perm = newUriPermissionOwner(name);
17087e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeNoException();
17097e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeStrongBinder(perm);
17107e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            return true;
17117e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        }
17127e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn
17137e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        case GRANT_URI_PERMISSION_FROM_OWNER_TRANSACTION: {
17147e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
17157e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            IBinder owner = data.readStrongBinder();
17167e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            int fromUid = data.readInt();
17177e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            String targetPkg = data.readString();
17187e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            Uri uri = Uri.CREATOR.createFromParcel(data);
17197e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            int mode = data.readInt();
1720f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot            int sourceUserId = data.readInt();
1721f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot            int targetUserId = data.readInt();
1722f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot            grantUriPermissionFromOwner(owner, fromUid, targetPkg, uri, mode, sourceUserId,
1723f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot                    targetUserId);
17247e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeNoException();
17257e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            return true;
17267e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        }
17277e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn
17287e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        case REVOKE_URI_PERMISSION_FROM_OWNER_TRANSACTION: {
17297e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
17307e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            IBinder owner = data.readStrongBinder();
17317e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            Uri uri = null;
17327e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            if (data.readInt() != 0) {
1733d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot                uri = Uri.CREATOR.createFromParcel(data);
17347e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            }
17357e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            int mode = data.readInt();
1736d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int userId = data.readInt();
1737d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            revokeUriPermissionFromOwner(owner, uri, mode, userId);
17387e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeNoException();
17397e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            return true;
17407e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        }
17419d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn
174290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        case CHECK_GRANT_URI_PERMISSION_TRANSACTION: {
174390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
174490f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            int callingUid = data.readInt();
174590f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            String targetPkg = data.readString();
174690f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            Uri uri = Uri.CREATOR.createFromParcel(data);
174790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            int modeFlags = data.readInt();
1748d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int userId = data.readInt();
1749d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int res = checkGrantUriPermission(callingUid, targetPkg, uri, modeFlags, userId);
175090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            reply.writeNoException();
175190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            reply.writeInt(res);
175290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            return true;
175390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        }
175490f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn
1755824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        case DUMP_HEAP_TRANSACTION: {
1756824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            data.enforceInterface(IActivityManager.descriptor);
1757824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            String process = data.readString();
1758b12e1354f25f04e9c9a71da76c6fca858b7d39d0Dianne Hackborn            int userId = data.readInt();
1759824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            boolean managed = data.readInt() != 0;
1760824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            String path = data.readString();
1761824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            ParcelFileDescriptor fd = data.readInt() != 0
1762c2be0d61830dd867f3092923e149e0cc251cdfc5Amith Yamasani                    ? ParcelFileDescriptor.CREATOR.createFromParcel(data) : null;
17631676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn            boolean res = dumpHeap(process, userId, managed, path, fd);
1764824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            reply.writeNoException();
1765824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            reply.writeInt(res ? 1 : 0);
1766824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            return true;
1767824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        }
1768824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden
1769621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        case START_ACTIVITIES_TRANSACTION:
1770621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        {
1771621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1772621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            IBinder b = data.readStrongBinder();
1773621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            IApplicationThread app = ApplicationThreadNative.asInterface(b);
1774f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            String callingPackage = data.readString();
1775621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            Intent[] intents = data.createTypedArray(Intent.CREATOR);
1776621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            String[] resolvedTypes = data.createStringArray();
1777621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            IBinder resultTo = data.readStrongBinder();
1778a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
1779a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
1780ea7e91514ee1968d15713e82a5cca745e2c46a05Amith Yamasani            int userId = data.readInt();
1781f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            int result = startActivities(app, callingPackage, intents, resolvedTypes, resultTo,
1782ea7e91514ee1968d15713e82a5cca745e2c46a05Amith Yamasani                    options, userId);
1783621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            reply.writeNoException();
1784621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            reply.writeInt(result);
1785621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            return true;
1786621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        }
1787621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn
17880f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        case GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION:
17890f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        {
17900f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
17910f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            int mode = getFrontActivityScreenCompatMode();
17920f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeNoException();
17930f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeInt(mode);
17940f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            return true;
17950f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        }
17960f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
17970f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        case SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION:
17980f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        {
17990f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
18000f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            int mode = data.readInt();
18010f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            setFrontActivityScreenCompatMode(mode);
18020f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeNoException();
18030f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeInt(mode);
18040f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            return true;
18050f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        }
18060f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
18070f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        case GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION:
18080f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        {
18090f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
18100f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            String pkg = data.readString();
18110f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            int mode = getPackageScreenCompatMode(pkg);
18120f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeNoException();
18130f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeInt(mode);
18140f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            return true;
18150f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        }
18160f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
1817e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        case SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION:
1818e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        {
1819e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1820e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            String pkg = data.readString();
18210f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            int mode = data.readInt();
18220f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            setPackageScreenCompatMode(pkg, mode);
1823e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            reply.writeNoException();
1824e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            return true;
1825e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        }
1826aa9d84c37e05f696ec158dac98ce38cf41e18314Dianne Hackborn
18274b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        case SWITCH_USER_TRANSACTION: {
18284b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            data.enforceInterface(IActivityManager.descriptor);
18294b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            int userid = data.readInt();
18304b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            boolean result = switchUser(userid);
18314b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            reply.writeNoException();
18324b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            reply.writeInt(result ? 1 : 0);
18334b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            return true;
18344b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        }
183552f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani
183608488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        case START_USER_IN_BACKGROUND_TRANSACTION: {
183708488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy            data.enforceInterface(IActivityManager.descriptor);
183808488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy            int userid = data.readInt();
183908488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy            boolean result = startUserInBackground(userid);
184008488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy            reply.writeNoException();
184108488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy            reply.writeInt(result ? 1 : 0);
184208488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy            return true;
184308488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        }
184408488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy
184580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        case STOP_USER_TRANSACTION: {
184680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
184780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            int userid = data.readInt();
184880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            IStopUserCallback callback = IStopUserCallback.Stub.asInterface(
184980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn                    data.readStrongBinder());
185080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            int result = stopUser(userid, callback);
185180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            reply.writeNoException();
185280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            reply.writeInt(result);
185380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            return true;
185480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        }
185580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn
185652f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        case GET_CURRENT_USER_TRANSACTION: {
185752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani            data.enforceInterface(IActivityManager.descriptor);
185852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani            UserInfo userInfo = getCurrentUser();
185952f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani            reply.writeNoException();
186052f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani            userInfo.writeToParcel(reply, 0);
186152f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani            return true;
186252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        }
186352f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani
18645e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        case IS_USER_RUNNING_TRANSACTION: {
18655e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
18665e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int userid = data.readInt();
1867a8a9bd65bf5865d83ef44f54552ca39522bfbcf0Dianne Hackborn            boolean orStopping = data.readInt() != 0;
1868a8a9bd65bf5865d83ef44f54552ca39522bfbcf0Dianne Hackborn            boolean result = isUserRunning(userid, orStopping);
18695e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            reply.writeNoException();
18705e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            reply.writeInt(result ? 1 : 0);
18715e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            return true;
18725e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        }
18735e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn
1874c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        case GET_RUNNING_USER_IDS_TRANSACTION: {
1875c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1876c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn            int[] result = getRunningUserIds();
1877c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn            reply.writeNoException();
1878c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn            reply.writeIntArray(result);
1879c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn            return true;
1880c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        }
1881c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn
18820c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        case REMOVE_TASK_TRANSACTION:
18830c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        {
18840c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
18850c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            int taskId = data.readInt();
18860c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            int fl = data.readInt();
18870c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            boolean result = removeTask(taskId, fl);
18880c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            reply.writeNoException();
18890c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            reply.writeInt(result ? 1 : 0);
18900c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            return true;
18910c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        }
18924b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani
1893a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        case REGISTER_PROCESS_OBSERVER_TRANSACTION: {
1894a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            data.enforceInterface(IActivityManager.descriptor);
1895a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            IProcessObserver observer = IProcessObserver.Stub.asInterface(
1896a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey                    data.readStrongBinder());
1897a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            registerProcessObserver(observer);
1898a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            return true;
1899a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        }
1900a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey
1901a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        case UNREGISTER_PROCESS_OBSERVER_TRANSACTION: {
1902a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            data.enforceInterface(IActivityManager.descriptor);
1903a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            IProcessObserver observer = IProcessObserver.Stub.asInterface(
1904a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey                    data.readStrongBinder());
1905a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            unregisterProcessObserver(observer);
1906a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            return true;
1907a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        }
1908a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey
190936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        case GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION:
191036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        {
191136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
191236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            String pkg = data.readString();
191336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            boolean ask = getPackageAskScreenCompat(pkg);
191436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            reply.writeNoException();
191536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            reply.writeInt(ask ? 1 : 0);
191636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            return true;
191736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        }
191836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn
191936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        case SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION:
192036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        {
192136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
192236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            String pkg = data.readString();
192336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            boolean ask = data.readInt() != 0;
192436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            setPackageAskScreenCompat(pkg, ask);
192536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            reply.writeNoException();
192636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            return true;
192736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        }
192836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn
19296c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        case IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION: {
19306c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
19316c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            IIntentSender r = IIntentSender.Stub.asInterface(
19326c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn                data.readStrongBinder());
19336c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            boolean res = isIntentSenderTargetedToPackage(r);
19346c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            reply.writeNoException();
19356c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            reply.writeInt(res ? 1 : 0);
19366c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            return true;
19376c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        }
19386c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn
19391927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        case IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION: {
19401927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
19411927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            IIntentSender r = IIntentSender.Stub.asInterface(
19421927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn                data.readStrongBinder());
19431927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            boolean res = isIntentSenderAnActivity(r);
19441927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            reply.writeNoException();
19451927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            reply.writeInt(res ? 1 : 0);
19461927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            return true;
19471927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        }
19481927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn
19498103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        case GET_INTENT_FOR_INTENT_SENDER_TRANSACTION: {
19508103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
19518103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn            IIntentSender r = IIntentSender.Stub.asInterface(
19528103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn                data.readStrongBinder());
19538103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn            Intent intent = getIntentForIntentSender(r);
19548103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn            reply.writeNoException();
19558103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn            if (intent != null) {
19568103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn                reply.writeInt(1);
19578103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn                intent.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
19588103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn            } else {
19598103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn                reply.writeInt(0);
19608103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn            }
19618103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn            return true;
19628103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        }
19638103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn
1964a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        case GET_TAG_FOR_INTENT_SENDER_TRANSACTION: {
1965a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1966a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn            IIntentSender r = IIntentSender.Stub.asInterface(
1967a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn                data.readStrongBinder());
1968a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn            String prefix = data.readString();
1969a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn            String tag = getTagForIntentSender(r, prefix);
1970a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn            reply.writeNoException();
1971a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn            reply.writeString(tag);
1972a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn            return true;
1973a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        }
1974a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn
197531ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        case UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION: {
197631ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
197731ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn            Configuration config = Configuration.CREATOR.createFromParcel(data);
197831ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn            updatePersistentConfiguration(config);
197931ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn            reply.writeNoException();
198031ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn            return true;
198131ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        }
198231ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn
1983b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        case GET_PROCESS_PSS_TRANSACTION: {
1984b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1985b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            int[] pids = data.createIntArray();
1986b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            long[] pss = getProcessPss(pids);
1987b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            reply.writeNoException();
1988b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            reply.writeLongArray(pss);
1989b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            return true;
1990b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        }
1991b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn
1992661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        case SHOW_BOOT_MESSAGE_TRANSACTION: {
1993661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1994661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            CharSequence msg = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data);
1995661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            boolean always = data.readInt() != 0;
1996661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            showBootMessage(msg, always);
1997661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            reply.writeNoException();
1998661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            return true;
1999661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        }
2000661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn
20018de4311c51229efbe2f2d0afbf298982c5cadd96Jorim Jaggi        case KEYGUARD_WAITING_FOR_ACTIVITY_DRAWN_TRANSACTION: {
200290c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
20038de4311c51229efbe2f2d0afbf298982c5cadd96Jorim Jaggi            keyguardWaitingForActivityDrawn();
200490c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn            reply.writeNoException();
200590c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn            return true;
200690c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        }
200790c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn
20086f4d61ff2e3143bea37bbc1a7a2a0ab415b2c88aDianne Hackborn        case SHOULD_UP_RECREATE_TASK_TRANSACTION: {
2009dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            data.enforceInterface(IActivityManager.descriptor);
2010dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            IBinder token = data.readStrongBinder();
2011dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            String destAffinity = data.readString();
20126f4d61ff2e3143bea37bbc1a7a2a0ab415b2c88aDianne Hackborn            boolean res = shouldUpRecreateTask(token, destAffinity);
2013dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            reply.writeNoException();
2014dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            reply.writeInt(res ? 1 : 0);
2015dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            return true;
2016dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        }
2017dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell
2018dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        case NAVIGATE_UP_TO_TRANSACTION: {
2019dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            data.enforceInterface(IActivityManager.descriptor);
2020dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            IBinder token = data.readStrongBinder();
2021dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            Intent target = Intent.CREATOR.createFromParcel(data);
2022dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            int resultCode = data.readInt();
2023dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            Intent resultData = null;
2024dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            if (data.readInt() != 0) {
2025dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell                resultData = Intent.CREATOR.createFromParcel(data);
2026dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            }
2027dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            boolean res = navigateUpTo(token, target, resultCode, resultData);
2028dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            reply.writeNoException();
2029dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            reply.writeInt(res ? 1 : 0);
2030dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            return true;
2031dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        }
2032dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell
20335320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        case GET_LAUNCHED_FROM_UID_TRANSACTION: {
20345320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
20355320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            IBinder token = data.readStrongBinder();
20365320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            int res = getLaunchedFromUid(token);
20375320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            reply.writeNoException();
20385320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            reply.writeInt(res);
20395320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            return true;
20405320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        }
20415320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn
2042f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        case GET_LAUNCHED_FROM_PACKAGE_TRANSACTION: {
2043f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
2044f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            IBinder token = data.readStrongBinder();
2045f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            String res = getLaunchedFromPackage(token);
2046f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            reply.writeNoException();
2047f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            reply.writeString(res);
2048f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            return true;
2049f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        }
2050f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn
20515dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        case REGISTER_USER_SWITCH_OBSERVER_TRANSACTION: {
20525dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
20535dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn            IUserSwitchObserver observer = IUserSwitchObserver.Stub.asInterface(
20545dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn                    data.readStrongBinder());
20555dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn            registerUserSwitchObserver(observer);
20565fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn            reply.writeNoException();
20575dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn            return true;
20585dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        }
20595dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn
20605dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        case UNREGISTER_USER_SWITCH_OBSERVER_TRANSACTION: {
20615dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
20625dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn            IUserSwitchObserver observer = IUserSwitchObserver.Stub.asInterface(
20635dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn                    data.readStrongBinder());
20645dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn            unregisterUserSwitchObserver(observer);
20655fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn            reply.writeNoException();
20665dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn            return true;
20675dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        }
20685dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn
2069d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn        case REQUEST_BUG_REPORT_TRANSACTION: {
2070d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
2071d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn            requestBugReport();
20725fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn            reply.writeNoException();
20735fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn            return true;
20745fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        }
20755fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn
20765fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        case INPUT_DISPATCHING_TIMED_OUT_TRANSACTION: {
20775fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
20785fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn            int pid = data.readInt();
20795fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn            boolean aboveSystem = data.readInt() != 0;
2080bd181bb83282571eb793d2e4a48b4d19585de7f2Jeff Brown            String reason = data.readString();
2081bd181bb83282571eb793d2e4a48b4d19585de7f2Jeff Brown            long res = inputDispatchingTimedOut(pid, aboveSystem, reason);
20825fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn            reply.writeNoException();
20835fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn            reply.writeLong(res);
2084d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn            return true;
2085d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn        }
2086d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn
2087dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory        case GET_ASSIST_CONTEXT_EXTRAS_TRANSACTION: {
2088f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
2089f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn            int requestType = data.readInt();
2090dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory            Bundle res = getAssistContextExtras(requestType);
2091f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn            reply.writeNoException();
2092f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn            reply.writeBundle(res);
2093f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn            return true;
2094f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        }
2095f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn
2096dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory        case REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION: {
2097f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
2098f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn            IBinder token = data.readStrongBinder();
2099f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn            Bundle extras = data.readBundle();
21007140a25f0135f473b66d01eb042471b2f0ebc836Adam Skory            reportAssistContextExtras(token, extras);
2101f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn            reply.writeNoException();
2102f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn            return true;
2103f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        }
2104f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn
2105f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        case KILL_UID_TRANSACTION: {
2106f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
2107f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn            int uid = data.readInt();
2108f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn            String reason = data.readString();
2109f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn            killUid(uid, reason);
2110f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn            reply.writeNoException();
2111f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn            return true;
2112f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        }
2113f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn
21148bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        case HANG_TRANSACTION: {
21158bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
21168bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn            IBinder who = data.readStrongBinder();
21178bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn            boolean allowRestart = data.readInt() != 0;
21188bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn            hang(who, allowRestart);
21198bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn            reply.writeNoException();
21208bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn            return true;
21218bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        }
21228bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn
21232286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn        case REPORT_ACTIVITY_FULLY_DRAWN_TRANSACTION: {
21242286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
21252286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn            IBinder token = data.readStrongBinder();
21262286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn            reportActivityFullyDrawn(token);
21272286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn            reply.writeNoException();
21282286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn            return true;
21292286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn        }
21302286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn
21315eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        case NOTIFY_ACTIVITY_DRAWN_TRANSACTION: {
21325eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
21335eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner            IBinder token = data.readStrongBinder();
21345eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner            notifyActivityDrawn(token);
21355eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner            reply.writeNoException();
21365eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner            return true;
21375eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        }
213857a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn
213957a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn        case RESTART_TRANSACTION: {
214057a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
214157a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn            restart();
214257a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn            reply.writeNoException();
214357a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn            return true;
214457a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn        }
214508da7a1143b0c9cfb703971d882e0886bbd7d9deJeff Sharkey
214635f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn        case PERFORM_IDLE_MAINTENANCE_TRANSACTION: {
214735f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
214835f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn            performIdleMaintenance();
214935f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn            reply.writeNoException();
215035f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn            return true;
215135f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn        }
21524a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner
21534a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        case CREATE_ACTIVITY_CONTAINER_TRANSACTION: {
21544a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
21554a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            IBinder parentActivityToken = data.readStrongBinder();
21564a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            IActivityContainerCallback callback =
2157e3a00d745fad479f560e96cec23e957f37d1c043Craig Mautner                    IActivityContainerCallback.Stub.asInterface(data.readStrongBinder());
21584a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            IActivityContainer activityContainer =
21594a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner                    createActivityContainer(parentActivityToken, callback);
21604a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            reply.writeNoException();
2161bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner            if (activityContainer != null) {
2162bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner                reply.writeInt(1);
2163bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner                reply.writeStrongBinder(activityContainer.asBinder());
2164bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner            } else {
2165bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner                reply.writeInt(0);
2166bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner            }
21674a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            return true;
21684a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        }
21694a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner
217095da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner        case DELETE_ACTIVITY_CONTAINER_TRANSACTION:  {
217195da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
217295da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner            IActivityContainer activityContainer =
217395da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner                    IActivityContainer.Stub.asInterface(data.readStrongBinder());
217495da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner            deleteActivityContainer(activityContainer);
217595da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner            reply.writeNoException();
217695da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner            return true;
217795da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner        }
217895da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner
2179e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        case GET_ACTIVITY_CONTAINER_TRANSACTION: {
2180e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
2181e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner            IBinder activityToken = data.readStrongBinder();
2182e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner            IActivityContainer activityContainer = getEnclosingActivityContainer(activityToken);
2183e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner            reply.writeNoException();
2184bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner            if (activityContainer != null) {
2185bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner                reply.writeInt(1);
2186bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner                reply.writeStrongBinder(activityContainer.asBinder());
2187bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner            } else {
2188bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner                reply.writeInt(0);
2189bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner            }
2190e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner            return true;
2191e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        }
2192e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner
21934a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        case GET_HOME_ACTIVITY_TOKEN_TRANSACTION: {
21944a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
21954a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            IBinder homeActivityToken = getHomeActivityToken();
21964a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            reply.writeNoException();
21974a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            reply.writeStrongBinder(homeActivityToken);
21984a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            return true;
21994a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        }
2200aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner
2201aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        case START_LOCK_TASK_BY_TASK_ID_TRANSACTION: {
2202aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
2203aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            final int taskId = data.readInt();
2204aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            startLockTaskMode(taskId);
2205aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            reply.writeNoException();
2206aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            return true;
2207aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        }
2208aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner
2209aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        case START_LOCK_TASK_BY_TOKEN_TRANSACTION: {
2210aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
2211aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            IBinder token = data.readStrongBinder();
2212aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            startLockTaskMode(token);
2213aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            reply.writeNoException();
2214aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            return true;
2215aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        }
2216aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner
2217d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        case START_LOCK_TASK_BY_CURRENT_TRANSACTION: {
221862515beee67307d8859beec521b7baedfa54b2b5Jason Monk            data.enforceInterface(IActivityManager.descriptor);
221962515beee67307d8859beec521b7baedfa54b2b5Jason Monk            startLockTaskModeOnCurrent();
222062515beee67307d8859beec521b7baedfa54b2b5Jason Monk            reply.writeNoException();
222162515beee67307d8859beec521b7baedfa54b2b5Jason Monk            return true;
222262515beee67307d8859beec521b7baedfa54b2b5Jason Monk        }
222362515beee67307d8859beec521b7baedfa54b2b5Jason Monk
2224aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        case STOP_LOCK_TASK_MODE_TRANSACTION: {
2225aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
2226aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            stopLockTaskMode();
2227aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            reply.writeNoException();
2228aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            return true;
2229aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        }
2230aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner
2231d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        case STOP_LOCK_TASK_BY_CURRENT_TRANSACTION: {
223262515beee67307d8859beec521b7baedfa54b2b5Jason Monk            data.enforceInterface(IActivityManager.descriptor);
223362515beee67307d8859beec521b7baedfa54b2b5Jason Monk            stopLockTaskModeOnCurrent();
223462515beee67307d8859beec521b7baedfa54b2b5Jason Monk            reply.writeNoException();
223562515beee67307d8859beec521b7baedfa54b2b5Jason Monk            return true;
223662515beee67307d8859beec521b7baedfa54b2b5Jason Monk        }
223762515beee67307d8859beec521b7baedfa54b2b5Jason Monk
2238aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        case IS_IN_LOCK_TASK_MODE_TRANSACTION: {
2239aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
2240aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            final boolean isInLockTaskMode = isInLockTaskMode();
2241aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            reply.writeNoException();
2242aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            reply.writeInt(isInLockTaskMode ? 1 : 0);
2243aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner            return true;
2244aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        }
22452fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner
2246a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung        case SET_TASK_DESCRIPTION_TRANSACTION: {
22472fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
22482fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner            IBinder token = data.readStrongBinder();
2249a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung            ActivityManager.TaskDescription values =
2250a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung                    ActivityManager.TaskDescription.CREATOR.createFromParcel(data);
2251a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung            setTaskDescription(token, values);
22522fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner            reply.writeNoException();
22532fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner            return true;
22542fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner        }
2255ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner
2256648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        case GET_TASK_DESCRIPTION_ICON_TRANSACTION: {
2257648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
2258648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner            String filename = data.readString();
2259648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner            Bitmap icon = getTaskDescriptionIcon(filename);
2260648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner            reply.writeNoException();
2261648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner            if (icon == null) {
2262648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner                reply.writeInt(0);
2263648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner            } else {
2264648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner                reply.writeInt(1);
2265648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner                icon.writeToParcel(reply, 0);
2266648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner            }
2267648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner            return true;
2268648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        }
2269648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner
22704b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima        case REQUEST_VISIBLE_BEHIND_TRANSACTION: {
2271ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
2272ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            IBinder token = data.readStrongBinder();
2273ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            boolean enable = data.readInt() > 0;
22744b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima            boolean success = requestVisibleBehind(token, enable);
2275ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            reply.writeNoException();
2276ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            reply.writeInt(success ? 1 : 0);
2277ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            return true;
2278ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        }
2279ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner
22804b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima        case IS_BACKGROUND_VISIBLE_BEHIND_TRANSACTION: {
2281ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
2282ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            IBinder token = data.readStrongBinder();
22834b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima            final boolean enabled = isBackgroundVisibleBehind(token);
2284ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            reply.writeNoException();
2285ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            reply.writeInt(enabled ? 1 : 0);
2286ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            return true;
2287ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        }
2288ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner
22894b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima        case BACKGROUND_RESOURCES_RELEASED_TRANSACTION: {
2290ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
2291ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            IBinder token = data.readStrongBinder();
22924b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima            backgroundResourcesReleased(token);
2293ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            reply.writeNoException();
2294ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner            return true;
2295ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        }
2296bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner
2297bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner        case NOTIFY_LAUNCH_TASK_BEHIND_COMPLETE_TRANSACTION: {
2298bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner            data.enforceInterface(IActivityManager.descriptor);
2299bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner            IBinder token = data.readStrongBinder();
2300bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner            notifyLaunchTaskBehindComplete(token);
2301bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner            reply.writeNoException();
2302bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner            return true;
2303bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner        }
23048746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner
23058746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner        case NOTIFY_ENTER_ANIMATION_COMPLETE_TRANSACTION: {
23068746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
23078746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner            IBinder token = data.readStrongBinder();
23088746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner            notifyEnterAnimationComplete(token);
23098746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner            reply.writeNoException();
23108746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner            return true;
23118746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner        }
23126e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner
23136e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner        case BOOT_ANIMATION_COMPLETE_TRANSACTION: {
23146e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner            data.enforceInterface(IActivityManager.descriptor);
23156e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner            bootAnimationComplete();
23166e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner            reply.writeNoException();
23176e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner            return true;
23186e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner        }
23199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2320663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick
23219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return super.onTransact(code, data, reply, flags);
23229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2324663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    public IBinder asBinder() {
23259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return this;
23269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2328663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    private static final Singleton<IActivityManager> gDefault = new Singleton<IActivityManager>() {
2329663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick        protected IActivityManager create() {
2330663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick            IBinder b = ServiceManager.getService("activity");
233143a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato            if (false) {
2332663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick                Log.v("ActivityManager", "default service binder = " + b);
2333663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick            }
2334663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick            IActivityManager am = asInterface(b);
233543a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato            if (false) {
2336663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick                Log.v("ActivityManager", "default service = " + am);
2337663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick            }
2338663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick            return am;
2339663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick        }
2340663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    };
23419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
23429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
23439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass ActivityManagerProxy implements IActivityManager
23449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
23459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ActivityManagerProxy(IBinder remote)
23469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
23479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote = remote;
23489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
234992a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy
23509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public IBinder asBinder()
23519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
23529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mRemote;
23539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
235492a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy
2355f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    public int startActivity(IApplicationThread caller, String callingPackage, Intent intent,
2356a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            String resolvedType, IBinder resultTo, String resultWho, int requestCode,
23571b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            int startFlags, ProfilerInfo profilerInfo, Bundle options) throws RemoteException {
23589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
23599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
23609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
23619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
2362f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        data.writeString(callingPackage);
23639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
23649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
23659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(resultTo);
23669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultWho);
23679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(requestCode);
2368a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        data.writeInt(startFlags);
23691b012d302b56b4adf950035136d1d191a1936d5aJeff Hao        if (profilerInfo != null) {
237062f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(1);
23711b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
237262f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        } else {
237362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(0);
237462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        }
2375a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
2376a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
2377a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
2378a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
2379a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
2380a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
23819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0);
23829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
23839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int result = reply.readInt();
23849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
23859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
23869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return result;
23879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23888264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani
2389f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    public int startActivityAsUser(IApplicationThread caller, String callingPackage, Intent intent,
23908264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            String resolvedType, IBinder resultTo, String resultWho, int requestCode,
23911b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            int startFlags, ProfilerInfo profilerInfo, Bundle options,
23921b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            int userId) throws RemoteException {
23938264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        Parcel data = Parcel.obtain();
23948264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        Parcel reply = Parcel.obtain();
23958264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeInterfaceToken(IActivityManager.descriptor);
23968264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
2397f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        data.writeString(callingPackage);
23988264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        intent.writeToParcel(data, 0);
23998264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeString(resolvedType);
24008264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeStrongBinder(resultTo);
24018264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeString(resultWho);
24028264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeInt(requestCode);
24038264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeInt(startFlags);
24041b012d302b56b4adf950035136d1d191a1936d5aJeff Hao        if (profilerInfo != null) {
24058264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            data.writeInt(1);
24061b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
24078264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        } else {
24088264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            data.writeInt(0);
24098264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        }
24108264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        if (options != null) {
24118264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            data.writeInt(1);
24128264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            options.writeToParcel(data, 0);
24138264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        } else {
24148264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            data.writeInt(0);
24158264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        }
24168264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeInt(userId);
24178264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        mRemote.transact(START_ACTIVITY_AS_USER_TRANSACTION, data, reply, 0);
24188264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        reply.readException();
24198264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        int result = reply.readInt();
24208264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        reply.recycle();
24218264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.recycle();
24228264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        return result;
24238264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani    }
2424028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn    public int startActivityAsCaller(IApplicationThread caller, String callingPackage,
2425028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode,
24261b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            int startFlags, ProfilerInfo profilerInfo, Bundle options) throws RemoteException {
2427028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        Parcel data = Parcel.obtain();
2428028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        Parcel reply = Parcel.obtain();
2429028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
2430028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
2431028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        data.writeString(callingPackage);
2432028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        intent.writeToParcel(data, 0);
2433028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        data.writeString(resolvedType);
2434028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        data.writeStrongBinder(resultTo);
2435028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        data.writeString(resultWho);
2436028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        data.writeInt(requestCode);
2437028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        data.writeInt(startFlags);
24381b012d302b56b4adf950035136d1d191a1936d5aJeff Hao        if (profilerInfo != null) {
2439028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            data.writeInt(1);
24401b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
2441028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        } else {
2442028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            data.writeInt(0);
2443028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        }
2444028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        if (options != null) {
2445028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            data.writeInt(1);
2446028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            options.writeToParcel(data, 0);
2447028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        } else {
2448028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn            data.writeInt(0);
2449028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        }
2450028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        mRemote.transact(START_ACTIVITY_AS_CALLER_TRANSACTION, data, reply, 0);
2451028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        reply.readException();
2452028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        int result = reply.readInt();
2453028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        reply.recycle();
2454028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        data.recycle();
2455028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn        return result;
2456028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn    }
2457f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    public WaitResult startActivityAndWait(IApplicationThread caller, String callingPackage,
2458f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            Intent intent, String resolvedType, IBinder resultTo, String resultWho,
24591b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            int requestCode, int startFlags, ProfilerInfo profilerInfo, Bundle options,
24601b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            int userId) throws RemoteException {
24618f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        Parcel data = Parcel.obtain();
24628f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        Parcel reply = Parcel.obtain();
24638f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
24648f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
2465f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        data.writeString(callingPackage);
24668f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        intent.writeToParcel(data, 0);
24678f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeString(resolvedType);
24688f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeStrongBinder(resultTo);
24698f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeString(resultWho);
24708f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeInt(requestCode);
2471a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        data.writeInt(startFlags);
24721b012d302b56b4adf950035136d1d191a1936d5aJeff Hao        if (profilerInfo != null) {
247362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(1);
24741b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
247562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        } else {
247662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(0);
247762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        }
2478a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
2479a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
2480a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
2481a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
2482a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
2483a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
24845e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInt(userId);
24858f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        mRemote.transact(START_ACTIVITY_AND_WAIT_TRANSACTION, data, reply, 0);
24868f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        reply.readException();
24878f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        WaitResult result = WaitResult.CREATOR.createFromParcel(reply);
24888f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        reply.recycle();
24898f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.recycle();
24908f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        return result;
24918f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn    }
2492f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    public int startActivityWithConfig(IApplicationThread caller, String callingPackage,
2493f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn            Intent intent, String resolvedType, IBinder resultTo, String resultWho,
2494a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int requestCode, int startFlags, Configuration config,
24954120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            Bundle options, int userId) throws RemoteException {
24962ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        Parcel data = Parcel.obtain();
24972ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        Parcel reply = Parcel.obtain();
24982ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
24992ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
2500f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        data.writeString(callingPackage);
25012ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        intent.writeToParcel(data, 0);
25022ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeString(resolvedType);
25032ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeStrongBinder(resultTo);
25042ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeString(resultWho);
25052ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeInt(requestCode);
2506a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        data.writeInt(startFlags);
25072ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        config.writeToParcel(data, 0);
2508a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
2509a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
2510a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
2511a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
2512a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
2513a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
25144120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(userId);
25152ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0);
25162ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        reply.readException();
25172ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        int result = reply.readInt();
25182ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        reply.recycle();
25192ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.recycle();
25202ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        return result;
25212ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn    }
2522fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn    public int startActivityIntentSender(IApplicationThread caller,
2523fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn            IntentSender intent, Intent fillInIntent, String resolvedType,
2524bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            IBinder resultTo, String resultWho, int requestCode,
2525a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int flagsMask, int flagsValues, Bundle options) throws RemoteException {
2526bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        Parcel data = Parcel.obtain();
2527bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        Parcel reply = Parcel.obtain();
2528bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
2529bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
2530bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        intent.writeToParcel(data, 0);
2531bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        if (fillInIntent != null) {
2532bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            data.writeInt(1);
2533bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            fillInIntent.writeToParcel(data, 0);
2534bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        } else {
2535bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            data.writeInt(0);
2536bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        }
2537bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeString(resolvedType);
2538bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeStrongBinder(resultTo);
2539bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeString(resultWho);
2540bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeInt(requestCode);
2541bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeInt(flagsMask);
2542bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeInt(flagsValues);
2543a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
2544a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
2545a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
2546a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
2547a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
2548a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
2549fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn        mRemote.transact(START_ACTIVITY_INTENT_SENDER_TRANSACTION, data, reply, 0);
2550bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        reply.readException();
2551bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        int result = reply.readInt();
2552bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        reply.recycle();
2553bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.recycle();
2554bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        return result;
2555bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn    }
255691097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn    public int startVoiceActivity(String callingPackage, int callingPid, int callingUid,
255791097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            Intent intent, String resolvedType, IVoiceInteractionSession session,
25581b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            IVoiceInteractor interactor, int startFlags, ProfilerInfo profilerInfo,
25591b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            Bundle options, int userId) throws RemoteException {
256091097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        Parcel data = Parcel.obtain();
256191097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        Parcel reply = Parcel.obtain();
256291097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
256391097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        data.writeString(callingPackage);
256491097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        data.writeInt(callingPid);
256591097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        data.writeInt(callingUid);
256691097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        intent.writeToParcel(data, 0);
256791097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        data.writeString(resolvedType);
256891097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        data.writeStrongBinder(session.asBinder());
256991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        data.writeStrongBinder(interactor.asBinder());
257091097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        data.writeInt(startFlags);
25711b012d302b56b4adf950035136d1d191a1936d5aJeff Hao        if (profilerInfo != null) {
257291097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            data.writeInt(1);
25731b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
257491097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        } else {
257591097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            data.writeInt(0);
257691097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        }
257791097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        if (options != null) {
257891097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            data.writeInt(1);
257991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            options.writeToParcel(data, 0);
258091097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        } else {
258191097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn            data.writeInt(0);
258291097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        }
258391097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        data.writeInt(userId);
258491097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        mRemote.transact(START_VOICE_ACTIVITY_TRANSACTION, data, reply, 0);
258591097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        reply.readException();
258691097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        int result = reply.readInt();
258791097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        reply.recycle();
258891097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        data.recycle();
258991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn        return result;
259091097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn    }
25919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean startNextMatchingActivity(IBinder callingActivity,
2592a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Intent intent, Bundle options) throws RemoteException {
25939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
25949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
25959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
25969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(callingActivity);
25979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
2598a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
2599a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
2600a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
2601a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
2602a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
2603a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
26049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(START_NEXT_MATCHING_ACTIVITY_TRANSACTION, data, reply, 0);
26059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
26069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int result = reply.readInt();
26079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
26089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
26099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return result != 0;
26109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2611dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner    public int startActivityFromRecents(int taskId, Bundle options) throws RemoteException {
2612dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        Parcel data = Parcel.obtain();
2613dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        Parcel reply = Parcel.obtain();
2614dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
2615dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        data.writeInt(taskId);
2616dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        if (options == null) {
2617dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner            data.writeInt(0);
2618dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        } else {
2619dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner            data.writeInt(1);
2620dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner            options.writeToParcel(data, 0);
2621dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        }
2622dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        mRemote.transact(START_ACTIVITY_FROM_RECENTS_TRANSACTION, data, reply, 0);
2623dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        reply.readException();
2624dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        int result = reply.readInt();
2625dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        reply.recycle();
2626dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        data.recycle();
2627dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner        return result;
2628dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner    }
26293b3f464445d1d369c8e87f526deba606ca62f76cWinson Chung    public boolean finishActivity(IBinder token, int resultCode, Intent resultData, boolean finishTask)
26309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
26319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
26329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
26339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
26349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
26359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(resultCode);
26369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (resultData != null) {
26379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(1);
26389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            resultData.writeToParcel(data, 0);
26399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } else {
26409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(0);
26419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
26423b3f464445d1d369c8e87f526deba606ca62f76cWinson Chung        data.writeInt(finishTask ? 1 : 0);
26439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(FINISH_ACTIVITY_TRANSACTION, data, reply, 0);
26449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
26459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
26469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
26479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
26489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
26499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void finishSubActivity(IBinder token, String resultWho, int requestCode) throws RemoteException
26519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
26529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
26539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
26549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
26559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
26569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultWho);
26579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(requestCode);
26589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(FINISH_SUB_ACTIVITY_TRANSACTION, data, reply, 0);
26599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
26609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
26619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
26629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2663ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn    public boolean finishActivityAffinity(IBinder token) throws RemoteException {
2664ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        Parcel data = Parcel.obtain();
2665ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        Parcel reply = Parcel.obtain();
2666ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
2667ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        data.writeStrongBinder(token);
2668ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        mRemote.transact(FINISH_ACTIVITY_AFFINITY_TRANSACTION, data, reply, 0);
2669ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        reply.readException();
2670ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        boolean res = reply.readInt() != 0;
2671ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        data.recycle();
2672ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        reply.recycle();
2673ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        return res;
2674ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn    }
26756ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn    public void finishVoiceTask(IVoiceInteractionSession session) throws RemoteException {
26766ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn        Parcel data = Parcel.obtain();
26776ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn        Parcel reply = Parcel.obtain();
26786ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
26796ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn        data.writeStrongBinder(session.asBinder());
26806ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn        mRemote.transact(FINISH_VOICE_TASK_TRANSACTION, data, reply, 0);
26816ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn        reply.readException();
26826ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn        data.recycle();
26836ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn        reply.recycle();
26846ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn    }
268589ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn    public boolean releaseActivityInstance(IBinder token) throws RemoteException {
268689ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        Parcel data = Parcel.obtain();
268789ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        Parcel reply = Parcel.obtain();
268889ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
268989ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        data.writeStrongBinder(token);
269089ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        mRemote.transact(RELEASE_ACTIVITY_INSTANCE_TRANSACTION, data, reply, 0);
269189ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        reply.readException();
269289ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        boolean res = reply.readInt() != 0;
269389ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        data.recycle();
269489ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        reply.recycle();
269589ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        return res;
269689ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn    }
269789ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn    public void releaseSomeActivities(IApplicationThread app) throws RemoteException {
269889ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        Parcel data = Parcel.obtain();
269989ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        Parcel reply = Parcel.obtain();
270089ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
270189ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        data.writeStrongBinder(app.asBinder());
270289ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        mRemote.transact(RELEASE_SOME_ACTIVITIES_TRANSACTION, data, reply, 0);
270389ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        reply.readException();
270489ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        data.recycle();
270589ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn        reply.recycle();
270689ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn    }
2707061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn    public boolean willActivityBeVisible(IBinder token) throws RemoteException {
2708061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        Parcel data = Parcel.obtain();
2709061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        Parcel reply = Parcel.obtain();
2710061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
2711061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        data.writeStrongBinder(token);
2712061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        mRemote.transact(WILL_ACTIVITY_BE_VISIBLE_TRANSACTION, data, reply, 0);
2713061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        reply.readException();
2714061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        boolean res = reply.readInt() != 0;
2715061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        data.recycle();
2716061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        reply.recycle();
2717061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        return res;
2718061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn    }
27196c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn    public Intent registerReceiver(IApplicationThread caller, String packageName,
27209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentReceiver receiver,
272120e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            IntentFilter filter, String perm, int userId) throws RemoteException
27229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
27239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
27249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
27259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
27269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
27276c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        data.writeString(packageName);
27289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(receiver != null ? receiver.asBinder() : null);
27299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        filter.writeToParcel(data, 0);
27309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(perm);
273120e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn        data.writeInt(userId);
27329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(REGISTER_RECEIVER_TRANSACTION, data, reply, 0);
27339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
27349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Intent intent = null;
27359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int haveIntent = reply.readInt();
27369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (haveIntent != 0) {
27379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            intent = Intent.CREATOR.createFromParcel(reply);
27389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
27399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
27409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
27419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return intent;
27429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void unregisterReceiver(IIntentReceiver receiver) throws RemoteException
27449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
27459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
27469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
27479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
27489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(receiver.asBinder());
27499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UNREGISTER_RECEIVER_TRANSACTION, data, reply, 0);
27509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
27519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
27529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
27539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int broadcastIntent(IApplicationThread caller,
27559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent, String resolvedType,  IIntentReceiver resultTo,
27569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode, String resultData, Bundle map,
2757f51f61269aacdfcf737b2c32b6b216c48ab61e65Dianne Hackborn            String requiredPermission, int appOp, boolean serialized,
2758742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            boolean sticky, int userId) throws RemoteException
27599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
27609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
27619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
27629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
27639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
27649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
27659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
27669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(resultTo != null ? resultTo.asBinder() : null);
27679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(resultCode);
27689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultData);
27699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(map);
27709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(requiredPermission);
2771f51f61269aacdfcf737b2c32b6b216c48ab61e65Dianne Hackborn        data.writeInt(appOp);
27729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(serialized ? 1 : 0);
27739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(sticky ? 1 : 0);
2774742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani        data.writeInt(userId);
27759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(BROADCAST_INTENT_TRANSACTION, data, reply, 0);
27769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
27779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
27789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
27799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
27809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
27819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2782742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani    public void unbroadcastIntent(IApplicationThread caller, Intent intent, int userId)
2783742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            throws RemoteException
27849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
27859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
27869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
27879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
27889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
27899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
2790742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani        data.writeInt(userId);
27919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UNBROADCAST_INTENT_TRANSACTION, data, reply, 0);
27929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
27939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
27949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
27959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void finishReceiver(IBinder who, int resultCode, String resultData, Bundle map, boolean abortBroadcast) throws RemoteException
27979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
27989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
27999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(who);
28029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(resultCode);
28039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultData);
28049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(map);
28059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(abortBroadcast ? 1 : 0);
28069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(FINISH_RECEIVER_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
28079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void attachApplication(IApplicationThread app) throws RemoteException
28129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
28139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(app.asBinder());
28179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ATTACH_APPLICATION_TRANSACTION, data, reply, 0);
28189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
282262f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn    public void activityIdle(IBinder token, Configuration config, boolean stopProfiling)
282362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            throws RemoteException
28249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
28259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
2829e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn        if (config != null) {
2830e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            data.writeInt(1);
2831e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            config.writeToParcel(data, 0);
2832e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn        } else {
2833e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            data.writeInt(0);
2834e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn        }
283562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        data.writeInt(stopProfiling ? 1 : 0);
28369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ACTIVITY_IDLE_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
28379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2841ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn    public void activityResumed(IBinder token) throws RemoteException
2842ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn    {
2843ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn        Parcel data = Parcel.obtain();
2844ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn        Parcel reply = Parcel.obtain();
2845ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
2846ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn        data.writeStrongBinder(token);
2847ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn        mRemote.transact(ACTIVITY_RESUMED_TRANSACTION, data, reply, 0);
2848ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn        reply.readException();
2849ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn        data.recycle();
2850ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn        reply.recycle();
2851ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn    }
2852a4e102ee580282dc7abeb22f4a025813e53b9431Dianne Hackborn    public void activityPaused(IBinder token) throws RemoteException
28539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
28549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
28589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ACTIVITY_PAUSED_TRANSACTION, data, reply, 0);
28599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28630aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn    public void activityStopped(IBinder token, Bundle state,
2864a002604af0c9b1204556610537b85685d7055996Craig Mautner            PersistableBundle persistentState, CharSequence description) throws RemoteException
28659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
28669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
28700aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn        data.writeBundle(state);
2871a002604af0c9b1204556610537b85685d7055996Craig Mautner        data.writePersistableBundle(persistentState);
28729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TextUtils.writeToParcel(description, data, 0);
28739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ACTIVITY_STOPPED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
28749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28784eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn    public void activitySlept(IBinder token) throws RemoteException
28794eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn    {
28804eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        Parcel data = Parcel.obtain();
28814eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        Parcel reply = Parcel.obtain();
28824eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
28834eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        data.writeStrongBinder(token);
28844eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        mRemote.transact(ACTIVITY_SLEPT_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
28854eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        reply.readException();
28864eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        data.recycle();
28874eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        reply.recycle();
28884eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn    }
28899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void activityDestroyed(IBinder token) throws RemoteException
28909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
28919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
28959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ACTIVITY_DESTROYED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
28969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getCallingPackage(IBinder token) throws RemoteException
29019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
29029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
29039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
29049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
29059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
29069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_CALLING_PACKAGE_TRANSACTION, data, reply, 0);
29079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
29089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String res = reply.readString();
29099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
29109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
29119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
29129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ComponentName getCallingActivity(IBinder token)
29149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
29159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
29169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
29179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
29189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
29199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_CALLING_ACTIVITY_TRANSACTION, data, reply, 0);
29209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
29219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName res = ComponentName.readFromParcel(reply);
29229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
29239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
29249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
29259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2926885fbe5c070cf1579c96ab8e150449af00e16501Dianne Hackborn    public List<IAppTask> getAppTasks(String callingPackage) throws RemoteException {
29271147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        Parcel data = Parcel.obtain();
29281147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        Parcel reply = Parcel.obtain();
29291147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        data.writeInterfaceToken(IActivityManager.descriptor);
2930885fbe5c070cf1579c96ab8e150449af00e16501Dianne Hackborn        data.writeString(callingPackage);
29311147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        mRemote.transact(GET_APP_TASKS_TRANSACTION, data, reply, 0);
29321147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        reply.readException();
29331147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        ArrayList<IAppTask> list = null;
29341147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        int N = reply.readInt();
29351147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        if (N >= 0) {
29361147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            list = new ArrayList<IAppTask>();
29371147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            while (N > 0) {
29381147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung                IAppTask task = IAppTask.Stub.asInterface(reply.readStrongBinder());
29391147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung                list.add(task);
29401147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung                N--;
29411147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung            }
29421147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        }
29431147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        data.recycle();
29441147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        reply.recycle();
29451147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung        return list;
29461147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung    }
2947aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn    public int addAppTask(IBinder activityToken, Intent intent,
2948aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn            ActivityManager.TaskDescription description, Bitmap thumbnail) throws RemoteException {
2949aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        Parcel data = Parcel.obtain();
2950aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        Parcel reply = Parcel.obtain();
2951aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
2952aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        data.writeStrongBinder(activityToken);
2953aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        intent.writeToParcel(data, 0);
2954aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        description.writeToParcel(data, 0);
2955aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        thumbnail.writeToParcel(data, 0);
2956aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        mRemote.transact(ADD_APP_TASK_TRANSACTION, data, reply, 0);
2957aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        reply.readException();
2958aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        int res = reply.readInt();
2959aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        data.recycle();
2960aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        reply.recycle();
2961aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        return res;
2962aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn    }
2963aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn    public Point getAppTaskThumbnailSize() throws RemoteException {
2964aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        Parcel data = Parcel.obtain();
2965aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        Parcel reply = Parcel.obtain();
2966aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
2967aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        mRemote.transact(GET_APP_TASK_THUMBNAIL_SIZE_TRANSACTION, data, reply, 0);
2968aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        reply.readException();
2969aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        Point size = Point.CREATOR.createFromParcel(reply);
2970aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        data.recycle();
2971aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        reply.recycle();
2972aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn        return size;
2973aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn    }
297409233289624a85093b1d99e4a6a149bf09059d8dDianne Hackborn    public List getTasks(int maxNum, int flags) throws RemoteException {
29759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
29769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
29779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
29789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(maxNum);
29799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
29809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_TASKS_TRANSACTION, data, reply, 0);
29819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
29829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ArrayList list = null;
29839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int N = reply.readInt();
29849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (N >= 0) {
29859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            list = new ArrayList();
29869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            while (N > 0) {
29879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ActivityManager.RunningTaskInfo info =
29889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        ActivityManager.RunningTaskInfo.CREATOR
29891147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung                                .createFromParcel(reply);
29909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                list.add(info);
29919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                N--;
29929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
29939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
29949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
29959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
29969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return list;
29979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum,
29998264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int flags, int userId) throws RemoteException {
30009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(maxNum);
30049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
30058264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeInt(userId);
30069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_RECENT_TASKS_TRANSACTION, data, reply, 0);
30079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ArrayList<ActivityManager.RecentTaskInfo> list
30099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            = reply.createTypedArrayList(ActivityManager.RecentTaskInfo.CREATOR);
30109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return list;
30139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3014c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner    public ActivityManager.TaskThumbnail getTaskThumbnail(int id) throws RemoteException {
3015d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        Parcel data = Parcel.obtain();
3016d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        Parcel reply = Parcel.obtain();
3017d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3018d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        data.writeInt(id);
3019c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner        mRemote.transact(GET_TASK_THUMBNAIL_TRANSACTION, data, reply, 0);
3020d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        reply.readException();
3021c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner        ActivityManager.TaskThumbnail taskThumbnail = null;
3022d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        if (reply.readInt() != 0) {
3023c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner            taskThumbnail = ActivityManager.TaskThumbnail.CREATOR.createFromParcel(reply);
3024d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        }
3025d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        data.recycle();
3026d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        reply.recycle();
3027c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner        return taskThumbnail;
302815491c6a728131e322c45bc440500a8a78e4a410Dianne Hackborn    }
30299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List getServices(int maxNum, int flags) throws RemoteException {
30309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(maxNum);
30349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
30359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_SERVICES_TRANSACTION, data, reply, 0);
30369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ArrayList list = null;
30389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int N = reply.readInt();
30399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (N >= 0) {
30409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            list = new ArrayList();
30419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            while (N > 0) {
30429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ActivityManager.RunningServiceInfo info =
30439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        ActivityManager.RunningServiceInfo.CREATOR
30449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .createFromParcel(reply);
30459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                list.add(info);
30469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                N--;
30479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
30489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
30499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return list;
30529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState()
30549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
30559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_PROCESSES_IN_ERROR_STATE_TRANSACTION, data, reply, 0);
30599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ArrayList<ActivityManager.ProcessErrorStateInfo> list
30619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            = reply.createTypedArrayList(ActivityManager.ProcessErrorStateInfo.CREATOR);
30629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return list;
30659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses()
30679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
30689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_RUNNING_APP_PROCESSES_TRANSACTION, data, reply, 0);
30729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ArrayList<ActivityManager.RunningAppProcessInfo> list
30749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        = reply.createTypedArrayList(ActivityManager.RunningAppProcessInfo.CREATOR);
30759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return list;
30789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3079f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu    public List<ApplicationInfo> getRunningExternalApplications()
3080f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            throws RemoteException {
3081f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        Parcel data = Parcel.obtain();
3082f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        Parcel reply = Parcel.obtain();
3083f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        data.writeInterfaceToken(IActivityManager.descriptor);
3084f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        mRemote.transact(GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION, data, reply, 0);
3085f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        reply.readException();
3086f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        ArrayList<ApplicationInfo> list
3087f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        = reply.createTypedArrayList(ApplicationInfo.CREATOR);
3088f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        data.recycle();
3089f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        reply.recycle();
3090f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        return list;
3091f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu    }
30928078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn    public void moveTaskToFront(int task, int flags, Bundle options) throws RemoteException
30939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
30949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(task);
3098621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeInt(flags);
30998078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn        if (options != null) {
31008078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            data.writeInt(1);
31018078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            options.writeToParcel(data, 0);
31028078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn        } else {
31038078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            data.writeInt(0);
31048078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn        }
31059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(MOVE_TASK_TO_FRONT_TRANSACTION, data, reply, 0);
31069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
31079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
31099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void moveTaskToBack(int task) throws RemoteException
31119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
31129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
31139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
31149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
31159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(task);
31169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(MOVE_TASK_TO_BACK_TRANSACTION, data, reply, 0);
31179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
31189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
31209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean moveActivityTaskToBack(IBinder token, boolean nonRoot)
31229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
31239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
31249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
31259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
31269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
31279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(nonRoot ? 1 : 0);
31289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION, data, reply, 0);
31299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
31309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
31319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
31339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
31349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void moveTaskBackwards(int task) throws RemoteException
31369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
31379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
31389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
31399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
31409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(task);
31419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(MOVE_TASK_BACKWARDS_TRANSACTION, data, reply, 0);
31429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
31439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
31459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3146c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner    @Override
3147c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner    public void moveTaskToStack(int taskId, int stackId, boolean toTop) throws RemoteException
3148c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner    {
3149c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        Parcel data = Parcel.obtain();
3150c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        Parcel reply = Parcel.obtain();
3151967212cb542e6eeb308678367b53381bff984c31Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
3152c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        data.writeInt(taskId);
3153c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        data.writeInt(stackId);
3154c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        data.writeInt(toTop ? 1 : 0);
3155c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        mRemote.transact(MOVE_TASK_TO_STACK_TRANSACTION, data, reply, 0);
3156c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        reply.readException();
3157c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        data.recycle();
3158c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        reply.recycle();
3159c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner    }
3160c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner    @Override
3161bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner    public void resizeStack(int stackBoxId, Rect r) throws RemoteException
3162c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner    {
3163c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        Parcel data = Parcel.obtain();
3164c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        Parcel reply = Parcel.obtain();
3165967212cb542e6eeb308678367b53381bff984c31Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
31665a449154d1795abe8e44b7bfe821d640b145e2c6Craig Mautner        data.writeInt(stackBoxId);
3167bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner        r.writeToParcel(data, 0);
3168cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        mRemote.transact(RESIZE_STACK_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
3169c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        reply.readException();
3170c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        data.recycle();
3171c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner        reply.recycle();
3172c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner    }
3173967212cb542e6eeb308678367b53381bff984c31Craig Mautner    @Override
3174bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner    public List<StackInfo> getAllStackInfos() throws RemoteException
31755ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner    {
31765ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner        Parcel data = Parcel.obtain();
31775ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner        Parcel reply = Parcel.obtain();
31785ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
3179bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner        mRemote.transact(GET_ALL_STACK_INFOS_TRANSACTION, data, reply, 0);
31805ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner        reply.readException();
3181bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner        ArrayList<StackInfo> list = reply.createTypedArrayList(StackInfo.CREATOR);
3182967212cb542e6eeb308678367b53381bff984c31Craig Mautner        data.recycle();
3183967212cb542e6eeb308678367b53381bff984c31Craig Mautner        reply.recycle();
3184967212cb542e6eeb308678367b53381bff984c31Craig Mautner        return list;
3185967212cb542e6eeb308678367b53381bff984c31Craig Mautner    }
3186cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner    @Override
3187bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner    public StackInfo getStackInfo(int stackId) throws RemoteException
3188fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner    {
3189fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        Parcel data = Parcel.obtain();
3190fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        Parcel reply = Parcel.obtain();
3191fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
3192bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner        data.writeInt(stackId);
3193bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner        mRemote.transact(GET_STACK_INFO_TRANSACTION, data, reply, 0);
3194fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        reply.readException();
3195fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        int res = reply.readInt();
3196bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner        StackInfo info = null;
3197fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        if (res != 0) {
3198bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner            info = StackInfo.CREATOR.createFromParcel(reply);
3199fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        }
3200fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        data.recycle();
3201fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        reply.recycle();
3202fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner        return info;
3203fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner    }
3204fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner    @Override
3205303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung    public boolean isInHomeStack(int taskId) throws RemoteException {
3206303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        Parcel data = Parcel.obtain();
3207303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        Parcel reply = Parcel.obtain();
3208303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        data.writeInterfaceToken(IActivityManager.descriptor);
3209303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        data.writeInt(taskId);
3210303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        mRemote.transact(IS_IN_HOME_STACK_TRANSACTION, data, reply, 0);
3211303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        reply.readException();
3212303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        boolean isInHomeStack = reply.readInt() > 0;
3213303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        data.recycle();
3214303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        reply.recycle();
3215303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung        return isInHomeStack;
3216303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung    }
3217303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung    @Override
3218cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner    public void setFocusedStack(int stackId) throws RemoteException
3219cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner    {
3220cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        Parcel data = Parcel.obtain();
3221cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        Parcel reply = Parcel.obtain();
3222cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
3223cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        data.writeInt(stackId);
3224cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        mRemote.transact(SET_FOCUSED_STACK_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
3225cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        reply.readException();
3226cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        data.recycle();
3227cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner        reply.recycle();
3228cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner    }
32299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int getTaskForActivity(IBinder token, boolean onlyRoot) throws RemoteException
32309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
32319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
32329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
32339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
32349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
32359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(onlyRoot ? 1 : 0);
32369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_TASK_FOR_ACTIVITY_TRANSACTION, data, reply, 0);
32379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
32389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
32399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
32409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
32419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
32429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ContentProviderHolder getContentProvider(IApplicationThread caller,
32446d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey            String name, int userId, boolean stable) throws RemoteException {
32459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
32469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
32479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
32489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
32499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(name);
32506d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey        data.writeInt(userId);
32516ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInt(stable ? 1 : 0);
32529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_CONTENT_PROVIDER_TRANSACTION, data, reply, 0);
32539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
32549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
32559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ContentProviderHolder cph = null;
32569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (res != 0) {
32579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            cph = ContentProviderHolder.CREATOR.createFromParcel(reply);
32589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
32599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
32609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
32619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return cph;
32629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32636d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey    public ContentProviderHolder getContentProviderExternal(String name, int userId, IBinder token)
32646d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey            throws RemoteException {
326525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        Parcel data = Parcel.obtain();
326625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        Parcel reply = Parcel.obtain();
326725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeInterfaceToken(IActivityManager.descriptor);
326825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeString(name);
32696d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey        data.writeInt(userId);
327025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeStrongBinder(token);
327125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        mRemote.transact(GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION, data, reply, 0);
327225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        reply.readException();
327325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        int res = reply.readInt();
327425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        ContentProviderHolder cph = null;
327525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        if (res != 0) {
327625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            cph = ContentProviderHolder.CREATOR.createFromParcel(reply);
327725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        }
327825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.recycle();
327925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        reply.recycle();
328025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        return cph;
328125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov    }
32829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void publishContentProviders(IApplicationThread caller,
32836ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            List<ContentProviderHolder> providers) throws RemoteException
32849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
32859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
32869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
32879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
32889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
32899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeTypedList(providers);
32909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(PUBLISH_CONTENT_PROVIDERS_TRANSACTION, data, reply, 0);
32919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
32929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
32939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
32949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32956ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    public boolean refContentProvider(IBinder connection, int stable, int unstable)
32966ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            throws RemoteException {
32979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
32989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
32999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
33006ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeStrongBinder(connection);
33016ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInt(stable);
33026ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInt(unstable);
33036ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        mRemote.transact(REF_CONTENT_PROVIDER_TRANSACTION, data, reply, 0);
33046ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        reply.readException();
33056ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        boolean res = reply.readInt() != 0;
33066ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.recycle();
33076ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        reply.recycle();
33086ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        return res;
33096ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    }
33107aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey
33116ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    public void unstableProviderDied(IBinder connection) throws RemoteException {
33126ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        Parcel data = Parcel.obtain();
33136ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        Parcel reply = Parcel.obtain();
33146ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
33156ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeStrongBinder(connection);
33166ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        mRemote.transact(UNSTABLE_PROVIDER_DIED_TRANSACTION, data, reply, 0);
33176ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        reply.readException();
33186ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.recycle();
33196ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        reply.recycle();
33206ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    }
33216ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn
33227aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey    @Override
33237aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey    public void appNotRespondingViaProvider(IBinder connection) throws RemoteException {
33247aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey        Parcel data = Parcel.obtain();
33257aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey        Parcel reply = Parcel.obtain();
33267aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey        data.writeInterfaceToken(IActivityManager.descriptor);
33277aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey        data.writeStrongBinder(connection);
33287aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey        mRemote.transact(APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION, data, reply, 0);
33297aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey        reply.readException();
33307aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey        data.recycle();
33317aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey        reply.recycle();
33327aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey    }
33337aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey
33346ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    public void removeContentProvider(IBinder connection, boolean stable) throws RemoteException {
33356ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        Parcel data = Parcel.obtain();
33366ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        Parcel reply = Parcel.obtain();
33376ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
33386ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeStrongBinder(connection);
33396ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInt(stable ? 1 : 0);
33409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(REMOVE_CONTENT_PROVIDER_TRANSACTION, data, reply, 0);
33419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
33429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
33439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
33449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
334525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov
334625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov    public void removeContentProviderExternal(String name, IBinder token) throws RemoteException {
334725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        Parcel data = Parcel.obtain();
334825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        Parcel reply = Parcel.obtain();
334925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeInterfaceToken(IActivityManager.descriptor);
335025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeString(name);
335125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeStrongBinder(token);
335225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        mRemote.transact(REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION, data, reply, 0);
335325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        reply.readException();
335425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.recycle();
335525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        reply.recycle();
335625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov    }
335725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov
3358dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn    public PendingIntent getRunningServiceControlPanel(ComponentName service)
3359dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            throws RemoteException
3360dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn    {
3361dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        Parcel data = Parcel.obtain();
3362dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        Parcel reply = Parcel.obtain();
3363dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3364dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        service.writeToParcel(data, 0);
3365dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        mRemote.transact(GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION, data, reply, 0);
3366dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        reply.readException();
3367dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        PendingIntent res = PendingIntent.readPendingIntentOrNullFromParcel(reply);
3368dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        data.recycle();
3369dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        reply.recycle();
3370dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        return res;
3371dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn    }
3372dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn
33739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ComponentName startService(IApplicationThread caller, Intent service,
33747767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            String resolvedType, int userId) throws RemoteException
33759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
33769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
33779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
33789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
33799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
33809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        service.writeToParcel(data, 0);
33819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
33827767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        data.writeInt(userId);
33839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(START_SERVICE_TRANSACTION, data, reply, 0);
33849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
33859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName res = ComponentName.readFromParcel(reply);
33869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
33879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
33889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
33899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
33909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int stopService(IApplicationThread caller, Intent service,
33917767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            String resolvedType, int userId) throws RemoteException
33929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
33939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
33949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
33959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
33969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
33979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        service.writeToParcel(data, 0);
33989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
33997767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        data.writeInt(userId);
34009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(STOP_SERVICE_TRANSACTION, data, reply, 0);
34019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
34029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
34039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
34049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
34059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
34069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean stopServiceToken(ComponentName className, IBinder token,
34089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int startId) throws RemoteException {
34099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
34109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
34119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
34129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName.writeToParcel(className, data);
34139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
34149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(startId);
34159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(STOP_SERVICE_TOKEN_TRANSACTION, data, reply, 0);
34169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
34179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
34189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
34199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
34209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
34219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setServiceForeground(ComponentName className, IBinder token,
3423d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            int id, Notification notification, boolean removeNotification) throws RemoteException {
34249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
34259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
34269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
34279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName.writeToParcel(className, data);
34289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
3429d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn        data.writeInt(id);
3430d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn        if (notification != null) {
3431d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            data.writeInt(1);
3432d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            notification.writeToParcel(data, 0);
3433d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn        } else {
3434d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            data.writeInt(0);
3435d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn        }
3436d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn        data.writeInt(removeNotification ? 1 : 0);
34379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_SERVICE_FOREGROUND_TRANSACTION, data, reply, 0);
34389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
34399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
34409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
34419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int bindService(IApplicationThread caller, IBinder token,
34439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent service, String resolvedType, IServiceConnection connection,
344437ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani            int flags, int userId) throws RemoteException {
34459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
34469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
34479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
34489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
34499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
34509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        service.writeToParcel(data, 0);
34519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
34529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(connection.asBinder());
34539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
345437ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani        data.writeInt(userId);
34559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(BIND_SERVICE_TRANSACTION, data, reply, 0);
34569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
34579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
34589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
34599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
34609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
34619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean unbindService(IServiceConnection connection) throws RemoteException
34639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
34649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
34659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
34669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
34679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(connection.asBinder());
34689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UNBIND_SERVICE_TRANSACTION, data, reply, 0);
34699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
34709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
34719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
34729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
34739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
34749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void publishService(IBinder token,
34779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent, IBinder service) throws RemoteException {
34789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
34799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
34809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
34819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
34829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
34839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(service);
34849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(PUBLISH_SERVICE_TRANSACTION, data, reply, 0);
34859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
34869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
34879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
34889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
34899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
34909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void unbindFinished(IBinder token, Intent intent, boolean doRebind)
34919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
34929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
34939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
34949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
34959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
34969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
34979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(doRebind ? 1 : 0);
34989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UNBIND_FINISHED_TRANSACTION, data, reply, 0);
34999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
35009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
35019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
35029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3504f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn    public void serviceDoneExecuting(IBinder token, int type, int startId,
3505f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            int res) throws RemoteException {
35069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
35079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
35089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
35099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
3510f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn        data.writeInt(type);
3511f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn        data.writeInt(startId);
3512f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn        data.writeInt(res);
35139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SERVICE_DONE_EXECUTING_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
35149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
35159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
35169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
35179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public IBinder peekService(Intent service, String resolvedType) throws RemoteException {
35209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
35219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
35229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
35239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        service.writeToParcel(data, 0);
35249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
35259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(PEEK_SERVICE_TRANSACTION, data, reply, 0);
35269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
35279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        IBinder binder = reply.readStrongBinder();
35289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
35299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
35309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return binder;
35319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
35329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3533181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    public boolean bindBackupAgent(ApplicationInfo app, int backupRestoreMode)
3534181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            throws RemoteException {
3535181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel data = Parcel.obtain();
3536181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel reply = Parcel.obtain();
3537181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
3538181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        app.writeToParcel(data, 0);
3539181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInt(backupRestoreMode);
3540181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        mRemote.transact(START_BACKUP_AGENT_TRANSACTION, data, reply, 0);
3541181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        reply.readException();
3542181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        boolean success = reply.readInt() != 0;
3543181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        reply.recycle();
3544181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.recycle();
3545181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        return success;
3546181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    }
3547181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
3548346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate    public void clearPendingBackup() throws RemoteException {
3549346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate        Parcel data = Parcel.obtain();
3550346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate        Parcel reply = Parcel.obtain();
3551346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
3552346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate        mRemote.transact(CLEAR_PENDING_BACKUP_TRANSACTION, data, reply, 0);
3553346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate        reply.recycle();
3554346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate        data.recycle();
3555346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate    }
3556346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate
3557181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    public void backupAgentCreated(String packageName, IBinder agent) throws RemoteException {
3558181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel data = Parcel.obtain();
3559181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel reply = Parcel.obtain();
3560181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
3561181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeString(packageName);
3562181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeStrongBinder(agent);
3563181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        mRemote.transact(BACKUP_AGENT_CREATED_TRANSACTION, data, reply, 0);
3564181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        reply.recycle();
3565181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.recycle();
3566181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    }
3567181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
3568181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    public void unbindBackupAgent(ApplicationInfo app) throws RemoteException {
3569181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel data = Parcel.obtain();
3570181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel reply = Parcel.obtain();
3571181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
3572181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        app.writeToParcel(data, 0);
3573181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        mRemote.transact(UNBIND_BACKUP_AGENT_TRANSACTION, data, reply, 0);
3574181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        reply.readException();
3575181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        reply.recycle();
3576181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.recycle();
3577181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    }
3578181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
35799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean startInstrumentation(ComponentName className, String profileFile,
358080943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov            int flags, Bundle arguments, IInstrumentationWatcher watcher,
35818dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath            IUiAutomationConnection connection, int userId, String instructionSet)
35828dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath            throws RemoteException {
35839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
35849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
35859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
35869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName.writeToParcel(className, data);
35879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(profileFile);
35889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
35899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(arguments);
35909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(watcher != null ? watcher.asBinder() : null);
359180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov        data.writeStrongBinder(connection != null ? connection.asBinder() : null);
35925e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInt(userId);
35938dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath        data.writeString(instructionSet);
35949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(START_INSTRUMENTATION_TRANSACTION, data, reply, 0);
35959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
35969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
35979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
35989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
35999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
36009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
36029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void finishInstrumentation(IApplicationThread target,
36039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode, Bundle results) throws RemoteException {
36049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
36059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
36069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
36079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(target != null ? target.asBinder() : null);
36089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(resultCode);
36099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(results);
36109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(FINISH_INSTRUMENTATION_TRANSACTION, data, reply, 0);
36119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
36129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
36139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
36149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public Configuration getConfiguration() throws RemoteException
36169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
36179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
36189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
36199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
36209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_CONFIGURATION_TRANSACTION, data, reply, 0);
36219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
36229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Configuration res = Configuration.CREATOR.createFromParcel(reply);
36239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
36249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
36259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
36269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void updateConfiguration(Configuration values) throws RemoteException
36289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
36299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
36309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
36319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
36329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        values.writeToParcel(data, 0);
36339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UPDATE_CONFIGURATION_TRANSACTION, data, reply, 0);
36349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
36359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
36369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
36379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setRequestedOrientation(IBinder token, int requestedOrientation)
36399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
36409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
36419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
36429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
36439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
36449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(requestedOrientation);
36459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_REQUESTED_ORIENTATION_TRANSACTION, data, reply, 0);
36469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
36479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
36489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
36499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int getRequestedOrientation(IBinder token) throws RemoteException {
36519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
36529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
36539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
36549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
36559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_REQUESTED_ORIENTATION_TRANSACTION, data, reply, 0);
36569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
36579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
36589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
36599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
36609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
36619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ComponentName getActivityClassForToken(IBinder token)
36639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
36649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
36659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
36669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
36679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
36689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION, data, reply, 0);
36699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
36709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName res = ComponentName.readFromParcel(reply);
36719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
36729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
36739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
36749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getPackageForToken(IBinder token) throws RemoteException
36769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
36779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
36789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
36799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
36809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
36819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_PACKAGE_FOR_TOKEN_TRANSACTION, data, reply, 0);
36829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
36839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String res = reply.readString();
36849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
36859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
36869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
36879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
36889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public IIntentSender getIntentSender(int type,
36899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String packageName, IBinder token, String resultWho,
36907a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn            int requestCode, Intent[] intents, String[] resolvedTypes, int flags,
36914120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            Bundle options, int userId) throws RemoteException {
36929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
36939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
36949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
36959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(type);
36969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(packageName);
36979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
36989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultWho);
36999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(requestCode);
3700621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        if (intents != null) {
37019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(1);
3702621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            data.writeTypedArray(intents, 0);
3703621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            data.writeStringArray(resolvedTypes);
37049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } else {
37059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(0);
37069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
37079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
37087a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn        if (options != null) {
37097a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn            data.writeInt(1);
37107a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn            options.writeToParcel(data, 0);
37117a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn        } else {
37127a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn            data.writeInt(0);
37137a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn        }
37144120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(userId);
37159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_INTENT_SENDER_TRANSACTION, data, reply, 0);
37169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
37179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        IIntentSender res = IIntentSender.Stub.asInterface(
37189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.readStrongBinder());
37199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
37209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
37219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
37229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void cancelIntentSender(IIntentSender sender) throws RemoteException {
37249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
37259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
37269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
37279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(sender.asBinder());
37289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(CANCEL_INTENT_SENDER_TRANSACTION, data, reply, 0);
37299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
37309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
37319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
37329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getPackageForIntentSender(IIntentSender sender) throws RemoteException {
37349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
37359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
37369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
37379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(sender.asBinder());
37389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0);
37399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
37409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String res = reply.readString();
37419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
37429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
37439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
37449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3745c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate    public int getUidForIntentSender(IIntentSender sender) throws RemoteException {
3746c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        Parcel data = Parcel.obtain();
3747c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        Parcel reply = Parcel.obtain();
3748c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
3749c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        data.writeStrongBinder(sender.asBinder());
3750c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        mRemote.transact(GET_UID_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0);
3751c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        reply.readException();
3752c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        int res = reply.readInt();
3753c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        data.recycle();
3754c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        reply.recycle();
3755c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        return res;
3756c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate    }
37574120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn    public int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll,
37584120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            boolean requireFull, String name, String callerPackage) throws RemoteException {
37594120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        Parcel data = Parcel.obtain();
37604120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        Parcel reply = Parcel.obtain();
37614120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
37624120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(callingPid);
37634120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(callingUid);
37644120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(userId);
37654120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(allowAll ? 1 : 0);
37664120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(requireFull ? 1 : 0);
37674120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeString(name);
37684120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeString(callerPackage);
37694120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        mRemote.transact(HANDLE_INCOMING_USER_TRANSACTION, data, reply, 0);
37704120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        reply.readException();
37714120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        int res = reply.readInt();
37724120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.recycle();
37734120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        reply.recycle();
37744120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        return res;
37754120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn    }
37769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setProcessLimit(int max) throws RemoteException
37779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
37789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
37799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
37809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
37819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(max);
37829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_PROCESS_LIMIT_TRANSACTION, data, reply, 0);
37839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
37849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
37859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
37869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int getProcessLimit() throws RemoteException
37889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
37899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
37909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
37919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
37929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_PROCESS_LIMIT_TRANSACTION, data, reply, 0);
37939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
37949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
37959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
37969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
37979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
37989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
37999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setProcessForeground(IBinder token, int pid,
38009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean isForeground) throws RemoteException {
38019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
38029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
38039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
38049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
38059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(pid);
38069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(isForeground ? 1 : 0);
38079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_PROCESS_FOREGROUND_TRANSACTION, data, reply, 0);
38089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
38099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
38109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
38119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int checkPermission(String permission, int pid, int uid)
38139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
38149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
38159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
38169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
38179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(permission);
38189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(pid);
38199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(uid);
38209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(CHECK_PERMISSION_TRANSACTION, data, reply, 0);
38219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
38229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
38239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
38249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
38259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
38269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean clearApplicationUserData(final String packageName,
3828742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            final IPackageDataObserver observer, final int userId) throws RemoteException {
38299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
38309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
38319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
38329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(packageName);
383331b65f9aa193c26d54c55783edcaa9a09ce65c81Christopher Tate        data.writeStrongBinder((observer != null) ? observer.asBinder() : null);
3834742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani        data.writeInt(userId);
38359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(CLEAR_APP_DATA_TRANSACTION, data, reply, 0);
38369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
38379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
38389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
38399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
38409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
38419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3842d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot    public int checkUriPermission(Uri uri, int pid, int uid, int mode, int userId)
38439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
38449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
38459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
38469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
38479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        uri.writeToParcel(data, 0);
38489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(pid);
38499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(uid);
38509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(mode);
3851d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot        data.writeInt(userId);
38529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(CHECK_URI_PERMISSION_TRANSACTION, data, reply, 0);
38539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
38549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
38559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
38569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
38579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
38589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void grantUriPermission(IApplicationThread caller, String targetPkg,
3860d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            Uri uri, int mode, int userId) throws RemoteException {
38619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
38629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
38639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
38649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller.asBinder());
38659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(targetPkg);
38669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        uri.writeToParcel(data, 0);
38679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(mode);
3868d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot        data.writeInt(userId);
38699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0);
38709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
38719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
38729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
38739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
38749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void revokeUriPermission(IApplicationThread caller, Uri uri,
3875d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int mode, int userId) throws RemoteException {
38769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
38779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
38789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
38799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller.asBinder());
38809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        uri.writeToParcel(data, 0);
38819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(mode);
3882d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot        data.writeInt(userId);
38839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(REVOKE_URI_PERMISSION_TRANSACTION, data, reply, 0);
38849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
38859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
38869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
38879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3888e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey
3889e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey    @Override
3890d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot    public void takePersistableUriPermission(Uri uri, int mode, int userId)
3891d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            throws RemoteException {
3892e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        Parcel data = Parcel.obtain();
3893e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        Parcel reply = Parcel.obtain();
3894e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        data.writeInterfaceToken(IActivityManager.descriptor);
3895e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        uri.writeToParcel(data, 0);
3896e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        data.writeInt(mode);
3897d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot        data.writeInt(userId);
3898e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        mRemote.transact(TAKE_PERSISTABLE_URI_PERMISSION_TRANSACTION, data, reply, 0);
3899e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        reply.readException();
3900e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        data.recycle();
3901e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        reply.recycle();
3902e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey    }
3903e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey
3904e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey    @Override
3905d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot    public void releasePersistableUriPermission(Uri uri, int mode, int userId)
3906d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            throws RemoteException {
3907e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        Parcel data = Parcel.obtain();
3908e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        Parcel reply = Parcel.obtain();
3909e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        data.writeInterfaceToken(IActivityManager.descriptor);
3910e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        uri.writeToParcel(data, 0);
3911e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        data.writeInt(mode);
3912d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot        data.writeInt(userId);
3913e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        mRemote.transact(RELEASE_PERSISTABLE_URI_PERMISSION_TRANSACTION, data, reply, 0);
3914e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        reply.readException();
3915e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        data.recycle();
3916e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        reply.recycle();
3917e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey    }
3918e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey
3919e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey    @Override
3920bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey    public ParceledListSlice<UriPermission> getPersistedUriPermissions(
3921bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey            String packageName, boolean incoming) throws RemoteException {
3922e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        Parcel data = Parcel.obtain();
3923e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        Parcel reply = Parcel.obtain();
3924e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        data.writeInterfaceToken(IActivityManager.descriptor);
3925bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey        data.writeString(packageName);
3926bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey        data.writeInt(incoming ? 1 : 0);
3927e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        mRemote.transact(GET_PERSISTED_URI_PERMISSIONS_TRANSACTION, data, reply, 0);
3928e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        reply.readException();
3929e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        final ParceledListSlice<UriPermission> perms = ParceledListSlice.CREATOR.createFromParcel(
3930e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey                reply);
3931e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        data.recycle();
3932e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        reply.recycle();
3933e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey        return perms;
3934e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey    }
3935e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey
39369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void showWaitingForDebugger(IApplicationThread who, boolean waiting)
39379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
39389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
39399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
39409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
39419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(who.asBinder());
39429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(waiting ? 1 : 0);
39439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SHOW_WAITING_FOR_DEBUGGER_TRANSACTION, data, reply, 0);
39449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
39459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
39469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
39479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void getMemoryInfo(ActivityManager.MemoryInfo outInfo) throws RemoteException {
39499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
39509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
39519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
39529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_MEMORY_INFO_TRANSACTION, data, reply, 0);
39539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
39549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        outInfo.readFromParcel(reply);
39559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
39569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
39579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void unhandledBack() throws RemoteException
39599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
39609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
39619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
39629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
39639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UNHANDLED_BACK_TRANSACTION, data, reply, 0);
39649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
39659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
39669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
39679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
39689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ParcelFileDescriptor openContentUri(Uri uri) throws RemoteException
39699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
39709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
39719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
39729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
39739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(OPEN_CONTENT_URI_TRANSACTION, data, reply, 0);
39749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
39759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ParcelFileDescriptor pfd = null;
39769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (reply.readInt() != 0) {
39779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            pfd = ParcelFileDescriptor.CREATOR.createFromParcel(reply);
39789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
39799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
39809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
39819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return pfd;
39829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3983ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn    public void setLockScreenShown(boolean shown) throws RemoteException
3984ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn    {
3985ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        Parcel data = Parcel.obtain();
3986ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        Parcel reply = Parcel.obtain();
3987ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3988ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        data.writeInt(shown ? 1 : 0);
3989ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        mRemote.transact(SET_LOCK_SCREEN_SHOWN_TRANSACTION, data, reply, 0);
3990ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        reply.readException();
3991ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        data.recycle();
3992ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        reply.recycle();
3993ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn    }
39949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setDebugApp(
39959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String packageName, boolean waitForDebugger, boolean persistent)
39969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        throws RemoteException
39979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
39989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
39999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
40009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
40019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(packageName);
40029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(waitForDebugger ? 1 : 0);
40039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(persistent ? 1 : 0);
40049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_DEBUG_APP_TRANSACTION, data, reply, 0);
40059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
40069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
40079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
40089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setAlwaysFinish(boolean enabled) throws RemoteException
40109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
40119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
40129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
40139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
40149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(enabled ? 1 : 0);
40159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_ALWAYS_FINISH_TRANSACTION, data, reply, 0);
40169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
40179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
40189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
40199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4020b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn    public void setActivityController(IActivityController watcher) throws RemoteException
40219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
40229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
40239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
40249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
40259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(watcher != null ? watcher.asBinder() : null);
4026b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn        mRemote.transact(SET_ACTIVITY_CONTROLLER_TRANSACTION, data, reply, 0);
40279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
40289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
40299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
40309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void enterSafeMode() throws RemoteException {
40329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
40339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
40349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ENTER_SAFE_MODE_TRANSACTION, data, null, 0);
40359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
40369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4037099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn    public void noteWakeupAlarm(IIntentSender sender, int sourceUid, String sourcePkg)
4038099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn            throws RemoteException {
40399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
40409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
4041099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn        data.writeStrongBinder(sender.asBinder());
4042099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn        data.writeInt(sourceUid);
4043099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn        data.writeString(sourcePkg);
40449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(NOTE_WAKEUP_ALARM_TRANSACTION, data, null, 0);
40459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
40469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4047648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn    public boolean killPids(int[] pids, String reason, boolean secure) throws RemoteException {
40489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
40499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
40509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
40519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeIntArray(pids);
4052e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu        data.writeString(reason);
4053648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn        data.writeInt(secure ? 1 : 0);
4054e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu        mRemote.transact(KILL_PIDS_TRANSACTION, data, reply, 0);
4055f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        reply.readException();
40569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
40579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
40589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
40599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
4060b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey    }
4061b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey    @Override
4062b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey    public boolean killProcessesBelowForeground(String reason) throws RemoteException {
4063b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        Parcel data = Parcel.obtain();
4064b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        Parcel reply = Parcel.obtain();
4065b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        data.writeInterfaceToken(IActivityManager.descriptor);
4066b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        data.writeString(reason);
4067b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        mRemote.transact(KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION, data, reply, 0);
4068b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        boolean res = reply.readInt() != 0;
4069b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        data.recycle();
4070b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        reply.recycle();
4071b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        return res;
40729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
40739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean testIsSystemReady()
40749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
40759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /* this base class version is never called */
40769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return true;
40779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
407860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor    public void handleApplicationCrash(IBinder app,
407960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException
408060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor    {
408160d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        Parcel data = Parcel.obtain();
408260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        Parcel reply = Parcel.obtain();
408360d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        data.writeInterfaceToken(IActivityManager.descriptor);
408460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        data.writeStrongBinder(app);
408560d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        crashInfo.writeToParcel(data, 0);
408660d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        mRemote.transact(HANDLE_APPLICATION_CRASH_TRANSACTION, data, reply, 0);
408760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        reply.readException();
408860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        reply.recycle();
408960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        data.recycle();
409060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor    }
4091438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick
40925232271a41323594ae406be7476b6ca2f08af3d8Dianne Hackborn    public boolean handleApplicationWtf(IBinder app, String tag, boolean system,
4093b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor            ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException
40949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
40959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
40969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
40979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
40989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(app);
40999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(tag);
41005232271a41323594ae406be7476b6ca2f08af3d8Dianne Hackborn        data.writeInt(system ? 1 : 0);
4101b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor        crashInfo.writeToParcel(data, 0);
410260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        mRemote.transact(HANDLE_APPLICATION_WTF_TRANSACTION, data, reply, 0);
41039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
410460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        boolean res = reply.readInt() != 0;
41059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
41069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
410760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        return res;
41089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4109b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor
4110438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick    public void handleApplicationStrictModeViolation(IBinder app,
411146d42387464a651268648659e91d022566d4844cBrad Fitzpatrick            int violationMask,
4112cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick            StrictMode.ViolationInfo info) throws RemoteException
4113438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick    {
4114438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        Parcel data = Parcel.obtain();
4115438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        Parcel reply = Parcel.obtain();
4116438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        data.writeInterfaceToken(IActivityManager.descriptor);
4117438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        data.writeStrongBinder(app);
411846d42387464a651268648659e91d022566d4844cBrad Fitzpatrick        data.writeInt(violationMask);
4119cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick        info.writeToParcel(data, 0);
4120438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        mRemote.transact(HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION, data, reply, 0);
4121438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        reply.readException();
4122438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        reply.recycle();
4123438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        data.recycle();
4124438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick    }
4125438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick
41269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void signalPersistentProcesses(int sig) throws RemoteException {
41279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
41289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
41299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
41309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(sig);
41319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SIGNAL_PERSISTENT_PROCESSES_TRANSACTION, data, reply, 0);
41329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
41339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
41349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
41359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
4136e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn
41371676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn    public void killBackgroundProcesses(String packageName, int userId) throws RemoteException {
413803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        Parcel data = Parcel.obtain();
413903abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        Parcel reply = Parcel.obtain();
414003abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
414103abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        data.writeString(packageName);
41421676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn        data.writeInt(userId);
414303abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        mRemote.transact(KILL_BACKGROUND_PROCESSES_TRANSACTION, data, reply, 0);
414403abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        reply.readException();
414503abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        data.recycle();
414603abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        reply.recycle();
414703abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn    }
4148e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn
4149e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn    public void killAllBackgroundProcesses() throws RemoteException {
4150e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        Parcel data = Parcel.obtain();
4151e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        Parcel reply = Parcel.obtain();
4152e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4153e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        mRemote.transact(KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION, data, reply, 0);
4154e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        reply.readException();
4155e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        data.recycle();
4156e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        reply.recycle();
4157e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn    }
4158e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn
41591676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn    public void forceStopPackage(String packageName, int userId) throws RemoteException {
41609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
41619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
41629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
41639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(packageName);
41641676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn        data.writeInt(userId);
416503abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        mRemote.transact(FORCE_STOP_PACKAGE_TRANSACTION, data, reply, 0);
41669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
41679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
41689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
41699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
417127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn    public void getMyMemoryState(ActivityManager.RunningAppProcessInfo outInfo)
417227ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            throws RemoteException
417327ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn    {
417427ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        Parcel data = Parcel.obtain();
417527ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        Parcel reply = Parcel.obtain();
417627ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
417727ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        mRemote.transact(GET_MY_MEMORY_STATE_TRANSACTION, data, reply, 0);
417827ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        reply.readException();
417927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        outInfo.readFromParcel(reply);
418027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        reply.recycle();
418127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        data.recycle();
418227ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn    }
418327ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn
41849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ConfigurationInfo getDeviceConfigurationInfo() throws RemoteException
41859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
41869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
41879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
41889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
41899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_DEVICE_CONFIGURATION_TRANSACTION, data, reply, 0);
41909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
41919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ConfigurationInfo res = ConfigurationInfo.CREATOR.createFromParcel(reply);
41929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
41939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
41949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
41959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
41961b012d302b56b4adf950035136d1d191a1936d5aJeff Hao
41971676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn    public boolean profileControl(String process, int userId, boolean start,
41981b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            ProfilerInfo profilerInfo, int profileType) throws RemoteException
4199f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project    {
4200f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        Parcel data = Parcel.obtain();
4201f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        Parcel reply = Parcel.obtain();
4202f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
4203f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.writeString(process);
42041676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn        data.writeInt(userId);
4205f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.writeInt(start ? 1 : 0);
42069a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8Romain Guy        data.writeInt(profileType);
42071b012d302b56b4adf950035136d1d191a1936d5aJeff Hao        if (profilerInfo != null) {
42089c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn            data.writeInt(1);
42091b012d302b56b4adf950035136d1d191a1936d5aJeff Hao            profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
42109c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn        } else {
42119c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn            data.writeInt(0);
42129c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn        }
4213f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        mRemote.transact(PROFILE_CONTROL_TRANSACTION, data, reply, 0);
4214f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        reply.readException();
4215f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        boolean res = reply.readInt() != 0;
4216f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        reply.recycle();
4217f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.recycle();
4218f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        return res;
4219f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project    }
42201b012d302b56b4adf950035136d1d191a1936d5aJeff Hao
422155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn    public boolean shutdown(int timeout) throws RemoteException
422255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn    {
422355280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        Parcel data = Parcel.obtain();
422455280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        Parcel reply = Parcel.obtain();
422555280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
422655280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        data.writeInt(timeout);
422755280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        mRemote.transact(SHUTDOWN_TRANSACTION, data, reply, 0);
422855280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        reply.readException();
422955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        boolean res = reply.readInt() != 0;
423055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        reply.recycle();
423155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        data.recycle();
423255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        return res;
423355280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn    }
423455280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn
423595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn    public void stopAppSwitches() throws RemoteException {
423695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        Parcel data = Parcel.obtain();
423795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        Parcel reply = Parcel.obtain();
423895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
423995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        mRemote.transact(STOP_APP_SWITCHES_TRANSACTION, data, reply, 0);
424095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        reply.readException();
424195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        reply.recycle();
424295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        data.recycle();
424395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn    }
424495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn
424595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn    public void resumeAppSwitches() throws RemoteException {
424695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        Parcel data = Parcel.obtain();
424795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        Parcel reply = Parcel.obtain();
424895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
424995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        mRemote.transact(RESUME_APP_SWITCHES_TRANSACTION, data, reply, 0);
425095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        reply.readException();
425195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        reply.recycle();
425295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        data.recycle();
425395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn    }
4254fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn
4255fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn    public void addPackageDependency(String packageName) throws RemoteException {
4256fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn        Parcel data = Parcel.obtain();
4257fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn        Parcel reply = Parcel.obtain();
4258fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4259fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn        data.writeString(packageName);
4260fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn        mRemote.transact(ADD_PACKAGE_DEPENDENCY_TRANSACTION, data, reply, 0);
4261fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn        reply.readException();
4262fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn        data.recycle();
4263fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn        reply.recycle();
4264fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn    }
4265fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn
426621d9b5669257ca931da2d383f12db4865479752aDianne Hackborn    public void killApplicationWithAppId(String pkg, int appid, String reason)
426721d9b5669257ca931da2d383f12db4865479752aDianne Hackborn            throws RemoteException {
4268261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        Parcel data = Parcel.obtain();
4269261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        Parcel reply = Parcel.obtain();
4270261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        data.writeInterfaceToken(IActivityManager.descriptor);
4271261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        data.writeString(pkg);
42725e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInt(appid);
427321d9b5669257ca931da2d383f12db4865479752aDianne Hackborn        data.writeString(reason);
42745e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        mRemote.transact(KILL_APPLICATION_WITH_APPID_TRANSACTION, data, reply, 0);
4275261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        reply.readException();
4276261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        data.recycle();
4277261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        reply.recycle();
4278261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu    }
4279a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn
4280a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn    public void closeSystemDialogs(String reason) throws RemoteException {
4281a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        Parcel data = Parcel.obtain();
4282a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        Parcel reply = Parcel.obtain();
4283a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4284a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        data.writeString(reason);
4285a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        mRemote.transact(CLOSE_SYSTEM_DIALOGS_TRANSACTION, data, reply, 0);
4286a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        reply.readException();
4287a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        data.recycle();
4288a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        reply.recycle();
4289a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn    }
42903025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn
42914f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn    public Debug.MemoryInfo[] getProcessMemoryInfo(int[] pids)
42923025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            throws RemoteException {
42933025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        Parcel data = Parcel.obtain();
42943025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        Parcel reply = Parcel.obtain();
42953025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
42964f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn        data.writeIntArray(pids);
42973025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        mRemote.transact(GET_PROCESS_MEMORY_INFO_TRANSACTION, data, reply, 0);
42983025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        reply.readException();
42994f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn        Debug.MemoryInfo[] res = reply.createTypedArray(Debug.MemoryInfo.CREATOR);
43003025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        data.recycle();
43013025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        reply.recycle();
43024f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn        return res;
43033025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn    }
43045e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate
43055e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate    public void killApplicationProcess(String processName, int uid) throws RemoteException {
43065e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        Parcel data = Parcel.obtain();
43075e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        Parcel reply = Parcel.obtain();
43085e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
43095e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        data.writeString(processName);
43105e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        data.writeInt(uid);
43115e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        mRemote.transact(KILL_APPLICATION_PROCESS_TRANSACTION, data, reply, 0);
43125e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        reply.readException();
43135e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        data.recycle();
43145e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        reply.recycle();
43155e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate    }
43165e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate
43173b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn    public void overridePendingTransition(IBinder token, String packageName,
43183b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            int enterAnim, int exitAnim) throws RemoteException {
43193b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        Parcel data = Parcel.obtain();
43203b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        Parcel reply = Parcel.obtain();
43213b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
43223b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.writeStrongBinder(token);
43233b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.writeString(packageName);
43243b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.writeInt(enterAnim);
43253b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.writeInt(exitAnim);
43263b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        mRemote.transact(OVERRIDE_PENDING_TRANSITION_TRANSACTION, data, reply, 0);
43273b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        reply.readException();
43283b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.recycle();
43293b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        reply.recycle();
43303b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn    }
43313b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn
43329327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn    public boolean isUserAMonkey() throws RemoteException {
43339327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        Parcel data = Parcel.obtain();
43349327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        Parcel reply = Parcel.obtain();
43359327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
43369327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        mRemote.transact(IS_USER_A_MONKEY_TRANSACTION, data, reply, 0);
43379327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        reply.readException();
43389327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        boolean res = reply.readInt() != 0;
43399327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        data.recycle();
43409327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        reply.recycle();
43419327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        return res;
43429327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn    }
43438f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz
43448f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz    public void setUserIsMonkey(boolean monkey) throws RemoteException {
43458f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz        Parcel data = Parcel.obtain();
43468f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz        Parcel reply = Parcel.obtain();
43478f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz        data.writeInterfaceToken(IActivityManager.descriptor);
43488f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz        data.writeInt(monkey ? 1 : 0);
43498f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz        mRemote.transact(SET_USER_IS_MONKEY_TRANSACTION, data, reply, 0);
43508f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz        reply.readException();
43518f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz        data.recycle();
43528f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz        reply.recycle();
43538f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz    }
43548f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz
4355860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn    public void finishHeavyWeightApp() throws RemoteException {
4356860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        Parcel data = Parcel.obtain();
4357860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        Parcel reply = Parcel.obtain();
4358860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4359860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        mRemote.transact(FINISH_HEAVY_WEIGHT_APP_TRANSACTION, data, reply, 0);
4360860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        reply.readException();
4361860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        data.recycle();
4362860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        reply.recycle();
4363860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn    }
43644addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner
4365bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner    public boolean convertFromTranslucent(IBinder token)
43665eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner            throws RemoteException {
43675eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        Parcel data = Parcel.obtain();
43685eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        Parcel reply = Parcel.obtain();
43695eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
43705eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        data.writeStrongBinder(token);
43715eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        mRemote.transact(CONVERT_FROM_TRANSLUCENT_TRANSACTION, data, reply, 0);
43725eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        reply.readException();
4373bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner        boolean res = reply.readInt() != 0;
43745eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        data.recycle();
43755eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        reply.recycle();
4376bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner        return res;
43775eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner    }
43785eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner
4379233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner    public boolean convertToTranslucent(IBinder token, ActivityOptions options)
43804addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner            throws RemoteException {
43814addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner        Parcel data = Parcel.obtain();
43824addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner        Parcel reply = Parcel.obtain();
43834addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
43844addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner        data.writeStrongBinder(token);
4385233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        if (options == null) {
4386233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            data.writeInt(0);
4387233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        } else {
4388233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            data.writeInt(1);
4389233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner            data.writeBundle(options.toBundle());
4390233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        }
43915eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        mRemote.transact(CONVERT_TO_TRANSLUCENT_TRANSACTION, data, reply, 0);
43924addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner        reply.readException();
4393bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner        boolean res = reply.readInt() != 0;
43944addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner        data.recycle();
43954addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner        reply.recycle();
4396bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner        return res;
43974addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner    }
43984addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner
4399233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner    public ActivityOptions getActivityOptions(IBinder token) throws RemoteException {
4400233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        Parcel data = Parcel.obtain();
4401233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        Parcel reply = Parcel.obtain();
4402233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
4403233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        data.writeStrongBinder(token);
4404233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        mRemote.transact(GET_ACTIVITY_OPTIONS_TRANSACTION, data, reply, 0);
4405233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        reply.readException();
4406233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        Bundle bundle = reply.readBundle();
4407233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        ActivityOptions options = bundle == null ? null : new ActivityOptions(bundle);
4408233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        data.recycle();
4409233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        reply.recycle();
4410233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner        return options;
4411233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner    }
4412233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner
441369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    public void setImmersive(IBinder token, boolean immersive)
441469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            throws RemoteException {
441569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel data = Parcel.obtain();
441669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel reply = Parcel.obtain();
441769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeInterfaceToken(IActivityManager.descriptor);
441869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeStrongBinder(token);
441969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeInt(immersive ? 1 : 0);
442069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        mRemote.transact(SET_IMMERSIVE_TRANSACTION, data, reply, 0);
442169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.readException();
442269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.recycle();
442369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.recycle();
442469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    }
442569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
442669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    public boolean isImmersive(IBinder token)
442769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            throws RemoteException {
442869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel data = Parcel.obtain();
442969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel reply = Parcel.obtain();
443069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeInterfaceToken(IActivityManager.descriptor);
443169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeStrongBinder(token);
443269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        mRemote.transact(IS_IMMERSIVE_TRANSACTION, data, reply, 0);
443369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.readException();
44347e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        boolean res = reply.readInt() == 1;
443569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.recycle();
443669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.recycle();
443769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        return res;
443869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    }
443969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
4440d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner    public boolean isTopOfTask(IBinder token) throws RemoteException {
4441d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        Parcel data = Parcel.obtain();
4442d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        Parcel reply = Parcel.obtain();
4443d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
4444d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        data.writeStrongBinder(token);
4445d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        mRemote.transact(IS_TOP_OF_TASK_TRANSACTION, data, reply, 0);
4446d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        reply.readException();
4447d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        boolean res = reply.readInt() == 1;
4448d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        data.recycle();
4449d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        reply.recycle();
4450d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        return res;
4451d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner    }
4452d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner
445369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    public boolean isTopActivityImmersive()
445469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            throws RemoteException {
445569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel data = Parcel.obtain();
445669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel reply = Parcel.obtain();
445769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeInterfaceToken(IActivityManager.descriptor);
445869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        mRemote.transact(IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION, data, reply, 0);
445969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.readException();
44607e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        boolean res = reply.readInt() == 1;
446169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.recycle();
446269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.recycle();
446369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        return res;
446469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    }
446569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
44669d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn    public void crashApplication(int uid, int initialPid, String packageName,
44679d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            String message) throws RemoteException {
44689d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        Parcel data = Parcel.obtain();
44699d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        Parcel reply = Parcel.obtain();
44709d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
44719d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeInt(uid);
44729d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeInt(initialPid);
44739d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeString(packageName);
44749d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeString(message);
44759d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        mRemote.transact(CRASH_APPLICATION_TRANSACTION, data, reply, 0);
44769d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        reply.readException();
44779d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.recycle();
44789d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        reply.recycle();
44799d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn    }
4480824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden
44815e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn    public String getProviderMimeType(Uri uri, int userId) throws RemoteException {
4482cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        Parcel data = Parcel.obtain();
4483cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        Parcel reply = Parcel.obtain();
4484cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4485cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        uri.writeToParcel(data, 0);
44865e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInt(userId);
4487cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        mRemote.transact(GET_PROVIDER_MIME_TYPE_TRANSACTION, data, reply, 0);
4488cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        reply.readException();
4489cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        String res = reply.readString();
4490cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        data.recycle();
4491cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        reply.recycle();
4492cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        return res;
4493cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn    }
4494cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn
44957e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    public IBinder newUriPermissionOwner(String name)
44967e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            throws RemoteException {
44977e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel data = Parcel.obtain();
44987e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel reply = Parcel.obtain();
44997e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
45007e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeString(name);
45017e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        mRemote.transact(NEW_URI_PERMISSION_OWNER_TRANSACTION, data, reply, 0);
45027e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.readException();
45037e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        IBinder res = reply.readStrongBinder();
45047e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.recycle();
45057e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.recycle();
45067e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        return res;
45077e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    }
45087e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn
45097e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    public void grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg,
4510f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot            Uri uri, int mode, int sourceUserId, int targetUserId) throws RemoteException {
45117e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel data = Parcel.obtain();
45127e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel reply = Parcel.obtain();
45137e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
45147e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeStrongBinder(owner);
45157e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInt(fromUid);
45167e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeString(targetPkg);
45177e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        uri.writeToParcel(data, 0);
45187e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInt(mode);
4519f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot        data.writeInt(sourceUserId);
4520f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot        data.writeInt(targetUserId);
45217e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        mRemote.transact(GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0);
45227e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.readException();
45237e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.recycle();
45247e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.recycle();
45257e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    }
45267e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn
45277e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    public void revokeUriPermissionFromOwner(IBinder owner, Uri uri,
4528d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            int mode, int userId) throws RemoteException {
45297e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel data = Parcel.obtain();
45307e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel reply = Parcel.obtain();
45317e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
45327e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeStrongBinder(owner);
45337e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        if (uri != null) {
45347e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            data.writeInt(1);
45357e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            uri.writeToParcel(data, 0);
45367e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        } else {
45377e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            data.writeInt(0);
45387e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        }
45397e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInt(mode);
4540d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot        data.writeInt(userId);
45417e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        mRemote.transact(REVOKE_URI_PERMISSION_TRANSACTION, data, reply, 0);
45427e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.readException();
45437e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.recycle();
45447e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.recycle();
45457e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    }
4546c8f8497b9cac63a923dbdb1c08e247ba32c19e5eDianne Hackborn
454790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn    public int checkGrantUriPermission(int callingUid, String targetPkg,
4548d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot            Uri uri, int modeFlags, int userId) throws RemoteException {
454990f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        Parcel data = Parcel.obtain();
455090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        Parcel reply = Parcel.obtain();
455190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
455290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        data.writeInt(callingUid);
455390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        data.writeString(targetPkg);
455490f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        uri.writeToParcel(data, 0);
455590f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        data.writeInt(modeFlags);
4556d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot        data.writeInt(userId);
455790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        mRemote.transact(CHECK_GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0);
455890f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        reply.readException();
455990f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        int res = reply.readInt();
456090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        data.recycle();
456190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        reply.recycle();
456290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        return res;
456390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn    }
456490f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn
45651676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn    public boolean dumpHeap(String process, int userId, boolean managed,
4566824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            String path, ParcelFileDescriptor fd) throws RemoteException {
4567824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        Parcel data = Parcel.obtain();
4568824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        Parcel reply = Parcel.obtain();
4569824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeInterfaceToken(IActivityManager.descriptor);
4570824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeString(process);
45711676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn        data.writeInt(userId);
4572824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeInt(managed ? 1 : 0);
4573824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeString(path);
4574824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        if (fd != null) {
4575824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            data.writeInt(1);
4576824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            fd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
4577824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        } else {
4578824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            data.writeInt(0);
4579824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        }
4580824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        mRemote.transact(DUMP_HEAP_TRANSACTION, data, reply, 0);
4581824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        reply.readException();
4582824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        boolean res = reply.readInt() != 0;
4583824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        reply.recycle();
4584824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.recycle();
4585824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        return res;
4586824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden    }
45879d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn
4588f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    public int startActivities(IApplicationThread caller, String callingPackage,
4589a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Intent[] intents, String[] resolvedTypes, IBinder resultTo,
4590ea7e91514ee1968d15713e82a5cca745e2c46a05Amith Yamasani            Bundle options, int userId) throws RemoteException {
4591621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        Parcel data = Parcel.obtain();
4592621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        Parcel reply = Parcel.obtain();
4593621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4594621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
4595f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        data.writeString(callingPackage);
4596621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeTypedArray(intents, 0);
4597621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeStringArray(resolvedTypes);
4598621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeStrongBinder(resultTo);
4599a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
4600a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
4601a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
4602a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
4603a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
4604a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
4605ea7e91514ee1968d15713e82a5cca745e2c46a05Amith Yamasani        data.writeInt(userId);
4606621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        mRemote.transact(START_ACTIVITIES_TRANSACTION, data, reply, 0);
4607621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        reply.readException();
4608621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        int result = reply.readInt();
4609621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        reply.recycle();
4610621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.recycle();
4611621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        return result;
4612621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn    }
4613621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn
46140f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    public int getFrontActivityScreenCompatMode() throws RemoteException {
46150f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel data = Parcel.obtain();
46160f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel reply = Parcel.obtain();
46170f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
46180f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        mRemote.transact(GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0);
46190f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.readException();
46200f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        int mode = reply.readInt();
46210f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.recycle();
46220f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.recycle();
46230f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        return mode;
46240f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    }
46250f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
46260f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    public void setFrontActivityScreenCompatMode(int mode) throws RemoteException {
46270f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel data = Parcel.obtain();
46280f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel reply = Parcel.obtain();
46290f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
46300f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.writeInt(mode);
46310f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        mRemote.transact(SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0);
46320f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.readException();
46330f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.recycle();
46340f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.recycle();
46350f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    }
46360f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
46370f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    public int getPackageScreenCompatMode(String packageName) throws RemoteException {
46380f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel data = Parcel.obtain();
46390f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel reply = Parcel.obtain();
46400f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
464136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeString(packageName);
464236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        mRemote.transact(GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0);
46430f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.readException();
46440f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        int mode = reply.readInt();
46450f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.recycle();
46460f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.recycle();
46470f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        return mode;
46480f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    }
46490f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
46500f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    public void setPackageScreenCompatMode(String packageName, int mode)
4651e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            throws RemoteException {
4652e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        Parcel data = Parcel.obtain();
4653e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        Parcel reply = Parcel.obtain();
4654e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4655e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        data.writeString(packageName);
46560f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.writeInt(mode);
4657e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        mRemote.transact(SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0);
4658e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        reply.readException();
4659e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        reply.recycle();
4660e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        data.recycle();
4661e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn    }
4662e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn
466336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn    public boolean getPackageAskScreenCompat(String packageName) throws RemoteException {
466436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        Parcel data = Parcel.obtain();
466536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        Parcel reply = Parcel.obtain();
466636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
466736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeString(packageName);
466836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        mRemote.transact(GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION, data, reply, 0);
466936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        reply.readException();
467036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        boolean ask = reply.readInt() != 0;
467136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        reply.recycle();
467236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.recycle();
467336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        return ask;
467436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn    }
467536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn
467636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn    public void setPackageAskScreenCompat(String packageName, boolean ask)
467736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            throws RemoteException {
467836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        Parcel data = Parcel.obtain();
467936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        Parcel reply = Parcel.obtain();
468036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
468136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeString(packageName);
468236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeInt(ask ? 1 : 0);
468336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        mRemote.transact(SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION, data, reply, 0);
468436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        reply.readException();
468536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        reply.recycle();
468636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.recycle();
468736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn    }
468836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn
46894b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani    public boolean switchUser(int userid) throws RemoteException {
46904b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        Parcel data = Parcel.obtain();
46914b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        Parcel reply = Parcel.obtain();
46924b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        data.writeInterfaceToken(IActivityManager.descriptor);
46934b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        data.writeInt(userid);
46944b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        mRemote.transact(SWITCH_USER_TRANSACTION, data, reply, 0);
46954b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        reply.readException();
46964b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        boolean result = reply.readInt() != 0;
46974b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        reply.recycle();
46984b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        data.recycle();
46994b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        return result;
47004b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani    }
470152f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani
470208488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy    public boolean startUserInBackground(int userid) throws RemoteException {
470308488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        Parcel data = Parcel.obtain();
470408488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        Parcel reply = Parcel.obtain();
470508488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        data.writeInterfaceToken(IActivityManager.descriptor);
470608488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        data.writeInt(userid);
470708488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        mRemote.transact(START_USER_IN_BACKGROUND_TRANSACTION, data, reply, 0);
470808488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        reply.readException();
470908488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        boolean result = reply.readInt() != 0;
471008488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        reply.recycle();
471108488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        data.recycle();
471208488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy        return result;
471308488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy    }
471408488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy
471580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn    public int stopUser(int userid, IStopUserCallback callback) throws RemoteException {
471680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        Parcel data = Parcel.obtain();
471780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        Parcel reply = Parcel.obtain();
471880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
471980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        data.writeInt(userid);
472080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        data.writeStrongInterface(callback);
472180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        mRemote.transact(STOP_USER_TRANSACTION, data, reply, 0);
472280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        reply.readException();
472380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        int result = reply.readInt();
472480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        reply.recycle();
472580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        data.recycle();
472680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        return result;
472780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn    }
472880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn
472952f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani    public UserInfo getCurrentUser() throws RemoteException {
473052f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        Parcel data = Parcel.obtain();
473152f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        Parcel reply = Parcel.obtain();
473252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        data.writeInterfaceToken(IActivityManager.descriptor);
473380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        mRemote.transact(GET_CURRENT_USER_TRANSACTION, data, reply, 0);
473452f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        reply.readException();
473552f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        UserInfo userInfo = UserInfo.CREATOR.createFromParcel(reply);
473652f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        reply.recycle();
473752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        data.recycle();
473852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        return userInfo;
473952f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani    }
474052f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani
4741a8a9bd65bf5865d83ef44f54552ca39522bfbcf0Dianne Hackborn    public boolean isUserRunning(int userid, boolean orStopping) throws RemoteException {
47425e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        Parcel data = Parcel.obtain();
47435e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        Parcel reply = Parcel.obtain();
47445e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
47455e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInt(userid);
4746a8a9bd65bf5865d83ef44f54552ca39522bfbcf0Dianne Hackborn        data.writeInt(orStopping ? 1 : 0);
47475e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        mRemote.transact(IS_USER_RUNNING_TRANSACTION, data, reply, 0);
47485e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        reply.readException();
47495e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        boolean result = reply.readInt() != 0;
47505e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        reply.recycle();
47515e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.recycle();
47525e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        return result;
47535e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn    }
47545e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn
4755c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn    public int[] getRunningUserIds() throws RemoteException {
4756c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        Parcel data = Parcel.obtain();
4757c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        Parcel reply = Parcel.obtain();
4758c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4759c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        mRemote.transact(GET_RUNNING_USER_IDS_TRANSACTION, data, reply, 0);
4760c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        reply.readException();
4761c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        int[] result = reply.createIntArray();
4762c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        reply.recycle();
4763c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        data.recycle();
4764c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn        return result;
4765c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn    }
4766c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn
47670c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn    public boolean removeTask(int taskId, int flags) throws RemoteException {
47680c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        Parcel data = Parcel.obtain();
47690c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        Parcel reply = Parcel.obtain();
47700c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
47710c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.writeInt(taskId);
47720c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.writeInt(flags);
47730c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        mRemote.transact(REMOVE_TASK_TRANSACTION, data, reply, 0);
47740c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        reply.readException();
47750c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        boolean result = reply.readInt() != 0;
47760c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        reply.recycle();
47770c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.recycle();
47780c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        return result;
47790c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn    }
47804b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani
4781a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey    public void registerProcessObserver(IProcessObserver observer) throws RemoteException {
4782a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        Parcel data = Parcel.obtain();
4783a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        Parcel reply = Parcel.obtain();
4784a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.writeInterfaceToken(IActivityManager.descriptor);
4785a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.writeStrongBinder(observer != null ? observer.asBinder() : null);
4786a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        mRemote.transact(REGISTER_PROCESS_OBSERVER_TRANSACTION, data, reply, 0);
4787a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        reply.readException();
4788a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.recycle();
4789a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        reply.recycle();
4790a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey    }
4791a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey
4792a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey    public void unregisterProcessObserver(IProcessObserver observer) throws RemoteException {
4793a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        Parcel data = Parcel.obtain();
4794a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        Parcel reply = Parcel.obtain();
4795a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.writeInterfaceToken(IActivityManager.descriptor);
4796a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.writeStrongBinder(observer != null ? observer.asBinder() : null);
4797a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        mRemote.transact(UNREGISTER_PROCESS_OBSERVER_TRANSACTION, data, reply, 0);
4798a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        reply.readException();
4799a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.recycle();
4800a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        reply.recycle();
4801a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey    }
4802a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey
48036c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn    public boolean isIntentSenderTargetedToPackage(IIntentSender sender) throws RemoteException {
48046c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        Parcel data = Parcel.obtain();
48056c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        Parcel reply = Parcel.obtain();
48066c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
48076c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        data.writeStrongBinder(sender.asBinder());
48086c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        mRemote.transact(IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION, data, reply, 0);
48096c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        reply.readException();
48106c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        boolean res = reply.readInt() != 0;
48116c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        data.recycle();
48126c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        reply.recycle();
48136c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        return res;
48146c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn    }
48156c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn
48161927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn    public boolean isIntentSenderAnActivity(IIntentSender sender) throws RemoteException {
48171927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        Parcel data = Parcel.obtain();
48181927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        Parcel reply = Parcel.obtain();
48191927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
48201927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        data.writeStrongBinder(sender.asBinder());
48211927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        mRemote.transact(IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION, data, reply, 0);
48221927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        reply.readException();
48231927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        boolean res = reply.readInt() != 0;
48241927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        data.recycle();
48251927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        reply.recycle();
48261927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        return res;
48271927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn    }
48281927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn
48298103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn    public Intent getIntentForIntentSender(IIntentSender sender) throws RemoteException {
48308103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        Parcel data = Parcel.obtain();
48318103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        Parcel reply = Parcel.obtain();
48328103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
48338103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        data.writeStrongBinder(sender.asBinder());
48348103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        mRemote.transact(GET_INTENT_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0);
48358103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        reply.readException();
48368103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        Intent res = reply.readInt() != 0
48378103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn                ? Intent.CREATOR.createFromParcel(reply) : null;
48388103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        data.recycle();
48398103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        reply.recycle();
48408103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn        return res;
48418103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn    }
48428103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn
4843a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn    public String getTagForIntentSender(IIntentSender sender, String prefix)
4844a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn            throws RemoteException {
4845a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        Parcel data = Parcel.obtain();
4846a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        Parcel reply = Parcel.obtain();
4847a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4848a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        data.writeStrongBinder(sender.asBinder());
4849a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        data.writeString(prefix);
4850a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        mRemote.transact(GET_TAG_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0);
4851a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        reply.readException();
4852a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        String res = reply.readString();
4853a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        data.recycle();
4854a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        reply.recycle();
4855a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        return res;
4856a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn    }
4857a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn
485831ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn    public void updatePersistentConfiguration(Configuration values) throws RemoteException
485931ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn    {
486031ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        Parcel data = Parcel.obtain();
486131ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        Parcel reply = Parcel.obtain();
486231ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
486331ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        values.writeToParcel(data, 0);
486431ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        mRemote.transact(UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION, data, reply, 0);
486531ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        reply.readException();
486631ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        data.recycle();
486731ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        reply.recycle();
486831ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn    }
486931ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn
4870b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn    public long[] getProcessPss(int[] pids) throws RemoteException {
4871b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        Parcel data = Parcel.obtain();
4872b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        Parcel reply = Parcel.obtain();
4873b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4874b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        data.writeIntArray(pids);
4875b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        mRemote.transact(GET_PROCESS_PSS_TRANSACTION, data, reply, 0);
4876b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        reply.readException();
4877b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        long[] res = reply.createLongArray();
4878b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        data.recycle();
4879b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        reply.recycle();
4880b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        return res;
4881b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn    }
4882b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn
4883661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn    public void showBootMessage(CharSequence msg, boolean always) throws RemoteException {
4884661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        Parcel data = Parcel.obtain();
4885661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        Parcel reply = Parcel.obtain();
4886661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4887661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        TextUtils.writeToParcel(msg, data, 0);
4888661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        data.writeInt(always ? 1 : 0);
4889661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        mRemote.transact(SHOW_BOOT_MESSAGE_TRANSACTION, data, reply, 0);
4890661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        reply.readException();
4891661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        data.recycle();
4892661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        reply.recycle();
4893661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn    }
4894661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn
48958de4311c51229efbe2f2d0afbf298982c5cadd96Jorim Jaggi    public void keyguardWaitingForActivityDrawn() throws RemoteException {
489690c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        Parcel data = Parcel.obtain();
489790c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        Parcel reply = Parcel.obtain();
489890c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
48998de4311c51229efbe2f2d0afbf298982c5cadd96Jorim Jaggi        mRemote.transact(KEYGUARD_WAITING_FOR_ACTIVITY_DRAWN_TRANSACTION, data, reply, 0);
490090c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        reply.readException();
490190c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        data.recycle();
490290c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        reply.recycle();
490390c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn    }
490490c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn
49056f4d61ff2e3143bea37bbc1a7a2a0ab415b2c88aDianne Hackborn    public boolean shouldUpRecreateTask(IBinder token, String destAffinity)
4906dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            throws RemoteException {
4907dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        Parcel data = Parcel.obtain();
4908dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        Parcel reply = Parcel.obtain();
4909dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeInterfaceToken(IActivityManager.descriptor);
4910dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeStrongBinder(token);
4911dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeString(destAffinity);
49126f4d61ff2e3143bea37bbc1a7a2a0ab415b2c88aDianne Hackborn        mRemote.transact(SHOULD_UP_RECREATE_TASK_TRANSACTION, data, reply, 0);
4913dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        reply.readException();
4914dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        boolean result = reply.readInt() != 0;
4915dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.recycle();
4916dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        reply.recycle();
4917dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        return result;
4918dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell    }
4919dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell
4920dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell    public boolean navigateUpTo(IBinder token, Intent target, int resultCode, Intent resultData)
4921dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            throws RemoteException {
4922dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        Parcel data = Parcel.obtain();
4923dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        Parcel reply = Parcel.obtain();
4924dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeInterfaceToken(IActivityManager.descriptor);
4925dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeStrongBinder(token);
4926dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        target.writeToParcel(data, 0);
4927dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeInt(resultCode);
4928dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        if (resultData != null) {
4929dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            data.writeInt(1);
4930dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            resultData.writeToParcel(data, 0);
4931dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        } else {
4932dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            data.writeInt(0);
4933dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        }
4934dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        mRemote.transact(NAVIGATE_UP_TO_TRANSACTION, data, reply, 0);
4935dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        reply.readException();
4936dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        boolean result = reply.readInt() != 0;
4937dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.recycle();
4938dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        reply.recycle();
4939dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        return result;
4940dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell    }
4941dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell
49425320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn    public int getLaunchedFromUid(IBinder activityToken) throws RemoteException {
49435320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        Parcel data = Parcel.obtain();
49445320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        Parcel reply = Parcel.obtain();
49455320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
49465320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        data.writeStrongBinder(activityToken);
49475320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        mRemote.transact(GET_LAUNCHED_FROM_UID_TRANSACTION, data, reply, 0);
49485320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        reply.readException();
49495320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        int result = reply.readInt();
49505320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        data.recycle();
49515320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        reply.recycle();
49525320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        return result;
49535320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn    }
49545320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn
4955f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    public String getLaunchedFromPackage(IBinder activityToken) throws RemoteException {
4956f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        Parcel data = Parcel.obtain();
4957f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        Parcel reply = Parcel.obtain();
4958f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4959f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        data.writeStrongBinder(activityToken);
4960f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        mRemote.transact(GET_LAUNCHED_FROM_PACKAGE_TRANSACTION, data, reply, 0);
4961f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        reply.readException();
4962f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        String result = reply.readString();
4963f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        data.recycle();
4964f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        reply.recycle();
4965f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        return result;
4966f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    }
4967f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn
49685dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn    public void registerUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException {
49695dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        Parcel data = Parcel.obtain();
49705dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        Parcel reply = Parcel.obtain();
49715dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
49725dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        data.writeStrongBinder(observer != null ? observer.asBinder() : null);
49735dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        mRemote.transact(REGISTER_USER_SWITCH_OBSERVER_TRANSACTION, data, reply, 0);
49745dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        reply.readException();
49755dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        data.recycle();
49765dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        reply.recycle();
49775dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn    }
49785dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn
49795dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn    public void unregisterUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException {
49805dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        Parcel data = Parcel.obtain();
49815dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        Parcel reply = Parcel.obtain();
49825dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
49835dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        data.writeStrongBinder(observer != null ? observer.asBinder() : null);
49845dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        mRemote.transact(UNREGISTER_USER_SWITCH_OBSERVER_TRANSACTION, data, reply, 0);
49855dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        reply.readException();
49865dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        data.recycle();
49875dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn        reply.recycle();
49885dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn    }
49895dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn
4990d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn    public void requestBugReport() throws RemoteException {
4991d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn        Parcel data = Parcel.obtain();
4992d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn        Parcel reply = Parcel.obtain();
4993d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
4994d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn        mRemote.transact(REQUEST_BUG_REPORT_TRANSACTION, data, reply, 0);
4995d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn        reply.readException();
4996d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn        data.recycle();
4997d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn        reply.recycle();
4998d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn    }
4999d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn
5000bd181bb83282571eb793d2e4a48b4d19585de7f2Jeff Brown    public long inputDispatchingTimedOut(int pid, boolean aboveSystem, String reason)
5001bd181bb83282571eb793d2e4a48b4d19585de7f2Jeff Brown            throws RemoteException {
50025fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        Parcel data = Parcel.obtain();
50035fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        Parcel reply = Parcel.obtain();
50045fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
50055fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        data.writeInt(pid);
50065fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        data.writeInt(aboveSystem ? 1 : 0);
5007bd181bb83282571eb793d2e4a48b4d19585de7f2Jeff Brown        data.writeString(reason);
50085fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        mRemote.transact(INPUT_DISPATCHING_TIMED_OUT_TRANSACTION, data, reply, 0);
50095fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        reply.readException();
50105fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        long res = reply.readInt();
50115fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        data.recycle();
50125fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        reply.recycle();
50135fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn        return res;
50145fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn    }
50155fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn
5016dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory    public Bundle getAssistContextExtras(int requestType) throws RemoteException {
5017f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        Parcel data = Parcel.obtain();
5018f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        Parcel reply = Parcel.obtain();
5019f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
5020f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        data.writeInt(requestType);
5021dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory        mRemote.transact(GET_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0);
5022f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        reply.readException();
5023f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        Bundle res = reply.readBundle();
5024f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        data.recycle();
5025f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        reply.recycle();
5026f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        return res;
5027f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn    }
5028f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn
50297140a25f0135f473b66d01eb042471b2f0ebc836Adam Skory    public void reportAssistContextExtras(IBinder token, Bundle extras)
5030dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory            throws RemoteException {
5031f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        Parcel data = Parcel.obtain();
5032f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        Parcel reply = Parcel.obtain();
5033f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
5034f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        data.writeStrongBinder(token);
5035f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        data.writeBundle(extras);
5036dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory        mRemote.transact(REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0);
5037f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        reply.readException();
5038f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        data.recycle();
5039f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn        reply.recycle();
5040f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn    }
5041f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn
5042f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn    public void killUid(int uid, String reason) throws RemoteException {
5043f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        Parcel data = Parcel.obtain();
5044f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        Parcel reply = Parcel.obtain();
5045f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
5046f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        data.writeInt(uid);
5047f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        data.writeString(reason);
5048f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        mRemote.transact(KILL_UID_TRANSACTION, data, reply, 0);
5049f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        reply.readException();
5050f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        data.recycle();
5051f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn        reply.recycle();
5052f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn    }
5053f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn
50548bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn    public void hang(IBinder who, boolean allowRestart) throws RemoteException {
50558bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        Parcel data = Parcel.obtain();
50568bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        Parcel reply = Parcel.obtain();
50578bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
50588bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        data.writeStrongBinder(who);
50598bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        data.writeInt(allowRestart ? 1 : 0);
50608bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        mRemote.transact(HANG_TRANSACTION, data, reply, 0);
50618bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        reply.readException();
50628bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        data.recycle();
50638bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn        reply.recycle();
50648bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn    }
50658bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn
50662286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn    public void reportActivityFullyDrawn(IBinder token) throws RemoteException {
50672286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn        Parcel data = Parcel.obtain();
50682286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn        Parcel reply = Parcel.obtain();
50692286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
50702286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn        data.writeStrongBinder(token);
50712286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn        mRemote.transact(REPORT_ACTIVITY_FULLY_DRAWN_TRANSACTION, data, reply, 0);
50722286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn        reply.readException();
50732286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn        data.recycle();
50742286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn        reply.recycle();
50752286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn    }
50762286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn
50775eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner    public void notifyActivityDrawn(IBinder token) throws RemoteException {
50785eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        Parcel data = Parcel.obtain();
50795eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        Parcel reply = Parcel.obtain();
50805eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
50815eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        data.writeStrongBinder(token);
50825eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        mRemote.transact(NOTIFY_ACTIVITY_DRAWN_TRANSACTION, data, reply, 0);
50835eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        reply.readException();
50845eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        data.recycle();
50855eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner        reply.recycle();
50865eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner    }
50875eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner
508857a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn    public void restart() throws RemoteException {
508957a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn        Parcel data = Parcel.obtain();
509057a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn        Parcel reply = Parcel.obtain();
509157a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
509257a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn        mRemote.transact(RESTART_TRANSACTION, data, reply, 0);
509357a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn        reply.readException();
509457a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn        data.recycle();
509557a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn        reply.recycle();
509657a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn    }
509757a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn
509835f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn    public void performIdleMaintenance() throws RemoteException {
509935f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn        Parcel data = Parcel.obtain();
510035f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn        Parcel reply = Parcel.obtain();
510135f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
510235f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn        mRemote.transact(PERFORM_IDLE_MAINTENANCE_TRANSACTION, data, reply, 0);
510335f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn        reply.readException();
510435f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn        data.recycle();
510535f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn        reply.recycle();
510635f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn    }
510735f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn
51084a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner    public IActivityContainer createActivityContainer(IBinder parentActivityToken,
51094a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner            IActivityContainerCallback callback) throws RemoteException {
51104a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        Parcel data = Parcel.obtain();
51114a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        Parcel reply = Parcel.obtain();
51124a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
51134a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        data.writeStrongBinder(parentActivityToken);
5114e3a00d745fad479f560e96cec23e957f37d1c043Craig Mautner        data.writeStrongBinder(callback == null ? null : callback.asBinder());
51154a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        mRemote.transact(CREATE_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0);
51164a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        reply.readException();
5117bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner        final int result = reply.readInt();
5118bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner        final IActivityContainer res;
5119bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner        if (result == 1) {
5120bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner            res = IActivityContainer.Stub.asInterface(reply.readStrongBinder());
5121bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner        } else {
5122bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner            res = null;
5123bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner        }
51244a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        data.recycle();
51254a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        reply.recycle();
51264a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        return res;
51274a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner    }
51284a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner
512995da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner    public void deleteActivityContainer(IActivityContainer activityContainer)
513095da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner            throws RemoteException {
513195da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner        Parcel data = Parcel.obtain();
513295da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner        Parcel reply = Parcel.obtain();
513395da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
513495da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner        data.writeStrongBinder(activityContainer.asBinder());
513595da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner        mRemote.transact(DELETE_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0);
513695da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner        reply.readException();
513795da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner        data.recycle();
513895da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner        reply.recycle();
513995da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner    }
514095da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner
5141e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner    public IActivityContainer getEnclosingActivityContainer(IBinder activityToken)
5142e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner            throws RemoteException {
5143e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        Parcel data = Parcel.obtain();
5144e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        Parcel reply = Parcel.obtain();
5145e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
5146e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        data.writeStrongBinder(activityToken);
5147e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        mRemote.transact(GET_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0);
5148e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        reply.readException();
5149bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner        final int result = reply.readInt();
5150bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner        final IActivityContainer res;
5151bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner        if (result == 1) {
5152bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner            res = IActivityContainer.Stub.asInterface(reply.readStrongBinder());
5153bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner        } else {
5154bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner            res = null;
5155bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner        }
5156e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        data.recycle();
5157e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        reply.recycle();
5158e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner        return res;
5159e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner    }
5160e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner
51614a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner    public IBinder getHomeActivityToken() throws RemoteException {
51624a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        Parcel data = Parcel.obtain();
51634a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        Parcel reply = Parcel.obtain();
51644a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
51654a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        mRemote.transact(GET_HOME_ACTIVITY_TOKEN_TRANSACTION, data, reply, 0);
51664a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        reply.readException();
51674a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        IBinder res = reply.readStrongBinder();
51684a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        data.recycle();
51694a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        reply.recycle();
51704a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner        return res;
51714a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner    }
51724a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner
5173aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    @Override
5174aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    public void startLockTaskMode(int taskId) throws RemoteException {
5175aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        Parcel data = Parcel.obtain();
5176aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        Parcel reply = Parcel.obtain();
5177aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
5178aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        data.writeInt(taskId);
5179aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        mRemote.transact(START_LOCK_TASK_BY_TASK_ID_TRANSACTION, data, reply, 0);
5180aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        reply.readException();
5181aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        data.recycle();
5182aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        reply.recycle();
5183aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    }
5184aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner
5185aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    @Override
5186aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    public void startLockTaskMode(IBinder token) throws RemoteException {
5187aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        Parcel data = Parcel.obtain();
5188aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        Parcel reply = Parcel.obtain();
5189aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
5190aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        data.writeStrongBinder(token);
5191aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        mRemote.transact(START_LOCK_TASK_BY_TOKEN_TRANSACTION, data, reply, 0);
5192aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        reply.readException();
5193aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        data.recycle();
5194aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        reply.recycle();
5195aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    }
5196aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner
5197aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    @Override
519862515beee67307d8859beec521b7baedfa54b2b5Jason Monk    public void startLockTaskModeOnCurrent() throws RemoteException {
519962515beee67307d8859beec521b7baedfa54b2b5Jason Monk        Parcel data = Parcel.obtain();
520062515beee67307d8859beec521b7baedfa54b2b5Jason Monk        Parcel reply = Parcel.obtain();
520162515beee67307d8859beec521b7baedfa54b2b5Jason Monk        data.writeInterfaceToken(IActivityManager.descriptor);
5202d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        mRemote.transact(START_LOCK_TASK_BY_CURRENT_TRANSACTION, data, reply, 0);
520362515beee67307d8859beec521b7baedfa54b2b5Jason Monk        reply.readException();
520462515beee67307d8859beec521b7baedfa54b2b5Jason Monk        data.recycle();
520562515beee67307d8859beec521b7baedfa54b2b5Jason Monk        reply.recycle();
520662515beee67307d8859beec521b7baedfa54b2b5Jason Monk    }
520762515beee67307d8859beec521b7baedfa54b2b5Jason Monk
520862515beee67307d8859beec521b7baedfa54b2b5Jason Monk    @Override
5209aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    public void stopLockTaskMode() throws RemoteException {
5210aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        Parcel data = Parcel.obtain();
5211aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        Parcel reply = Parcel.obtain();
5212aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
5213aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        mRemote.transact(STOP_LOCK_TASK_MODE_TRANSACTION, data, reply, 0);
5214aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        reply.readException();
5215aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        data.recycle();
5216aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        reply.recycle();
5217aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    }
5218aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner
5219aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    @Override
522062515beee67307d8859beec521b7baedfa54b2b5Jason Monk    public void stopLockTaskModeOnCurrent() throws RemoteException {
522162515beee67307d8859beec521b7baedfa54b2b5Jason Monk        Parcel data = Parcel.obtain();
522262515beee67307d8859beec521b7baedfa54b2b5Jason Monk        Parcel reply = Parcel.obtain();
522362515beee67307d8859beec521b7baedfa54b2b5Jason Monk        data.writeInterfaceToken(IActivityManager.descriptor);
5224d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner        mRemote.transact(STOP_LOCK_TASK_BY_CURRENT_TRANSACTION, data, reply, 0);
522562515beee67307d8859beec521b7baedfa54b2b5Jason Monk        reply.readException();
522662515beee67307d8859beec521b7baedfa54b2b5Jason Monk        data.recycle();
522762515beee67307d8859beec521b7baedfa54b2b5Jason Monk        reply.recycle();
522862515beee67307d8859beec521b7baedfa54b2b5Jason Monk    }
522962515beee67307d8859beec521b7baedfa54b2b5Jason Monk
523062515beee67307d8859beec521b7baedfa54b2b5Jason Monk    @Override
5231aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    public boolean isInLockTaskMode() throws RemoteException {
5232aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        Parcel data = Parcel.obtain();
5233aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        Parcel reply = Parcel.obtain();
5234aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
5235aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        mRemote.transact(IS_IN_LOCK_TASK_MODE_TRANSACTION, data, reply, 0);
5236aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        reply.readException();
5237aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        boolean isInLockTaskMode = reply.readInt() == 1;
5238aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        data.recycle();
5239aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        reply.recycle();
5240aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner        return isInLockTaskMode;
5241aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner    }
5242aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner
5243688b5105d665a56e6f2f040f3ca89ca3006801dfCraig Mautner    @Override
5244a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung    public void setTaskDescription(IBinder token, ActivityManager.TaskDescription values)
524503a9baedc9b933bb6a550c0cb84649b1b45b872cWinson Chung            throws RemoteException {
52462fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner        Parcel data = Parcel.obtain();
52472fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner        Parcel reply = Parcel.obtain();
52482fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
52492fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner        data.writeStrongBinder(token);
525003a9baedc9b933bb6a550c0cb84649b1b45b872cWinson Chung        values.writeToParcel(data, 0);
5251a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung        mRemote.transact(SET_TASK_DESCRIPTION_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
52522fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner        reply.readException();
52532fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner        data.recycle();
52542fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner        reply.recycle();
52552fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner    }
52562fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner
5257ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner    @Override
5258648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner    public Bitmap getTaskDescriptionIcon(String filename) throws RemoteException {
5259648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        Parcel data = Parcel.obtain();
5260648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        Parcel reply = Parcel.obtain();
5261648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
5262648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        data.writeString(filename);
5263648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        mRemote.transact(GET_TASK_DESCRIPTION_ICON_TRANSACTION, data, reply, 0);
5264648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        reply.readException();
5265648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        final Bitmap icon = reply.readInt() == 0 ? null : Bitmap.CREATOR.createFromParcel(reply);
5266648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        data.recycle();
5267648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        reply.recycle();
5268648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner        return icon;
5269648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner    }
5270648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner
5271648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner    @Override
52724b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima    public boolean requestVisibleBehind(IBinder token, boolean visible) throws RemoteException {
5273ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        Parcel data = Parcel.obtain();
5274ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        Parcel reply = Parcel.obtain();
5275ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
5276ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        data.writeStrongBinder(token);
52774b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima        data.writeInt(visible ? 1 : 0);
52784b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima        mRemote.transact(REQUEST_VISIBLE_BEHIND_TRANSACTION, data, reply, 0);
5279ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        reply.readException();
5280ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        boolean success = reply.readInt() > 0;
5281ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        data.recycle();
5282ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        reply.recycle();
5283ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        return success;
5284ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner    }
5285ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner
5286ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner    @Override
52874b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima    public boolean isBackgroundVisibleBehind(IBinder token) throws RemoteException {
5288ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        Parcel data = Parcel.obtain();
5289ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        Parcel reply = Parcel.obtain();
5290ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
5291ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        data.writeStrongBinder(token);
52924b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima        mRemote.transact(IS_BACKGROUND_VISIBLE_BEHIND_TRANSACTION, data, reply, 0);
5293ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        reply.readException();
52944b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima        final boolean visible = reply.readInt() > 0;
5295ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        data.recycle();
5296ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        reply.recycle();
52974b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima        return visible;
5298ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner    }
5299ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner
5300ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner    @Override
53014b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima    public void backgroundResourcesReleased(IBinder token) throws RemoteException {
5302ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        Parcel data = Parcel.obtain();
5303ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        Parcel reply = Parcel.obtain();
5304ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
5305ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        data.writeStrongBinder(token);
53064b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima        mRemote.transact(BACKGROUND_RESOURCES_RELEASED_TRANSACTION, data, reply,
53074b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima                IBinder.FLAG_ONEWAY);
5308bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner        reply.readException();
5309bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner        data.recycle();
5310bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner        reply.recycle();
5311bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner    }
5312bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner
5313bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner    @Override
5314bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner    public void notifyLaunchTaskBehindComplete(IBinder token) throws RemoteException {
5315bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner        Parcel data = Parcel.obtain();
5316bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner        Parcel reply = Parcel.obtain();
5317bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
5318bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner        data.writeStrongBinder(token);
5319bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner        mRemote.transact(NOTIFY_LAUNCH_TASK_BEHIND_COMPLETE_TRANSACTION, data, reply,
5320bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner                IBinder.FLAG_ONEWAY);
5321ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        reply.readException();
5322ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        data.recycle();
5323ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner        reply.recycle();
5324ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner    }
5325ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner
53268746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner    @Override
53278746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner    public void notifyEnterAnimationComplete(IBinder token) throws RemoteException {
53288746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner        Parcel data = Parcel.obtain();
53298746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner        Parcel reply = Parcel.obtain();
53308746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
53318746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner        data.writeStrongBinder(token);
53328746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner        mRemote.transact(NOTIFY_ENTER_ANIMATION_COMPLETE_TRANSACTION, data, reply,
53338746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner                IBinder.FLAG_ONEWAY);
53348746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner        reply.readException();
53358746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner        data.recycle();
53368746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner        reply.recycle();
53378746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner    }
53388746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner
53396e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner    @Override
53406e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner    public void bootAnimationComplete() throws RemoteException {
53416e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner        Parcel data = Parcel.obtain();
53426e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner        Parcel reply = Parcel.obtain();
53436e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner        data.writeInterfaceToken(IActivityManager.descriptor);
53446e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner        mRemote.transact(BOOT_ANIMATION_COMPLETE_TRANSACTION, data, reply, 0);
53456e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner        reply.readException();
53466e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner        data.recycle();
53476e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner        reply.recycle();
53486e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner    }
53496e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner
53509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private IBinder mRemote;
53519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
5352