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