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; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ComponentName; 21dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.content.IIntentReceiver; 22dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.content.IIntentSender; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.IntentFilter; 25fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackbornimport android.content.IntentSender; 26e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkeyimport android.content.UriPermission; 27181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tateimport android.content.pm.ApplicationInfo; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ConfigurationInfo; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageDataObserver; 30e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkeyimport android.content.pm.ParceledListSlice; 3152f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasaniimport android.content.pm.UserInfo; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.Configuration; 33aec68bb89fe614181a20eb97340149406218ce2fDianne Hackbornimport android.graphics.Bitmap; 34aec68bb89fe614181a20eb97340149406218ce2fDianne Hackbornimport android.graphics.Point; 35bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautnerimport android.graphics.Rect; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Binder; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 393025ef332c29e255388f74b2afefe05f64bce07cDianne Hackbornimport android.os.Debug; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel; 42dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.ParcelFileDescriptor; 43dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.Parcelable; 44a002604af0c9b1204556610537b85685d7055996Craig Mautnerimport android.os.PersistableBundle; 45dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.RemoteException; 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ServiceManager; 47cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrickimport android.os.StrictMode; 4891097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackbornimport android.service.voice.IVoiceInteractionSession; 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.text.TextUtils; 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log; 51663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrickimport android.util.Singleton; 5291097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackbornimport com.android.internal.app.IVoiceInteractor; 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.ArrayList; 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.List; 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** {@hide} */ 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic abstract class ActivityManagerNative extends Binder implements IActivityManager 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Cast a Binder object into an activity manager interface, generating 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a proxy if needed. 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 64663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick static public IActivityManager asInterface(IBinder obj) { 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (obj == null) { 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IActivityManager in = 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project (IActivityManager)obj.queryLocalInterface(descriptor); 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (in != null) { 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return in; 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 73663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new ActivityManagerProxy(obj); 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 76663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve the system's default/global activity manager. 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 80663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick static public IActivityManager getDefault() { 81663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick return gDefault.get(); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Convenience for checking whether the system is ready. For internal use only. 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static public boolean isSystemReady() { 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!sSystemReady) { 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sSystemReady = getDefault().testIsSystemReady(); 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return sSystemReady; 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static boolean sSystemReady = false; 94663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Convenience for sending a sticky broadcast. For internal use only. 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If you don't care about permission, use null. 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 995ac72a29593ab9a20337a2225df52bdf4754be02Dianne Hackborn static public void broadcastStickyIntent(Intent intent, String permission, int userId) { 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project getDefault().broadcastIntent( 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project null, intent, null, null, Activity.RESULT_OK, null, null, 103f51f61269aacdfcf737b2c32b6b216c48ab61e65Dianne Hackborn null /*permission*/, AppOpsManager.OP_NONE, false, true, userId); 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 108099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn static public void noteWakeupAlarm(PendingIntent ps, int sourceUid, String sourcePkg) { 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 110099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn getDefault().noteWakeupAlarm(ps.getTarget(), sourceUid, sourcePkg); 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 115663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick public ActivityManagerNative() { 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project attachInterface(this, descriptor); 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1184cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner 1194cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner @Override 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean onTransact(int code, Parcel data, Parcel reply, int flags) 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project switch (code) { 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case START_ACTIVITY_TRANSACTION: 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 128f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn String callingPackage = data.readString(); 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = Intent.CREATOR.createFromParcel(data); 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder resultTo = data.readStrongBinder(); 13292a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy String resultWho = data.readString(); 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int requestCode = data.readInt(); 134a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int startFlags = data.readInt(); 1351b012d302b56b4adf950035136d1d191a1936d5aJeff Hao ProfilerInfo profilerInfo = data.readInt() != 0 1361b012d302b56b4adf950035136d1d191a1936d5aJeff Hao ? ProfilerInfo.CREATOR.createFromParcel(data) : null; 137a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Bundle options = data.readInt() != 0 138a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 139f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn int result = startActivity(app, callingPackage, intent, resolvedType, 1401b012d302b56b4adf950035136d1d191a1936d5aJeff Hao resultTo, resultWho, requestCode, startFlags, profilerInfo, options); 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(result); 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 145bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn 1468264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani case START_ACTIVITY_AS_USER_TRANSACTION: 1478264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani { 1488264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.enforceInterface(IActivityManager.descriptor); 1498264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani IBinder b = data.readStrongBinder(); 1508264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani IApplicationThread app = ApplicationThreadNative.asInterface(b); 151f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn String callingPackage = data.readString(); 1528264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani Intent intent = Intent.CREATOR.createFromParcel(data); 1538264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani String resolvedType = data.readString(); 1548264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani IBinder resultTo = data.readStrongBinder(); 1558264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani String resultWho = data.readString(); 1568264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int requestCode = data.readInt(); 1578264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int startFlags = data.readInt(); 1581b012d302b56b4adf950035136d1d191a1936d5aJeff Hao ProfilerInfo profilerInfo = data.readInt() != 0 1591b012d302b56b4adf950035136d1d191a1936d5aJeff Hao ? ProfilerInfo.CREATOR.createFromParcel(data) : null; 1608264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani Bundle options = data.readInt() != 0 1618264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani ? Bundle.CREATOR.createFromParcel(data) : null; 1628264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int userId = data.readInt(); 163f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn int result = startActivityAsUser(app, callingPackage, intent, resolvedType, 1641b012d302b56b4adf950035136d1d191a1936d5aJeff Hao resultTo, resultWho, requestCode, startFlags, profilerInfo, options, userId); 1658264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani reply.writeNoException(); 1668264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani reply.writeInt(result); 1678264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani return true; 1688264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } 1698264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani 170028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn case START_ACTIVITY_AS_CALLER_TRANSACTION: 171028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn { 172028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 173028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn IBinder b = data.readStrongBinder(); 174028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn IApplicationThread app = ApplicationThreadNative.asInterface(b); 175028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn String callingPackage = data.readString(); 176028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn Intent intent = Intent.CREATOR.createFromParcel(data); 177028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn String resolvedType = data.readString(); 178028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn IBinder resultTo = data.readStrongBinder(); 179028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn String resultWho = data.readString(); 180028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn int requestCode = data.readInt(); 181028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn int startFlags = data.readInt(); 1821b012d302b56b4adf950035136d1d191a1936d5aJeff Hao ProfilerInfo profilerInfo = data.readInt() != 0 1831b012d302b56b4adf950035136d1d191a1936d5aJeff Hao ? ProfilerInfo.CREATOR.createFromParcel(data) : null; 184028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn Bundle options = data.readInt() != 0 185028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 1869797880808320e3a7bae1f59bc7e0c5a13189e5fJeff Sharkey int userId = data.readInt(); 187028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn int result = startActivityAsCaller(app, callingPackage, intent, resolvedType, 1889797880808320e3a7bae1f59bc7e0c5a13189e5fJeff Sharkey resultTo, resultWho, requestCode, startFlags, profilerInfo, options, userId); 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 776740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung case REGISTER_TASK_STACK_LISTENER_TRANSACTION: { 777740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung data.enforceInterface(IActivityManager.descriptor); 778740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung IBinder token = data.readStrongBinder(); 779740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung registerTaskStackListener(ITaskStackListener.Stub.asInterface(token)); 780740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung reply.writeNoException(); 781740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung return true; 782740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung } 783740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung 7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_TASK_FOR_ACTIVITY_TRANSACTION: { 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean onlyRoot = data.readInt() != 0; 7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = token != null 7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ? getTaskForActivity(token, onlyRoot) : -1; 7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_CONTENT_PROVIDER_TRANSACTION: { 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String name = data.readString(); 8006d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey int userId = data.readInt(); 8016ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn boolean stable = data.readInt() != 0; 8026d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey ContentProviderHolder cph = getContentProvider(app, name, userId, stable); 8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (cph != null) { 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(1); 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project cph.writeToParcel(reply, 0); 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(0); 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 81325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov case GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION: { 81425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.enforceInterface(IActivityManager.descriptor); 81525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov String name = data.readString(); 8166d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey int userId = data.readInt(); 81725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov IBinder token = data.readStrongBinder(); 8186d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey ContentProviderHolder cph = getContentProviderExternal(name, userId, token); 81925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.writeNoException(); 82025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov if (cph != null) { 82125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.writeInt(1); 82225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov cph.writeToParcel(reply, 0); 82325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } else { 82425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.writeInt(0); 82525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 82625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov return true; 82725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 82825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov 8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PUBLISH_CONTENT_PROVIDERS_TRANSACTION: { 8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList<ContentProviderHolder> providers = 8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.createTypedArrayList(ContentProviderHolder.CREATOR); 8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project publishContentProviders(app, providers); 8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8406ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn case REF_CONTENT_PROVIDER_TRANSACTION: { 8416ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 8426ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn IBinder b = data.readStrongBinder(); 8436ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn int stable = data.readInt(); 8446ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn int unstable = data.readInt(); 8456ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn boolean res = refContentProvider(b, stable, unstable); 8466ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.writeNoException(); 8476ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.writeInt(res ? 1 : 0); 8486ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn return true; 8496ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn } 8506ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn 8516ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn case UNSTABLE_PROVIDER_DIED_TRANSACTION: { 8526ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 8536ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn IBinder b = data.readStrongBinder(); 8546ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn unstableProviderDied(b); 8556ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.writeNoException(); 8566ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn return true; 8576ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn } 8586ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn 8597aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey case APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION: { 8607aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey data.enforceInterface(IActivityManager.descriptor); 8617aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey IBinder b = data.readStrongBinder(); 8627aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey appNotRespondingViaProvider(b); 8637aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey reply.writeNoException(); 8647aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey return true; 8657aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey } 8667aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey 8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case REMOVE_CONTENT_PROVIDER_TRANSACTION: { 8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 8706ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn boolean stable = data.readInt() != 0; 8716ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn removeContentProvider(b, stable); 8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 87525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov 87625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov case REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION: { 87725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.enforceInterface(IActivityManager.descriptor); 87825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov String name = data.readString(); 87925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov IBinder token = data.readStrongBinder(); 88025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov removeContentProviderExternal(name, token); 88125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.writeNoException(); 88225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov return true; 88325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 88425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov 885dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn case GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION: { 886dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 887dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn ComponentName comp = ComponentName.CREATOR.createFromParcel(data); 888dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn PendingIntent pi = getRunningServiceControlPanel(comp); 889dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn reply.writeNoException(); 890dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn PendingIntent.writePendingIntentOrNullToParcel(pi, reply); 891dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn return true; 892dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn } 893dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn 8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case START_SERVICE_TRANSACTION: { 8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent service = Intent.CREATOR.createFromParcel(data); 8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 9007767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn int userId = data.readInt(); 9017767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn ComponentName cn = startService(app, service, resolvedType, userId); 9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(cn, reply); 9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case STOP_SERVICE_TRANSACTION: { 9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent service = Intent.CREATOR.createFromParcel(data); 9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 9137767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn int userId = data.readInt(); 9147767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn int res = stopService(app, service, resolvedType, userId); 9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case STOP_SERVICE_TOKEN_TRANSACTION: { 9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName className = ComponentName.readFromParcel(data); 9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int startId = data.readInt(); 9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = stopServiceToken(className, token, startId); 9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_SERVICE_FOREGROUND_TRANSACTION: { 9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName className = ComponentName.readFromParcel(data); 9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 935d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn int id = data.readInt(); 936d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn Notification notification = null; 937d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn if (data.readInt() != 0) { 938d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn notification = Notification.CREATOR.createFromParcel(data); 939d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn } 940d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn boolean removeNotification = data.readInt() != 0; 941d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn setServiceForeground(className, token, id, notification, removeNotification); 9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case BIND_SERVICE_TRANSACTION: { 9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent service = Intent.CREATOR.createFromParcel(data); 9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b = data.readStrongBinder(); 9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int fl = data.readInt(); 95537ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani int userId = data.readInt(); 9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IServiceConnection conn = IServiceConnection.Stub.asInterface(b); 95737ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani int res = bindService(app, token, service, resolvedType, conn, fl, userId); 9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case UNBIND_SERVICE_TRANSACTION: { 9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IServiceConnection conn = IServiceConnection.Stub.asInterface(b); 9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = unbindService(conn); 9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PUBLISH_SERVICE_TRANSACTION: { 9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = Intent.CREATOR.createFromParcel(data); 9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder service = data.readStrongBinder(); 9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project publishService(token, intent, service); 9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case UNBIND_FINISHED_TRANSACTION: { 9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = Intent.CREATOR.createFromParcel(data); 9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean doRebind = data.readInt() != 0; 9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unbindFinished(token, intent, doRebind); 9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SERVICE_DONE_EXECUTING_TRANSACTION: { 9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 996f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn int type = data.readInt(); 997f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn int startId = data.readInt(); 998f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn int res = data.readInt(); 999f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn serviceDoneExecuting(token, type, startId, res); 10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case START_INSTRUMENTATION_TRANSACTION: { 10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName className = ComponentName.readFromParcel(data); 10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String profileFile = data.readString(); 10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int fl = data.readInt(); 10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle arguments = data.readBundle(); 10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IInstrumentationWatcher w = IInstrumentationWatcher.Stub.asInterface(b); 101280943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov b = data.readStrongBinder(); 101380943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov IUiAutomationConnection c = IUiAutomationConnection.Stub.asInterface(b); 10145e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn int userId = data.readInt(); 10158dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath String abiOverride = data.readString(); 10168dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath boolean res = startInstrumentation(className, profileFile, fl, arguments, w, c, userId, 10178dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath abiOverride); 10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case FINISH_INSTRUMENTATION_TRANSACTION: { 10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int resultCode = data.readInt(); 10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Bundle results = data.readBundle(); 10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project finishInstrumentation(app, resultCode, results); 10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_CONFIGURATION_TRANSACTION: { 10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Configuration config = getConfiguration(); 10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project config.writeToParcel(reply, 0); 10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case UPDATE_CONFIGURATION_TRANSACTION: { 10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Configuration config = Configuration.CREATOR.createFromParcel(data); 10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project updateConfiguration(config); 10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_REQUESTED_ORIENTATION_TRANSACTION: { 10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int requestedOrientation = data.readInt(); 10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setRequestedOrientation(token, requestedOrientation); 10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_REQUESTED_ORIENTATION_TRANSACTION: { 10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int req = getRequestedOrientation(token); 10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(req); 10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION: { 10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName cn = getActivityClassForToken(token); 10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(cn, reply); 10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_PACKAGE_FOR_TOKEN_TRANSACTION: { 10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeString(getPackageForToken(token)); 10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_INTENT_SENDER_TRANSACTION: { 10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int type = data.readInt(); 10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String packageName = data.readString(); 10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resultWho = data.readString(); 10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int requestCode = data.readInt(); 1093621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn Intent[] requestIntents; 1094621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn String[] requestResolvedTypes; 1095621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn if (data.readInt() != 0) { 1096621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn requestIntents = data.createTypedArray(Intent.CREATOR); 1097621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn requestResolvedTypes = data.createStringArray(); 1098621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn } else { 1099621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn requestIntents = null; 1100621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn requestResolvedTypes = null; 1101621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn } 11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int fl = data.readInt(); 11037a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn Bundle options = data.readInt() != 0 11047a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 11054120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int userId = data.readInt(); 11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentSender res = getIntentSender(type, packageName, token, 1107621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn resultWho, requestCode, requestIntents, 11084120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn requestResolvedTypes, fl, options, userId); 11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeStrongBinder(res != null ? res.asBinder() : null); 11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case CANCEL_INTENT_SENDER_TRANSACTION: { 11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentSender r = IIntentSender.Stub.asInterface( 11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project cancelIntentSender(r); 11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION: { 11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentSender r = IIntentSender.Stub.asInterface( 11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String res = getPackageForIntentSender(r); 11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeString(res); 11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1133c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate case GET_UID_FOR_INTENT_SENDER_TRANSACTION: { 1134c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate data.enforceInterface(IActivityManager.descriptor); 1135c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate IIntentSender r = IIntentSender.Stub.asInterface( 1136c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate data.readStrongBinder()); 1137c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate int res = getUidForIntentSender(r); 1138c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate reply.writeNoException(); 1139c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate reply.writeInt(res); 1140c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate return true; 1141c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate } 1142c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate 11434120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn case HANDLE_INCOMING_USER_TRANSACTION: { 11444120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 11454120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int callingPid = data.readInt(); 11464120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int callingUid = data.readInt(); 11474120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int userId = data.readInt(); 11484120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn boolean allowAll = data.readInt() != 0 ; 11494120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn boolean requireFull = data.readInt() != 0; 11504120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn String name = data.readString(); 11514120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn String callerPackage = data.readString(); 11524120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int res = handleIncomingUser(callingPid, callingUid, userId, allowAll, 11534120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn requireFull, name, callerPackage); 11544120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn reply.writeNoException(); 11554120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn reply.writeInt(res); 11564120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn return true; 11574120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn } 11584120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn 11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_PROCESS_LIMIT_TRANSACTION: { 11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int max = data.readInt(); 11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setProcessLimit(max); 11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_PROCESS_LIMIT_TRANSACTION: { 11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int limit = getProcessLimit(); 11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(limit); 11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_PROCESS_FOREGROUND_TRANSACTION: { 11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder token = data.readStrongBinder(); 11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int pid = data.readInt(); 11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isForeground = data.readInt() != 0; 11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setProcessForeground(token, pid, isForeground); 11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case CHECK_PERMISSION_TRANSACTION: { 11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String perm = data.readString(); 11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int pid = data.readInt(); 11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int uid = data.readInt(); 11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = checkPermission(perm, pid, uid); 11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1196ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn case CHECK_PERMISSION_WITH_TOKEN_TRANSACTION: { 1197ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1198ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn String perm = data.readString(); 1199ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn int pid = data.readInt(); 1200ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn int uid = data.readInt(); 1201ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn IBinder token = data.readStrongBinder(); 1202ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn int res = checkPermissionWithToken(perm, pid, uid, token); 1203ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn reply.writeNoException(); 1204ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn reply.writeInt(res); 1205ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn return true; 1206ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn } 1207ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn 12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case CHECK_URI_PERMISSION_TRANSACTION: { 12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri = Uri.CREATOR.createFromParcel(data); 12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int pid = data.readInt(); 12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int uid = data.readInt(); 12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mode = data.readInt(); 1214d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot int userId = data.readInt(); 1215ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn IBinder callerToken = data.readStrongBinder(); 1216ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn int res = checkUriPermission(uri, pid, uid, mode, userId, callerToken); 12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res); 12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12214cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner 12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case CLEAR_APP_DATA_TRANSACTION: { 12234cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner data.enforceInterface(IActivityManager.descriptor); 12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String packageName = data.readString(); 12259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IPackageDataObserver observer = IPackageDataObserver.Stub.asInterface( 12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 1227742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani int userId = data.readInt(); 1228742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani boolean res = clearApplicationUserData(packageName, observer, userId); 12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12334cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner 12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GRANT_URI_PERMISSION_TRANSACTION: { 12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 12379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 12389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String targetPkg = data.readString(); 12399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri = Uri.CREATOR.createFromParcel(data); 12409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mode = data.readInt(); 1241d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot int userId = data.readInt(); 1242d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot grantUriPermission(app, targetPkg, uri, mode, userId); 12439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 12449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 12459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12464cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner 12479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case REVOKE_URI_PERMISSION_TRANSACTION: { 12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri = Uri.CREATOR.createFromParcel(data); 12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int mode = data.readInt(); 1253d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot int userId = data.readInt(); 1254d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot revokeUriPermission(app, uri, mode, userId); 12559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 12569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 12579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12584cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner 1259e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey case TAKE_PERSISTABLE_URI_PERMISSION_TRANSACTION: { 1260e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.enforceInterface(IActivityManager.descriptor); 1261e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey Uri uri = Uri.CREATOR.createFromParcel(data); 1262e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey int mode = data.readInt(); 1263d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot int userId = data.readInt(); 1264d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot takePersistableUriPermission(uri, mode, userId); 1265e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey reply.writeNoException(); 1266e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey return true; 1267e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey } 1268e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey 1269e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey case RELEASE_PERSISTABLE_URI_PERMISSION_TRANSACTION: { 1270e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.enforceInterface(IActivityManager.descriptor); 1271e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey Uri uri = Uri.CREATOR.createFromParcel(data); 1272e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey int mode = data.readInt(); 1273d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot int userId = data.readInt(); 1274d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot releasePersistableUriPermission(uri, mode, userId); 1275e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey reply.writeNoException(); 1276e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey return true; 1277e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey } 1278e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey 1279e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey case GET_PERSISTED_URI_PERMISSIONS_TRANSACTION: { 1280e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.enforceInterface(IActivityManager.descriptor); 1281bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey final String packageName = data.readString(); 1282bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey final boolean incoming = data.readInt() != 0; 1283bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey final ParceledListSlice<UriPermission> perms = getPersistedUriPermissions( 1284bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey packageName, incoming); 1285e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey reply.writeNoException(); 1286e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey perms.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 1287e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey return true; 1288e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey } 1289e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey 12909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SHOW_WAITING_FOR_DEBUGGER_TRANSACTION: { 12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder b = data.readStrongBinder(); 12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IApplicationThread app = ApplicationThreadNative.asInterface(b); 12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean waiting = data.readInt() != 0; 12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project showWaitingForDebugger(app, waiting); 12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_MEMORY_INFO_TRANSACTION: { 13019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 13029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo(); 13039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project getMemoryInfo(mi); 13049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 13059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mi.writeToParcel(reply, 0); 13069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case UNHANDLED_BACK_TRANSACTION: { 13109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 13119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project unhandledBack(); 13129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 13139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 13149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case OPEN_CONTENT_URI_TRANSACTION: { 13179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 13189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Uri uri = Uri.parse(data.readString()); 13199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ParcelFileDescriptor pfd = openContentUri(uri); 13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (pfd != null) { 13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(1); 13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project pfd.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 13249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(0); 13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1329ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn 1330ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn case SET_LOCK_SCREEN_SHOWN_TRANSACTION: { 1331ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1332ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn setLockScreenShown(data.readInt() != 0); 1333ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn reply.writeNoException(); 1334ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn return true; 1335ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn } 1336ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn 13379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_DEBUG_APP_TRANSACTION: { 13389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 13399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String pn = data.readString(); 13409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean wfd = data.readInt() != 0; 13419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean per = data.readInt() != 0; 13429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setDebugApp(pn, wfd, per); 13439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 13449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 13459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SET_ALWAYS_FINISH_TRANSACTION: { 13489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 13499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean enabled = data.readInt() != 0; 13509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project setAlwaysFinish(enabled); 13519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 13529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 13539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1355b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn case SET_ACTIVITY_CONTROLLER_TRANSACTION: { 13569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 1357b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn IActivityController watcher = IActivityController.Stub.asInterface( 13589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 1359b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn setActivityController(watcher); 1360cdb86bb15707d18004f22d761a0f9d2623769e4aSungmin Choi reply.writeNoException(); 13619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 13629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ENTER_SAFE_MODE_TRANSACTION: { 13659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 13669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project enterSafeMode(); 13679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 13689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 13699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case NOTE_WAKEUP_ALARM_TRANSACTION: { 13729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 13739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentSender is = IIntentSender.Stub.asInterface( 13749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.readStrongBinder()); 1375099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn int sourceUid = data.readInt(); 1376099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn String sourcePkg = data.readString(); 1377099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn noteWakeupAlarm(is, sourceUid, sourcePkg); 13789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 13799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 13809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1382e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu case KILL_PIDS_TRANSACTION: { 13839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 13849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int[] pids = data.createIntArray(); 1385e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu String reason = data.readString(); 1386648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn boolean secure = data.readInt() != 0; 1387648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn boolean res = killPids(pids, reason, secure); 13889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 13899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeInt(res ? 1 : 0); 13909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 13919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1393b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey case KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION: { 1394b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey data.enforceInterface(IActivityManager.descriptor); 1395b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey String reason = data.readString(); 1396b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey boolean res = killProcessesBelowForeground(reason); 1397b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey reply.writeNoException(); 1398b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey reply.writeInt(res ? 1 : 0); 1399b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey return true; 1400b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey } 1401b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey 140260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor case HANDLE_APPLICATION_CRASH_TRANSACTION: { 140360d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor data.enforceInterface(IActivityManager.descriptor); 140460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor IBinder app = data.readStrongBinder(); 140560d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data); 140660d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor handleApplicationCrash(app, ci); 140760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor reply.writeNoException(); 140860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor return true; 140960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor } 141060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor 141160d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor case HANDLE_APPLICATION_WTF_TRANSACTION: { 14129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 14139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder app = data.readStrongBinder(); 14149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String tag = data.readString(); 14155232271a41323594ae406be7476b6ca2f08af3d8Dianne Hackborn boolean system = data.readInt() != 0; 1416b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data); 14175232271a41323594ae406be7476b6ca2f08af3d8Dianne Hackborn boolean res = handleApplicationWtf(app, tag, system, ci); 14189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 141960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor reply.writeInt(res ? 1 : 0); 14209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 14219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1422b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor 1423438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick case HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION: { 1424438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick data.enforceInterface(IActivityManager.descriptor); 1425438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick IBinder app = data.readStrongBinder(); 142646d42387464a651268648659e91d022566d4844cBrad Fitzpatrick int violationMask = data.readInt(); 1427cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick StrictMode.ViolationInfo info = new StrictMode.ViolationInfo(data); 1428cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick handleApplicationStrictModeViolation(app, violationMask, info); 1429438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick reply.writeNoException(); 1430438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick return true; 1431438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick } 1432438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick 14339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case SIGNAL_PERSISTENT_PROCESSES_TRANSACTION: { 14349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 14359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int sig = data.readInt(); 14369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project signalPersistentProcesses(sig); 14379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 14389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 14399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 144103abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn case KILL_BACKGROUND_PROCESSES_TRANSACTION: { 144203abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 14439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String packageName = data.readString(); 14441676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn int userId = data.readInt(); 14451676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn killBackgroundProcesses(packageName, userId); 144603abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn reply.writeNoException(); 144703abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn return true; 144803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn } 1449e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn 1450e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn case KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION: { 1451e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1452e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn killAllBackgroundProcesses(); 1453e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn reply.writeNoException(); 1454e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn return true; 1455e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn } 14564cd0c13f8f765118a24e31548c058b5029481beaCraig Mautner 145703abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn case FORCE_STOP_PACKAGE_TRANSACTION: { 145803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 145903abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn String packageName = data.readString(); 14601676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn int userId = data.readInt(); 14611676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn forceStopPackage(packageName, userId); 14629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 14639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 14649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 146527ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn 146627ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn case GET_MY_MEMORY_STATE_TRANSACTION: { 146727ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 146827ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn ActivityManager.RunningAppProcessInfo info = 146927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn new ActivityManager.RunningAppProcessInfo(); 147027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn getMyMemoryState(info); 147127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn reply.writeNoException(); 147227ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn info.writeToParcel(reply, 0); 147327ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn return true; 147427ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn } 147527ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn 14769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case GET_DEVICE_CONFIGURATION_TRANSACTION: { 14779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 14789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ConfigurationInfo config = getDeviceConfigurationInfo(); 14799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 14809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project config.writeToParcel(reply, 0); 14819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 14829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14831b012d302b56b4adf950035136d1d191a1936d5aJeff Hao 1484f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project case PROFILE_CONTROL_TRANSACTION: { 1485f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 1486f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project String process = data.readString(); 14871676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn int userId = data.readInt(); 1488f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project boolean start = data.readInt() != 0; 14899a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8Romain Guy int profileType = data.readInt(); 14901b012d302b56b4adf950035136d1d191a1936d5aJeff Hao ProfilerInfo profilerInfo = data.readInt() != 0 14911b012d302b56b4adf950035136d1d191a1936d5aJeff Hao ? ProfilerInfo.CREATOR.createFromParcel(data) : null; 14921b012d302b56b4adf950035136d1d191a1936d5aJeff Hao boolean res = profileControl(process, userId, start, profilerInfo, profileType); 1493f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project reply.writeNoException(); 1494f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project reply.writeInt(res ? 1 : 0); 1495f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project return true; 1496f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project } 14971b012d302b56b4adf950035136d1d191a1936d5aJeff Hao 149855280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn case SHUTDOWN_TRANSACTION: { 149955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 150055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn boolean res = shutdown(data.readInt()); 150155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn reply.writeNoException(); 150255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn reply.writeInt(res ? 1 : 0); 150355280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn return true; 150455280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn } 150555280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn 150695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn case STOP_APP_SWITCHES_TRANSACTION: { 150795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 150895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn stopAppSwitches(); 150995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.writeNoException(); 151095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn return true; 151195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn } 151295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn 151395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn case RESUME_APP_SWITCHES_TRANSACTION: { 151495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 151595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn resumeAppSwitches(); 151695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.writeNoException(); 151795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn return true; 151895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn } 151995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn 15209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case PEEK_SERVICE_TRANSACTION: { 15219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.enforceInterface(IActivityManager.descriptor); 15229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent service = Intent.CREATOR.createFromParcel(data); 15239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String resolvedType = data.readString(); 15249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder binder = peekService(service, resolvedType); 15259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeNoException(); 15269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.writeStrongBinder(binder); 15279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 15289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1529181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 1530181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate case START_BACKUP_AGENT_TRANSACTION: { 1531181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.enforceInterface(IActivityManager.descriptor); 1532181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate ApplicationInfo info = ApplicationInfo.CREATOR.createFromParcel(data); 1533181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate int backupRestoreMode = data.readInt(); 1534181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate boolean success = bindBackupAgent(info, backupRestoreMode); 1535181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.writeNoException(); 1536181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.writeInt(success ? 1 : 0); 1537181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate return true; 1538181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 1539181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 1540181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate case BACKUP_AGENT_CREATED_TRANSACTION: { 1541181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.enforceInterface(IActivityManager.descriptor); 1542181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate String packageName = data.readString(); 1543181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate IBinder agent = data.readStrongBinder(); 1544181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate backupAgentCreated(packageName, agent); 1545181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.writeNoException(); 1546181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate return true; 1547181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 1548181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 1549181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate case UNBIND_BACKUP_AGENT_TRANSACTION: { 1550181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.enforceInterface(IActivityManager.descriptor); 1551181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate ApplicationInfo info = ApplicationInfo.CREATOR.createFromParcel(data); 1552181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate unbindBackupAgent(info); 1553181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.writeNoException(); 1554181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate return true; 1555181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 1556fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn 1557fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn case ADD_PACKAGE_DEPENDENCY_TRANSACTION: { 1558fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1559fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn String packageName = data.readString(); 1560fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn addPackageDependency(packageName); 1561fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn reply.writeNoException(); 1562fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn return true; 1563fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn } 1564fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn 15655e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn case KILL_APPLICATION_WITH_APPID_TRANSACTION: { 1566261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu data.enforceInterface(IActivityManager.descriptor); 1567261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu String pkg = data.readString(); 15685e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn int appid = data.readInt(); 156921d9b5669257ca931da2d383f12db4865479752aDianne Hackborn String reason = data.readString(); 157021d9b5669257ca931da2d383f12db4865479752aDianne Hackborn killApplicationWithAppId(pkg, appid, reason); 1571261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu reply.writeNoException(); 1572261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu return true; 1573261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu } 1574fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn 1575a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn case CLOSE_SYSTEM_DIALOGS_TRANSACTION: { 1576a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1577a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn String reason = data.readString(); 1578a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn closeSystemDialogs(reason); 1579a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn reply.writeNoException(); 1580a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn return true; 1581a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn } 15823025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn 15833025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn case GET_PROCESS_MEMORY_INFO_TRANSACTION: { 15843025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 15854f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn int[] pids = data.createIntArray(); 15864f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn Debug.MemoryInfo[] res = getProcessMemoryInfo(pids); 15873025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn reply.writeNoException(); 15884f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn reply.writeTypedArray(res, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 15893025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn return true; 15903025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn } 15915e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate 15925e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate case KILL_APPLICATION_PROCESS_TRANSACTION: { 15935e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate data.enforceInterface(IActivityManager.descriptor); 15945e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate String processName = data.readString(); 15955e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate int uid = data.readInt(); 15965e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate killApplicationProcess(processName, uid); 15975e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate reply.writeNoException(); 15985e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate return true; 15995e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate } 16003b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn 16013b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn case OVERRIDE_PENDING_TRANSITION_TRANSACTION: { 16023b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 16033b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn IBinder token = data.readStrongBinder(); 16043b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn String packageName = data.readString(); 16053b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn int enterAnim = data.readInt(); 16063b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn int exitAnim = data.readInt(); 16073b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn overridePendingTransition(token, packageName, enterAnim, exitAnim); 16089327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn reply.writeNoException(); 16099327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn return true; 16109327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn } 16119327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn 16129327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn case IS_USER_A_MONKEY_TRANSACTION: { 16139327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 16147e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn boolean areThey = isUserAMonkey(); 16159327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn reply.writeNoException(); 16167e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeInt(areThey ? 1 : 0); 16173b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn return true; 16183b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn } 1619860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn 16208f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz case SET_USER_IS_MONKEY_TRANSACTION: { 16218f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz data.enforceInterface(IActivityManager.descriptor); 16228f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz final boolean monkey = (data.readInt() == 1); 16238f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz setUserIsMonkey(monkey); 16248f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz reply.writeNoException(); 16258f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz return true; 16268f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz } 16278f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz 1628860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn case FINISH_HEAVY_WEIGHT_APP_TRANSACTION: { 1629860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1630860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn finishHeavyWeightApp(); 1631860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn reply.writeNoException(); 1632860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn return true; 1633860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn } 163469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 163569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler case IS_IMMERSIVE_TRANSACTION: { 163669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.enforceInterface(IActivityManager.descriptor); 163769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler IBinder token = data.readStrongBinder(); 16387e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn boolean isit = isImmersive(token); 163969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.writeNoException(); 16407e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeInt(isit ? 1 : 0); 164169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler return true; 164269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 164369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 1644d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner case IS_TOP_OF_TASK_TRANSACTION: { 1645d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner data.enforceInterface(IActivityManager.descriptor); 1646d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner IBinder token = data.readStrongBinder(); 1647d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner final boolean isTopOfTask = isTopOfTask(token); 1648d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner reply.writeNoException(); 1649d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner reply.writeInt(isTopOfTask ? 1 : 0); 1650d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner return true; 1651d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner } 1652d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner 16535eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner case CONVERT_FROM_TRANSLUCENT_TRANSACTION: { 16544addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner data.enforceInterface(IActivityManager.descriptor); 16554addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner IBinder token = data.readStrongBinder(); 1656bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner boolean converted = convertFromTranslucent(token); 16575eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner reply.writeNoException(); 1658bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner reply.writeInt(converted ? 1 : 0); 16595eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner return true; 16605eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner } 16615eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner 16625eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner case CONVERT_TO_TRANSLUCENT_TRANSACTION: { 16635eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner data.enforceInterface(IActivityManager.descriptor); 16645eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner IBinder token = data.readStrongBinder(); 1665233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner final Bundle bundle; 1666233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner if (data.readInt() == 0) { 1667233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner bundle = null; 1668233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner } else { 1669233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner bundle = data.readBundle(); 1670233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner } 1671233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner final ActivityOptions options = bundle == null ? null : new ActivityOptions(bundle); 1672233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner boolean converted = convertToTranslucent(token, options); 16734addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner reply.writeNoException(); 1674bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner reply.writeInt(converted ? 1 : 0); 16754addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner return true; 16764addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner } 16774addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner 1678233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner case GET_ACTIVITY_OPTIONS_TRANSACTION: { 1679233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner data.enforceInterface(IActivityManager.descriptor); 1680233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner IBinder token = data.readStrongBinder(); 1681233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner final ActivityOptions options = getActivityOptions(token); 1682233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner reply.writeNoException(); 1683233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner reply.writeBundle(options == null ? null : options.toBundle()); 1684233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner return true; 1685233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner } 1686233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner 168769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler case SET_IMMERSIVE_TRANSACTION: { 168869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.enforceInterface(IActivityManager.descriptor); 168969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler IBinder token = data.readStrongBinder(); 169069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler boolean imm = data.readInt() == 1; 169169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler setImmersive(token, imm); 169269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.writeNoException(); 169369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler return true; 169469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 169569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 169669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler case IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION: { 169769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.enforceInterface(IActivityManager.descriptor); 16987e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn boolean isit = isTopActivityImmersive(); 169969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.writeNoException(); 17007e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeInt(isit ? 1 : 0); 170169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler return true; 170269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 170369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 17049d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn case CRASH_APPLICATION_TRANSACTION: { 17059d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 17069d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn int uid = data.readInt(); 17079d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn int initialPid = data.readInt(); 17089d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn String packageName = data.readString(); 17099d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn String message = data.readString(); 17109d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn crashApplication(uid, initialPid, packageName, message); 17119d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn reply.writeNoException(); 17129d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn return true; 17139d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn } 1714cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn 1715cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn case GET_PROVIDER_MIME_TYPE_TRANSACTION: { 1716cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1717cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn Uri uri = Uri.CREATOR.createFromParcel(data); 17185e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn int userId = data.readInt(); 17195e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn String type = getProviderMimeType(uri, userId); 1720cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn reply.writeNoException(); 1721cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn reply.writeString(type); 1722cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn return true; 1723cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn } 1724cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn 17257e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn case NEW_URI_PERMISSION_OWNER_TRANSACTION: { 17267e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 17277e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn String name = data.readString(); 17287e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn IBinder perm = newUriPermissionOwner(name); 17297e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeNoException(); 17307e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeStrongBinder(perm); 17317e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn return true; 17327e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 17337e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn 17347e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn case GRANT_URI_PERMISSION_FROM_OWNER_TRANSACTION: { 17357e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 17367e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn IBinder owner = data.readStrongBinder(); 17377e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn int fromUid = data.readInt(); 17387e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn String targetPkg = data.readString(); 17397e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Uri uri = Uri.CREATOR.createFromParcel(data); 17407e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn int mode = data.readInt(); 1741f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot int sourceUserId = data.readInt(); 1742f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot int targetUserId = data.readInt(); 1743f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot grantUriPermissionFromOwner(owner, fromUid, targetPkg, uri, mode, sourceUserId, 1744f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot targetUserId); 17457e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeNoException(); 17467e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn return true; 17477e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 17487e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn 17497e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn case REVOKE_URI_PERMISSION_FROM_OWNER_TRANSACTION: { 17507e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 17517e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn IBinder owner = data.readStrongBinder(); 17527e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Uri uri = null; 17537e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn if (data.readInt() != 0) { 1754d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot uri = Uri.CREATOR.createFromParcel(data); 17557e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 17567e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn int mode = data.readInt(); 1757d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot int userId = data.readInt(); 1758d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot revokeUriPermissionFromOwner(owner, uri, mode, userId); 17597e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.writeNoException(); 17607e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn return true; 17617e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 17629d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn 176390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn case CHECK_GRANT_URI_PERMISSION_TRANSACTION: { 176490f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 176590f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn int callingUid = data.readInt(); 176690f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn String targetPkg = data.readString(); 176790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn Uri uri = Uri.CREATOR.createFromParcel(data); 176890f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn int modeFlags = data.readInt(); 1769d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot int userId = data.readInt(); 1770d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot int res = checkGrantUriPermission(callingUid, targetPkg, uri, modeFlags, userId); 177190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn reply.writeNoException(); 177290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn reply.writeInt(res); 177390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn return true; 177490f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn } 177590f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn 1776824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden case DUMP_HEAP_TRANSACTION: { 1777824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.enforceInterface(IActivityManager.descriptor); 1778824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden String process = data.readString(); 1779b12e1354f25f04e9c9a71da76c6fca858b7d39d0Dianne Hackborn int userId = data.readInt(); 1780824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden boolean managed = data.readInt() != 0; 1781824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden String path = data.readString(); 1782824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden ParcelFileDescriptor fd = data.readInt() != 0 1783c2be0d61830dd867f3092923e149e0cc251cdfc5Amith Yamasani ? ParcelFileDescriptor.CREATOR.createFromParcel(data) : null; 17841676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn boolean res = dumpHeap(process, userId, managed, path, fd); 1785824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden reply.writeNoException(); 1786824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden reply.writeInt(res ? 1 : 0); 1787824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden return true; 1788824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden } 1789824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden 1790621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn case START_ACTIVITIES_TRANSACTION: 1791621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn { 1792621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1793621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn IBinder b = data.readStrongBinder(); 1794621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn IApplicationThread app = ApplicationThreadNative.asInterface(b); 1795f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn String callingPackage = data.readString(); 1796621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn Intent[] intents = data.createTypedArray(Intent.CREATOR); 1797621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn String[] resolvedTypes = data.createStringArray(); 1798621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn IBinder resultTo = data.readStrongBinder(); 1799a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Bundle options = data.readInt() != 0 1800a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn ? Bundle.CREATOR.createFromParcel(data) : null; 1801ea7e91514ee1968d15713e82a5cca745e2c46a05Amith Yamasani int userId = data.readInt(); 1802f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn int result = startActivities(app, callingPackage, intents, resolvedTypes, resultTo, 1803ea7e91514ee1968d15713e82a5cca745e2c46a05Amith Yamasani options, userId); 1804621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn reply.writeNoException(); 1805621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn reply.writeInt(result); 1806621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn return true; 1807621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn } 1808621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn 18090f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn case GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION: 18100f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn { 18110f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 18120f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = getFrontActivityScreenCompatMode(); 18130f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeNoException(); 18140f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeInt(mode); 18150f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn return true; 18160f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 18170f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 18180f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn case SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION: 18190f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn { 18200f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 18210f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = data.readInt(); 18220f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn setFrontActivityScreenCompatMode(mode); 18230f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeNoException(); 18240f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeInt(mode); 18250f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn return true; 18260f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 18270f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 18280f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn case GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION: 18290f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn { 18300f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 18310f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn String pkg = data.readString(); 18320f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = getPackageScreenCompatMode(pkg); 18330f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeNoException(); 18340f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.writeInt(mode); 18350f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn return true; 18360f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 18370f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 1838e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn case SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION: 1839e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn { 1840e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1841e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn String pkg = data.readString(); 18420f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = data.readInt(); 18430f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn setPackageScreenCompatMode(pkg, mode); 1844e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn reply.writeNoException(); 1845e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn return true; 1846e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn } 1847aa9d84c37e05f696ec158dac98ce38cf41e18314Dianne Hackborn 18484b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani case SWITCH_USER_TRANSACTION: { 18494b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani data.enforceInterface(IActivityManager.descriptor); 18504b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani int userid = data.readInt(); 18514b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani boolean result = switchUser(userid); 18524b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani reply.writeNoException(); 18534b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani reply.writeInt(result ? 1 : 0); 18544b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani return true; 18554b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani } 185652f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani 185708488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy case START_USER_IN_BACKGROUND_TRANSACTION: { 185808488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy data.enforceInterface(IActivityManager.descriptor); 185908488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy int userid = data.readInt(); 186008488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy boolean result = startUserInBackground(userid); 186108488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy reply.writeNoException(); 186208488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy reply.writeInt(result ? 1 : 0); 186308488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy return true; 186408488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy } 186508488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy 186680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn case STOP_USER_TRANSACTION: { 186780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 186880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn int userid = data.readInt(); 186980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn IStopUserCallback callback = IStopUserCallback.Stub.asInterface( 187080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.readStrongBinder()); 187180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn int result = stopUser(userid, callback); 187280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn reply.writeNoException(); 187380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn reply.writeInt(result); 187480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn return true; 187580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn } 187680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 187752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani case GET_CURRENT_USER_TRANSACTION: { 187852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani data.enforceInterface(IActivityManager.descriptor); 187952f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani UserInfo userInfo = getCurrentUser(); 188052f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani reply.writeNoException(); 188152f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani userInfo.writeToParcel(reply, 0); 188252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani return true; 188352f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani } 188452f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani 18855e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn case IS_USER_RUNNING_TRANSACTION: { 18865e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 18875e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn int userid = data.readInt(); 1888a8a9bd65bf5865d83ef44f54552ca39522bfbcf0Dianne Hackborn boolean orStopping = data.readInt() != 0; 1889a8a9bd65bf5865d83ef44f54552ca39522bfbcf0Dianne Hackborn boolean result = isUserRunning(userid, orStopping); 18905e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn reply.writeNoException(); 18915e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn reply.writeInt(result ? 1 : 0); 18925e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn return true; 18935e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn } 18945e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn 1895c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn case GET_RUNNING_USER_IDS_TRANSACTION: { 1896c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1897c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn int[] result = getRunningUserIds(); 1898c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn reply.writeNoException(); 1899c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn reply.writeIntArray(result); 1900c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn return true; 1901c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn } 1902c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn 19030c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn case REMOVE_TASK_TRANSACTION: 19040c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn { 19050c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 19060c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn int taskId = data.readInt(); 1907d54b578e47fb410c776bb3a4272c2c523153f657Wale Ogunwale boolean result = removeTask(taskId); 19080c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.writeNoException(); 19090c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.writeInt(result ? 1 : 0); 19100c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn return true; 19110c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn } 19124b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani 1913a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey case REGISTER_PROCESS_OBSERVER_TRANSACTION: { 1914a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.enforceInterface(IActivityManager.descriptor); 1915a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey IProcessObserver observer = IProcessObserver.Stub.asInterface( 1916a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.readStrongBinder()); 1917a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey registerProcessObserver(observer); 1918a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey return true; 1919a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey } 1920a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey 1921a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey case UNREGISTER_PROCESS_OBSERVER_TRANSACTION: { 1922a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.enforceInterface(IActivityManager.descriptor); 1923a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey IProcessObserver observer = IProcessObserver.Stub.asInterface( 1924a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.readStrongBinder()); 1925a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey unregisterProcessObserver(observer); 1926a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey return true; 1927a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey } 1928a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey 192936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn case GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION: 193036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn { 193136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 193236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn String pkg = data.readString(); 193336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn boolean ask = getPackageAskScreenCompat(pkg); 193436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.writeNoException(); 193536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.writeInt(ask ? 1 : 0); 193636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn return true; 193736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn } 193836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn 193936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn case SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION: 194036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn { 194136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 194236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn String pkg = data.readString(); 194336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn boolean ask = data.readInt() != 0; 194436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn setPackageAskScreenCompat(pkg, ask); 194536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.writeNoException(); 194636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn return true; 194736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn } 194836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn 19496c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn case IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION: { 19506c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 19516c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn IIntentSender r = IIntentSender.Stub.asInterface( 1952fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn data.readStrongBinder()); 19536c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn boolean res = isIntentSenderTargetedToPackage(r); 19546c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn reply.writeNoException(); 19556c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn reply.writeInt(res ? 1 : 0); 19566c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn return true; 19576c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn } 19586c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn 19591927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn case IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION: { 19601927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 19611927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn IIntentSender r = IIntentSender.Stub.asInterface( 19621927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn data.readStrongBinder()); 19631927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn boolean res = isIntentSenderAnActivity(r); 19641927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn reply.writeNoException(); 19651927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn reply.writeInt(res ? 1 : 0); 19661927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn return true; 19671927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn } 19681927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn 19698103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn case GET_INTENT_FOR_INTENT_SENDER_TRANSACTION: { 19708103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 19718103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn IIntentSender r = IIntentSender.Stub.asInterface( 19728103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn data.readStrongBinder()); 19738103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn Intent intent = getIntentForIntentSender(r); 19748103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn reply.writeNoException(); 19758103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn if (intent != null) { 19768103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn reply.writeInt(1); 19778103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn intent.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 19788103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn } else { 19798103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn reply.writeInt(0); 19808103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn } 19818103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn return true; 19828103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn } 19838103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn 1984a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn case GET_TAG_FOR_INTENT_SENDER_TRANSACTION: { 1985a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 1986a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn IIntentSender r = IIntentSender.Stub.asInterface( 1987a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn data.readStrongBinder()); 1988a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn String prefix = data.readString(); 1989a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn String tag = getTagForIntentSender(r, prefix); 1990a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn reply.writeNoException(); 1991a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn reply.writeString(tag); 1992a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn return true; 1993a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn } 1994a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn 199531ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn case UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION: { 199631ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 199731ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn Configuration config = Configuration.CREATOR.createFromParcel(data); 199831ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn updatePersistentConfiguration(config); 199931ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn reply.writeNoException(); 200031ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn return true; 200131ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn } 200231ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn 2003b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn case GET_PROCESS_PSS_TRANSACTION: { 2004b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 2005b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn int[] pids = data.createIntArray(); 2006b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn long[] pss = getProcessPss(pids); 2007b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn reply.writeNoException(); 2008b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn reply.writeLongArray(pss); 2009b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn return true; 2010b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn } 2011b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn 2012661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn case SHOW_BOOT_MESSAGE_TRANSACTION: { 2013661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 2014661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn CharSequence msg = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data); 2015661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn boolean always = data.readInt() != 0; 2016661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn showBootMessage(msg, always); 2017661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn reply.writeNoException(); 2018661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn return true; 2019661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn } 2020661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn 20218de4311c51229efbe2f2d0afbf298982c5cadd96Jorim Jaggi case KEYGUARD_WAITING_FOR_ACTIVITY_DRAWN_TRANSACTION: { 202290c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 20238de4311c51229efbe2f2d0afbf298982c5cadd96Jorim Jaggi keyguardWaitingForActivityDrawn(); 202490c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn reply.writeNoException(); 202590c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn return true; 202690c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn } 202790c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn 20286f4d61ff2e3143bea37bbc1a7a2a0ab415b2c88aDianne Hackborn case SHOULD_UP_RECREATE_TASK_TRANSACTION: { 2029dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.enforceInterface(IActivityManager.descriptor); 2030dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell IBinder token = data.readStrongBinder(); 2031dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell String destAffinity = data.readString(); 20326f4d61ff2e3143bea37bbc1a7a2a0ab415b2c88aDianne Hackborn boolean res = shouldUpRecreateTask(token, destAffinity); 2033dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.writeNoException(); 2034dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.writeInt(res ? 1 : 0); 2035dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell return true; 2036dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 2037dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell 2038dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell case NAVIGATE_UP_TO_TRANSACTION: { 2039dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.enforceInterface(IActivityManager.descriptor); 2040dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell IBinder token = data.readStrongBinder(); 2041dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Intent target = Intent.CREATOR.createFromParcel(data); 2042dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell int resultCode = data.readInt(); 2043dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Intent resultData = null; 2044dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell if (data.readInt() != 0) { 2045dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell resultData = Intent.CREATOR.createFromParcel(data); 2046dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 2047dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell boolean res = navigateUpTo(token, target, resultCode, resultData); 2048dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.writeNoException(); 2049dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.writeInt(res ? 1 : 0); 2050dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell return true; 2051dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 2052dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell 20535320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn case GET_LAUNCHED_FROM_UID_TRANSACTION: { 20545320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 20555320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn IBinder token = data.readStrongBinder(); 20565320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn int res = getLaunchedFromUid(token); 20575320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn reply.writeNoException(); 20585320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn reply.writeInt(res); 20595320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn return true; 20605320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn } 20615320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn 2062f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn case GET_LAUNCHED_FROM_PACKAGE_TRANSACTION: { 2063f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 2064f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn IBinder token = data.readStrongBinder(); 2065f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn String res = getLaunchedFromPackage(token); 2066f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn reply.writeNoException(); 2067f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn reply.writeString(res); 2068f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn return true; 2069f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn } 2070f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn 20715dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn case REGISTER_USER_SWITCH_OBSERVER_TRANSACTION: { 20725dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 20735dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn IUserSwitchObserver observer = IUserSwitchObserver.Stub.asInterface( 20745dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn data.readStrongBinder()); 20755dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn registerUserSwitchObserver(observer); 20765fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn reply.writeNoException(); 20775dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn return true; 20785dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn } 20795dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn 20805dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn case UNREGISTER_USER_SWITCH_OBSERVER_TRANSACTION: { 20815dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 20825dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn IUserSwitchObserver observer = IUserSwitchObserver.Stub.asInterface( 20835dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn data.readStrongBinder()); 20845dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn unregisterUserSwitchObserver(observer); 20855fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn reply.writeNoException(); 20865dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn return true; 20875dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn } 20885dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn 2089d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn case REQUEST_BUG_REPORT_TRANSACTION: { 2090d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 2091d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn requestBugReport(); 20925fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn reply.writeNoException(); 20935fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn return true; 20945fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn } 20955fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn 20965fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn case INPUT_DISPATCHING_TIMED_OUT_TRANSACTION: { 20975fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 20985fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn int pid = data.readInt(); 20995fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn boolean aboveSystem = data.readInt() != 0; 2100bd181bb83282571eb793d2e4a48b4d19585de7f2Jeff Brown String reason = data.readString(); 2101bd181bb83282571eb793d2e4a48b4d19585de7f2Jeff Brown long res = inputDispatchingTimedOut(pid, aboveSystem, reason); 21025fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn reply.writeNoException(); 21035fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn reply.writeLong(res); 2104d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn return true; 2105d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn } 2106d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn 2107dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory case GET_ASSIST_CONTEXT_EXTRAS_TRANSACTION: { 2108f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 2109f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn int requestType = data.readInt(); 2110dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory Bundle res = getAssistContextExtras(requestType); 2111f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn reply.writeNoException(); 2112f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn reply.writeBundle(res); 2113f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn return true; 2114f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn } 2115f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn 2116dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory case REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION: { 2117f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 2118f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn IBinder token = data.readStrongBinder(); 2119f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn Bundle extras = data.readBundle(); 21207140a25f0135f473b66d01eb042471b2f0ebc836Adam Skory reportAssistContextExtras(token, extras); 2121f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn reply.writeNoException(); 2122f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn return true; 2123f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn } 2124f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn 2125fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn case LAUNCH_ASSIST_INTENT_TRANSACTION: { 2126fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 2127fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn Intent intent = Intent.CREATOR.createFromParcel(data); 2128fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn int requestType = data.readInt(); 2129fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn String hint = data.readString(); 2130fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn int userHandle = data.readInt(); 2131fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn boolean res = launchAssistIntent(intent, requestType, hint, userHandle); 2132fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn reply.writeNoException(); 2133fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn reply.writeInt(res ? 1 : 0); 2134fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn return true; 2135fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn } 2136fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn 2137f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn case KILL_UID_TRANSACTION: { 2138f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 2139f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn int uid = data.readInt(); 2140f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn String reason = data.readString(); 2141f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn killUid(uid, reason); 2142f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn reply.writeNoException(); 2143f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn return true; 2144f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn } 2145f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn 21468bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn case HANG_TRANSACTION: { 21478bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 21488bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn IBinder who = data.readStrongBinder(); 21498bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn boolean allowRestart = data.readInt() != 0; 21508bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn hang(who, allowRestart); 21518bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn reply.writeNoException(); 21528bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn return true; 21538bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn } 21548bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn 21552286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn case REPORT_ACTIVITY_FULLY_DRAWN_TRANSACTION: { 21562286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn data.enforceInterface(IActivityManager.descriptor); 21572286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn IBinder token = data.readStrongBinder(); 21582286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn reportActivityFullyDrawn(token); 21592286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn reply.writeNoException(); 21602286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn return true; 21612286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn } 21622286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn 21635eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner case NOTIFY_ACTIVITY_DRAWN_TRANSACTION: { 21645eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner data.enforceInterface(IActivityManager.descriptor); 21655eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner IBinder token = data.readStrongBinder(); 21665eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner notifyActivityDrawn(token); 21675eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner reply.writeNoException(); 21685eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner return true; 21695eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner } 217057a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn 217157a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn case RESTART_TRANSACTION: { 217257a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 217357a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn restart(); 217457a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn reply.writeNoException(); 217557a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn return true; 217657a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn } 217708da7a1143b0c9cfb703971d882e0886bbd7d9deJeff Sharkey 217835f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn case PERFORM_IDLE_MAINTENANCE_TRANSACTION: { 217935f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn data.enforceInterface(IActivityManager.descriptor); 218035f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn performIdleMaintenance(); 218135f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn reply.writeNoException(); 218235f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn return true; 218335f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn } 21844a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner 21854a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner case CREATE_ACTIVITY_CONTAINER_TRANSACTION: { 21864a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner data.enforceInterface(IActivityManager.descriptor); 21874a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner IBinder parentActivityToken = data.readStrongBinder(); 21884a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner IActivityContainerCallback callback = 2189e3a00d745fad479f560e96cec23e957f37d1c043Craig Mautner IActivityContainerCallback.Stub.asInterface(data.readStrongBinder()); 21904a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner IActivityContainer activityContainer = 21914a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner createActivityContainer(parentActivityToken, callback); 21924a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner reply.writeNoException(); 2193bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner if (activityContainer != null) { 2194bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner reply.writeInt(1); 2195bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner reply.writeStrongBinder(activityContainer.asBinder()); 2196bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner } else { 2197bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner reply.writeInt(0); 2198bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner } 21994a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner return true; 22004a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner } 22014a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner 220295da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner case DELETE_ACTIVITY_CONTAINER_TRANSACTION: { 220395da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner data.enforceInterface(IActivityManager.descriptor); 220495da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner IActivityContainer activityContainer = 220595da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner IActivityContainer.Stub.asInterface(data.readStrongBinder()); 220695da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner deleteActivityContainer(activityContainer); 220795da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner reply.writeNoException(); 220895da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner return true; 220995da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner } 221095da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner 221136ebab675cba49e5201c5c228a524e6e1bb7dceaCraig Mautner case GET_ACTIVITY_DISPLAY_ID_TRANSACTION: { 2212e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner data.enforceInterface(IActivityManager.descriptor); 2213e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner IBinder activityToken = data.readStrongBinder(); 221436ebab675cba49e5201c5c228a524e6e1bb7dceaCraig Mautner int displayId = getActivityDisplayId(activityToken); 2215e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner reply.writeNoException(); 221636ebab675cba49e5201c5c228a524e6e1bb7dceaCraig Mautner reply.writeInt(displayId); 2217e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner return true; 2218e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner } 2219e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner 22204a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner case GET_HOME_ACTIVITY_TOKEN_TRANSACTION: { 22214a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner data.enforceInterface(IActivityManager.descriptor); 22224a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner IBinder homeActivityToken = getHomeActivityToken(); 22234a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner reply.writeNoException(); 22244a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner reply.writeStrongBinder(homeActivityToken); 22254a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner return true; 22264a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner } 2227aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner 2228aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner case START_LOCK_TASK_BY_TASK_ID_TRANSACTION: { 2229aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.enforceInterface(IActivityManager.descriptor); 2230aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner final int taskId = data.readInt(); 2231aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner startLockTaskMode(taskId); 2232aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.writeNoException(); 2233aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner return true; 2234aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner } 2235aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner 2236aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner case START_LOCK_TASK_BY_TOKEN_TRANSACTION: { 2237aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.enforceInterface(IActivityManager.descriptor); 2238aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner IBinder token = data.readStrongBinder(); 2239aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner startLockTaskMode(token); 2240aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.writeNoException(); 2241aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner return true; 2242aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner } 2243aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner 2244d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner case START_LOCK_TASK_BY_CURRENT_TRANSACTION: { 224562515beee67307d8859beec521b7baedfa54b2b5Jason Monk data.enforceInterface(IActivityManager.descriptor); 224662515beee67307d8859beec521b7baedfa54b2b5Jason Monk startLockTaskModeOnCurrent(); 224762515beee67307d8859beec521b7baedfa54b2b5Jason Monk reply.writeNoException(); 224862515beee67307d8859beec521b7baedfa54b2b5Jason Monk return true; 224962515beee67307d8859beec521b7baedfa54b2b5Jason Monk } 225062515beee67307d8859beec521b7baedfa54b2b5Jason Monk 2251aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner case STOP_LOCK_TASK_MODE_TRANSACTION: { 2252aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.enforceInterface(IActivityManager.descriptor); 2253aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner stopLockTaskMode(); 2254aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.writeNoException(); 2255aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner return true; 2256aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner } 2257aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner 2258d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner case STOP_LOCK_TASK_BY_CURRENT_TRANSACTION: { 225962515beee67307d8859beec521b7baedfa54b2b5Jason Monk data.enforceInterface(IActivityManager.descriptor); 226062515beee67307d8859beec521b7baedfa54b2b5Jason Monk stopLockTaskModeOnCurrent(); 226162515beee67307d8859beec521b7baedfa54b2b5Jason Monk reply.writeNoException(); 226262515beee67307d8859beec521b7baedfa54b2b5Jason Monk return true; 226362515beee67307d8859beec521b7baedfa54b2b5Jason Monk } 226462515beee67307d8859beec521b7baedfa54b2b5Jason Monk 2265aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner case IS_IN_LOCK_TASK_MODE_TRANSACTION: { 2266aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.enforceInterface(IActivityManager.descriptor); 2267aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner final boolean isInLockTaskMode = isInLockTaskMode(); 2268aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.writeNoException(); 2269aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.writeInt(isInLockTaskMode ? 1 : 0); 2270aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner return true; 2271aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner } 22722fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner 2273a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung case SET_TASK_DESCRIPTION_TRANSACTION: { 22742fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner data.enforceInterface(IActivityManager.descriptor); 22752fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner IBinder token = data.readStrongBinder(); 2276a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung ActivityManager.TaskDescription values = 2277a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung ActivityManager.TaskDescription.CREATOR.createFromParcel(data); 2278a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung setTaskDescription(token, values); 22792fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner reply.writeNoException(); 22802fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner return true; 22812fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner } 2282ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner 2283648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner case GET_TASK_DESCRIPTION_ICON_TRANSACTION: { 2284648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner data.enforceInterface(IActivityManager.descriptor); 2285648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner String filename = data.readString(); 2286648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner Bitmap icon = getTaskDescriptionIcon(filename); 2287648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner reply.writeNoException(); 2288648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner if (icon == null) { 2289648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner reply.writeInt(0); 2290648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner } else { 2291648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner reply.writeInt(1); 2292648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner icon.writeToParcel(reply, 0); 2293648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner } 2294648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner return true; 2295648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner } 2296648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner 2297044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung case START_IN_PLACE_ANIMATION_TRANSACTION: { 2298044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung data.enforceInterface(IActivityManager.descriptor); 2299044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung final Bundle bundle; 2300044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung if (data.readInt() == 0) { 2301044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung bundle = null; 2302044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung } else { 2303044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung bundle = data.readBundle(); 2304044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung } 2305044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung final ActivityOptions options = bundle == null ? null : new ActivityOptions(bundle); 2306044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung startInPlaceAnimationOnFrontMostApplication(options); 2307044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung reply.writeNoException(); 2308044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung return true; 2309044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung } 2310044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung 23114b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima case REQUEST_VISIBLE_BEHIND_TRANSACTION: { 2312ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.enforceInterface(IActivityManager.descriptor); 2313ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner IBinder token = data.readStrongBinder(); 2314ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner boolean enable = data.readInt() > 0; 23154b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima boolean success = requestVisibleBehind(token, enable); 2316ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.writeNoException(); 2317ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.writeInt(success ? 1 : 0); 2318ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner return true; 2319ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner } 2320ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner 23214b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima case IS_BACKGROUND_VISIBLE_BEHIND_TRANSACTION: { 2322ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.enforceInterface(IActivityManager.descriptor); 2323ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner IBinder token = data.readStrongBinder(); 23244b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima final boolean enabled = isBackgroundVisibleBehind(token); 2325ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.writeNoException(); 2326ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.writeInt(enabled ? 1 : 0); 2327ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner return true; 2328ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner } 2329ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner 23304b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima case BACKGROUND_RESOURCES_RELEASED_TRANSACTION: { 2331ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.enforceInterface(IActivityManager.descriptor); 2332ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner IBinder token = data.readStrongBinder(); 23334b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima backgroundResourcesReleased(token); 2334ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.writeNoException(); 2335ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner return true; 2336ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner } 2337bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner 2338bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner case NOTIFY_LAUNCH_TASK_BEHIND_COMPLETE_TRANSACTION: { 2339bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner data.enforceInterface(IActivityManager.descriptor); 2340bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner IBinder token = data.readStrongBinder(); 2341bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner notifyLaunchTaskBehindComplete(token); 2342bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner reply.writeNoException(); 2343bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner return true; 2344bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner } 23458746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner 23468746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner case NOTIFY_ENTER_ANIMATION_COMPLETE_TRANSACTION: { 23478746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner data.enforceInterface(IActivityManager.descriptor); 23488746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner IBinder token = data.readStrongBinder(); 23498746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner notifyEnterAnimationComplete(token); 23508746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner reply.writeNoException(); 23518746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner return true; 23528746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner } 23536e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner 23546e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner case BOOT_ANIMATION_COMPLETE_TRANSACTION: { 23556e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner data.enforceInterface(IActivityManager.descriptor); 23566e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner bootAnimationComplete(); 23576e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner reply.writeNoException(); 23586e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner return true; 23596e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner } 236018795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale 236118795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale case SYSTEM_BACKUP_RESTORED: { 236218795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale data.enforceInterface(IActivityManager.descriptor); 236318795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale systemBackupRestored(); 236418795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale reply.writeNoException(); 236518795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale return true; 236618795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale } 23679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2368663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick 23699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return super.onTransact(code, data, reply, flags); 23709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 23719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2372663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick public IBinder asBinder() { 23739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return this; 23749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 23759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2376663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick private static final Singleton<IActivityManager> gDefault = new Singleton<IActivityManager>() { 2377663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick protected IActivityManager create() { 2378663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick IBinder b = ServiceManager.getService("activity"); 237943a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) { 2380663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick Log.v("ActivityManager", "default service binder = " + b); 2381663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick } 2382663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick IActivityManager am = asInterface(b); 238343a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato if (false) { 2384663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick Log.v("ActivityManager", "default service = " + am); 2385663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick } 2386663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick return am; 2387663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick } 2388663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick }; 23899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 23909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 23919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass ActivityManagerProxy implements IActivityManager 23929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 23939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ActivityManagerProxy(IBinder remote) 23949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 23959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote = remote; 23969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 239792a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy 23989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public IBinder asBinder() 23999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 24009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mRemote; 24019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 240292a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy 2403f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn public int startActivity(IApplicationThread caller, String callingPackage, Intent intent, 2404a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn String resolvedType, IBinder resultTo, String resultWho, int requestCode, 24051b012d302b56b4adf950035136d1d191a1936d5aJeff Hao int startFlags, ProfilerInfo profilerInfo, Bundle options) throws RemoteException { 24069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 24079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 24089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 24099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 2410f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn data.writeString(callingPackage); 24119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 24129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 24139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(resultTo); 24149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resultWho); 24159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(requestCode); 2416a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(startFlags); 24171b012d302b56b4adf950035136d1d191a1936d5aJeff Hao if (profilerInfo != null) { 241862f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeInt(1); 24191b012d302b56b4adf950035136d1d191a1936d5aJeff Hao profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 242062f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn } else { 242162f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeInt(0); 242262f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn } 2423a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 2424a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 2425a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 2426a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 2427a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 2428a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 24299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0); 24309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 24319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int result = reply.readInt(); 24329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 24339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 24349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 24359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 24368264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani 2437f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn public int startActivityAsUser(IApplicationThread caller, String callingPackage, Intent intent, 24388264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani String resolvedType, IBinder resultTo, String resultWho, int requestCode, 24391b012d302b56b4adf950035136d1d191a1936d5aJeff Hao int startFlags, ProfilerInfo profilerInfo, Bundle options, 24401b012d302b56b4adf950035136d1d191a1936d5aJeff Hao int userId) throws RemoteException { 24418264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani Parcel data = Parcel.obtain(); 24428264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani Parcel reply = Parcel.obtain(); 24438264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInterfaceToken(IActivityManager.descriptor); 24448264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeStrongBinder(caller != null ? caller.asBinder() : null); 2445f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn data.writeString(callingPackage); 24468264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani intent.writeToParcel(data, 0); 24478264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeString(resolvedType); 24488264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeStrongBinder(resultTo); 24498264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeString(resultWho); 24508264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(requestCode); 24518264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(startFlags); 24521b012d302b56b4adf950035136d1d191a1936d5aJeff Hao if (profilerInfo != null) { 24538264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(1); 24541b012d302b56b4adf950035136d1d191a1936d5aJeff Hao profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 24558264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } else { 24568264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(0); 24578264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } 24588264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani if (options != null) { 24598264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(1); 24608264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani options.writeToParcel(data, 0); 24618264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } else { 24628264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(0); 24638264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } 24648264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(userId); 24658264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani mRemote.transact(START_ACTIVITY_AS_USER_TRANSACTION, data, reply, 0); 24668264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani reply.readException(); 24678264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int result = reply.readInt(); 24688264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani reply.recycle(); 24698264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.recycle(); 24708264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani return result; 24718264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani } 2472028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn public int startActivityAsCaller(IApplicationThread caller, String callingPackage, 2473028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, 24749797880808320e3a7bae1f59bc7e0c5a13189e5fJeff Sharkey int startFlags, ProfilerInfo profilerInfo, Bundle options, int userId) throws RemoteException { 2475028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn Parcel data = Parcel.obtain(); 2476028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn Parcel reply = Parcel.obtain(); 2477028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 2478028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeStrongBinder(caller != null ? caller.asBinder() : null); 2479028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeString(callingPackage); 2480028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn intent.writeToParcel(data, 0); 2481028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeString(resolvedType); 2482028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeStrongBinder(resultTo); 2483028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeString(resultWho); 2484028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeInt(requestCode); 2485028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeInt(startFlags); 24861b012d302b56b4adf950035136d1d191a1936d5aJeff Hao if (profilerInfo != null) { 2487028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeInt(1); 24881b012d302b56b4adf950035136d1d191a1936d5aJeff Hao profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 2489028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn } else { 2490028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeInt(0); 2491028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn } 2492028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn if (options != null) { 2493028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeInt(1); 2494028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn options.writeToParcel(data, 0); 2495028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn } else { 2496028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.writeInt(0); 2497028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn } 24989797880808320e3a7bae1f59bc7e0c5a13189e5fJeff Sharkey data.writeInt(userId); 2499028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn mRemote.transact(START_ACTIVITY_AS_CALLER_TRANSACTION, data, reply, 0); 2500028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn reply.readException(); 2501028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn int result = reply.readInt(); 2502028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn reply.recycle(); 2503028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn data.recycle(); 2504028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn return result; 2505028ceeb472801bcfa5844fc89ed0da8463098824Dianne Hackborn } 2506f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn public WaitResult startActivityAndWait(IApplicationThread caller, String callingPackage, 2507f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn Intent intent, String resolvedType, IBinder resultTo, String resultWho, 25081b012d302b56b4adf950035136d1d191a1936d5aJeff Hao int requestCode, int startFlags, ProfilerInfo profilerInfo, Bundle options, 25091b012d302b56b4adf950035136d1d191a1936d5aJeff Hao int userId) throws RemoteException { 25108f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn Parcel data = Parcel.obtain(); 25118f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn Parcel reply = Parcel.obtain(); 25128f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 25138f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeStrongBinder(caller != null ? caller.asBinder() : null); 2514f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn data.writeString(callingPackage); 25158f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn intent.writeToParcel(data, 0); 25168f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeString(resolvedType); 25178f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeStrongBinder(resultTo); 25188f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeString(resultWho); 25198f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.writeInt(requestCode); 2520a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(startFlags); 25211b012d302b56b4adf950035136d1d191a1936d5aJeff Hao if (profilerInfo != null) { 252262f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeInt(1); 25231b012d302b56b4adf950035136d1d191a1936d5aJeff Hao profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 252462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn } else { 252562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeInt(0); 252662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn } 2527a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 2528a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 2529a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 2530a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 2531a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 2532a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 25335e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInt(userId); 25348f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn mRemote.transact(START_ACTIVITY_AND_WAIT_TRANSACTION, data, reply, 0); 25358f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn reply.readException(); 25368f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn WaitResult result = WaitResult.CREATOR.createFromParcel(reply); 25378f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn reply.recycle(); 25388f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn data.recycle(); 25398f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn return result; 25408f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn } 2541f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn public int startActivityWithConfig(IApplicationThread caller, String callingPackage, 2542f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn Intent intent, String resolvedType, IBinder resultTo, String resultWho, 2543a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int requestCode, int startFlags, Configuration config, 25444120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn Bundle options, int userId) throws RemoteException { 25452ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn Parcel data = Parcel.obtain(); 25462ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn Parcel reply = Parcel.obtain(); 25472ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 25482ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeStrongBinder(caller != null ? caller.asBinder() : null); 2549f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn data.writeString(callingPackage); 25502ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn intent.writeToParcel(data, 0); 25512ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeString(resolvedType); 25522ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeStrongBinder(resultTo); 25532ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeString(resultWho); 25542ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.writeInt(requestCode); 2555a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(startFlags); 25562ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn config.writeToParcel(data, 0); 2557a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 2558a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 2559a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 2560a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 2561a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 2562a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 25634120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(userId); 25642ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0); 25652ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn reply.readException(); 25662ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn int result = reply.readInt(); 25672ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn reply.recycle(); 25682ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn data.recycle(); 25692ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn return result; 25702ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn } 2571fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn public int startActivityIntentSender(IApplicationThread caller, 2572fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn IntentSender intent, Intent fillInIntent, String resolvedType, 2573bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn IBinder resultTo, String resultWho, int requestCode, 2574a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn int flagsMask, int flagsValues, Bundle options) throws RemoteException { 2575bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn Parcel data = Parcel.obtain(); 2576bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn Parcel reply = Parcel.obtain(); 2577bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 2578bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeStrongBinder(caller != null ? caller.asBinder() : null); 2579bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn intent.writeToParcel(data, 0); 2580bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn if (fillInIntent != null) { 2581bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInt(1); 2582bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn fillInIntent.writeToParcel(data, 0); 2583bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn } else { 2584bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInt(0); 2585bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn } 2586bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeString(resolvedType); 2587bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeStrongBinder(resultTo); 2588bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeString(resultWho); 2589bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInt(requestCode); 2590bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInt(flagsMask); 2591bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.writeInt(flagsValues); 2592a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 2593a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 2594a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 2595a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 2596a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 2597a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 2598fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn mRemote.transact(START_ACTIVITY_INTENT_SENDER_TRANSACTION, data, reply, 0); 2599bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn reply.readException(); 2600bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn int result = reply.readInt(); 2601bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn reply.recycle(); 2602bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn data.recycle(); 2603bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn return result; 2604bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn } 260591097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn public int startVoiceActivity(String callingPackage, int callingPid, int callingUid, 260691097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn Intent intent, String resolvedType, IVoiceInteractionSession session, 26071b012d302b56b4adf950035136d1d191a1936d5aJeff Hao IVoiceInteractor interactor, int startFlags, ProfilerInfo profilerInfo, 26081b012d302b56b4adf950035136d1d191a1936d5aJeff Hao Bundle options, int userId) throws RemoteException { 260991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn Parcel data = Parcel.obtain(); 261091097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn Parcel reply = Parcel.obtain(); 261191097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 261291097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeString(callingPackage); 261391097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeInt(callingPid); 261491097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeInt(callingUid); 261591097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn intent.writeToParcel(data, 0); 261691097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeString(resolvedType); 261791097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeStrongBinder(session.asBinder()); 261891097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeStrongBinder(interactor.asBinder()); 261991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeInt(startFlags); 26201b012d302b56b4adf950035136d1d191a1936d5aJeff Hao if (profilerInfo != null) { 262191097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeInt(1); 26221b012d302b56b4adf950035136d1d191a1936d5aJeff Hao profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 262391097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn } else { 262491097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeInt(0); 262591097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn } 262691097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn if (options != null) { 262791097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeInt(1); 262891097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn options.writeToParcel(data, 0); 262991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn } else { 263091097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeInt(0); 263191097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn } 263291097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.writeInt(userId); 263391097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn mRemote.transact(START_VOICE_ACTIVITY_TRANSACTION, data, reply, 0); 263491097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn reply.readException(); 263591097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn int result = reply.readInt(); 263691097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn reply.recycle(); 263791097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn data.recycle(); 263891097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn return result; 263991097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn } 26409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean startNextMatchingActivity(IBinder callingActivity, 2641a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Intent intent, Bundle options) throws RemoteException { 26429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 26439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 26449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 26459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(callingActivity); 26469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 2647a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 2648a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 2649a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 2650a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 2651a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 2652a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 26539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(START_NEXT_MATCHING_ACTIVITY_TRANSACTION, data, reply, 0); 26549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 26559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int result = reply.readInt(); 26569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 26579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 26589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result != 0; 26599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2660dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner public int startActivityFromRecents(int taskId, Bundle options) throws RemoteException { 2661dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner Parcel data = Parcel.obtain(); 2662dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner Parcel reply = Parcel.obtain(); 2663dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 2664dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner data.writeInt(taskId); 2665dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner if (options == null) { 2666dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner data.writeInt(0); 2667dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner } else { 2668dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner data.writeInt(1); 2669dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner options.writeToParcel(data, 0); 2670dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner } 2671dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner mRemote.transact(START_ACTIVITY_FROM_RECENTS_TRANSACTION, data, reply, 0); 2672dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner reply.readException(); 2673dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner int result = reply.readInt(); 2674dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner reply.recycle(); 2675dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner data.recycle(); 2676dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner return result; 2677dc00cbe2c15eef5141656311a6d05c753d7c6db6Craig Mautner } 26783b3f464445d1d369c8e87f526deba606ca62f76cWinson Chung public boolean finishActivity(IBinder token, int resultCode, Intent resultData, boolean finishTask) 26799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 26809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 26819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 26829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 26839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 26849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(resultCode); 26859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (resultData != null) { 26869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(1); 26879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project resultData.writeToParcel(data, 0); 26889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 26899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(0); 26909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26913b3f464445d1d369c8e87f526deba606ca62f76cWinson Chung data.writeInt(finishTask ? 1 : 0); 26929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(FINISH_ACTIVITY_TRANSACTION, data, reply, 0); 26939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 26949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 26959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 26969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 26979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 26989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void finishSubActivity(IBinder token, String resultWho, int requestCode) throws RemoteException 27009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 27019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 27029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 27039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 27049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 27059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resultWho); 27069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(requestCode); 27079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(FINISH_SUB_ACTIVITY_TRANSACTION, data, reply, 0); 27089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 27099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 27109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 27119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2712ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn public boolean finishActivityAffinity(IBinder token) throws RemoteException { 2713ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn Parcel data = Parcel.obtain(); 2714ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn Parcel reply = Parcel.obtain(); 2715ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 2716ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn data.writeStrongBinder(token); 2717ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn mRemote.transact(FINISH_ACTIVITY_AFFINITY_TRANSACTION, data, reply, 0); 2718ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn reply.readException(); 2719ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn boolean res = reply.readInt() != 0; 2720ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn data.recycle(); 2721ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn reply.recycle(); 2722ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn return res; 2723ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn } 27246ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn public void finishVoiceTask(IVoiceInteractionSession session) throws RemoteException { 27256ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn Parcel data = Parcel.obtain(); 27266ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn Parcel reply = Parcel.obtain(); 27276ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 27286ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn data.writeStrongBinder(session.asBinder()); 27296ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn mRemote.transact(FINISH_VOICE_TASK_TRANSACTION, data, reply, 0); 27306ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn reply.readException(); 27316ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn data.recycle(); 27326ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn reply.recycle(); 27336ea0d0a2592395b8980c24304733daec628e947eDianne Hackborn } 273489ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn public boolean releaseActivityInstance(IBinder token) throws RemoteException { 273589ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn Parcel data = Parcel.obtain(); 273689ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn Parcel reply = Parcel.obtain(); 273789ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 273889ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn data.writeStrongBinder(token); 273989ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn mRemote.transact(RELEASE_ACTIVITY_INSTANCE_TRANSACTION, data, reply, 0); 274089ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn reply.readException(); 274189ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn boolean res = reply.readInt() != 0; 274289ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn data.recycle(); 274389ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn reply.recycle(); 274489ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn return res; 274589ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn } 274689ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn public void releaseSomeActivities(IApplicationThread app) throws RemoteException { 274789ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn Parcel data = Parcel.obtain(); 274889ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn Parcel reply = Parcel.obtain(); 274989ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 275089ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn data.writeStrongBinder(app.asBinder()); 275189ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn mRemote.transact(RELEASE_SOME_ACTIVITIES_TRANSACTION, data, reply, 0); 275289ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn reply.readException(); 275389ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn data.recycle(); 275489ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn reply.recycle(); 275589ad456ea49cb62615ebdcac83a2515743bbe5faDianne Hackborn } 2756061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn public boolean willActivityBeVisible(IBinder token) throws RemoteException { 2757061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn Parcel data = Parcel.obtain(); 2758061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn Parcel reply = Parcel.obtain(); 2759061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 2760061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn data.writeStrongBinder(token); 2761061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn mRemote.transact(WILL_ACTIVITY_BE_VISIBLE_TRANSACTION, data, reply, 0); 2762061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn reply.readException(); 2763061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn boolean res = reply.readInt() != 0; 2764061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn data.recycle(); 2765061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn reply.recycle(); 2766061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn return res; 2767061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn } 27686c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn public Intent registerReceiver(IApplicationThread caller, String packageName, 27699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentReceiver receiver, 277020e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn IntentFilter filter, String perm, int userId) throws RemoteException 27719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 27729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 27739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 27749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 27759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 27766c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.writeString(packageName); 27779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(receiver != null ? receiver.asBinder() : null); 27789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project filter.writeToParcel(data, 0); 27799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(perm); 278020e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn data.writeInt(userId); 27819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(REGISTER_RECEIVER_TRANSACTION, data, reply, 0); 27829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 27839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent = null; 27849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int haveIntent = reply.readInt(); 27859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (haveIntent != 0) { 27869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent = Intent.CREATOR.createFromParcel(reply); 27879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 27889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 27899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 27909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return intent; 27919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 27929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void unregisterReceiver(IIntentReceiver receiver) throws RemoteException 27939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 27949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 27959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 27969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 27979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(receiver.asBinder()); 27989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UNREGISTER_RECEIVER_TRANSACTION, data, reply, 0); 27999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int broadcastIntent(IApplicationThread caller, 28049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent, String resolvedType, IIntentReceiver resultTo, 28059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int resultCode, String resultData, Bundle map, 2806f51f61269aacdfcf737b2c32b6b216c48ab61e65Dianne Hackborn String requiredPermission, int appOp, boolean serialized, 2807742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani boolean sticky, int userId) throws RemoteException 28089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 28099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 28139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 28149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 28159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(resultTo != null ? resultTo.asBinder() : null); 28169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(resultCode); 28179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resultData); 28189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeBundle(map); 28199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(requiredPermission); 2820f51f61269aacdfcf737b2c32b6b216c48ab61e65Dianne Hackborn data.writeInt(appOp); 28219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(serialized ? 1 : 0); 28229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(sticky ? 1 : 0); 2823742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani data.writeInt(userId); 28249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(BROADCAST_INTENT_TRANSACTION, data, reply, 0); 28259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 28279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 28309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2831742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani public void unbroadcastIntent(IApplicationThread caller, Intent intent, int userId) 2832742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani throws RemoteException 28339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 28349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 28389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 2839742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani data.writeInt(userId); 28409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UNBROADCAST_INTENT_TRANSACTION, data, reply, 0); 28419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void finishReceiver(IBinder who, int resultCode, String resultData, Bundle map, boolean abortBroadcast) throws RemoteException 28469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 28479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(who); 28519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(resultCode); 28529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resultData); 28539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeBundle(map); 28549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(abortBroadcast ? 1 : 0); 28559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(FINISH_RECEIVER_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 28569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 28609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void attachApplication(IApplicationThread app) throws RemoteException 28619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 28629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(app.asBinder()); 28669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ATTACH_APPLICATION_TRANSACTION, data, reply, 0); 28679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 287162f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn public void activityIdle(IBinder token, Configuration config, boolean stopProfiling) 287262f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn throws RemoteException 28739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 28749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 28759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 28769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 28779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 2878e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn if (config != null) { 2879e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn data.writeInt(1); 2880e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn config.writeToParcel(data, 0); 2881e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn } else { 2882e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn data.writeInt(0); 2883e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn } 288462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn data.writeInt(stopProfiling ? 1 : 0); 28859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ACTIVITY_IDLE_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 28869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 28879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 28889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 28899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2890ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn public void activityResumed(IBinder token) throws RemoteException 2891ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn { 2892ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn Parcel data = Parcel.obtain(); 2893ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn Parcel reply = Parcel.obtain(); 2894ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 2895ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn data.writeStrongBinder(token); 2896ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn mRemote.transact(ACTIVITY_RESUMED_TRANSACTION, data, reply, 0); 2897ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn reply.readException(); 2898ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn data.recycle(); 2899ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn reply.recycle(); 2900ad9b32115bf8c84a93ab30e6f30f8c46e86d7244Dianne Hackborn } 2901a4e102ee580282dc7abeb22f4a025813e53b9431Dianne Hackborn public void activityPaused(IBinder token) throws RemoteException 29029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 29039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 29049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 29059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 29069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 29079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ACTIVITY_PAUSED_TRANSACTION, data, reply, 0); 29089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 29099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 29109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 29119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 29120aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn public void activityStopped(IBinder token, Bundle state, 2913a002604af0c9b1204556610537b85685d7055996Craig Mautner PersistableBundle persistentState, CharSequence description) throws RemoteException 29149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 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); 29190aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn data.writeBundle(state); 2920a002604af0c9b1204556610537b85685d7055996Craig Mautner data.writePersistableBundle(persistentState); 29219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project TextUtils.writeToParcel(description, data, 0); 29229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ACTIVITY_STOPPED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 29239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 29249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 29259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 29269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 29274eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn public void activitySlept(IBinder token) throws RemoteException 29284eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn { 29294eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn Parcel data = Parcel.obtain(); 29304eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn Parcel reply = Parcel.obtain(); 29314eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 29324eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn data.writeStrongBinder(token); 29334eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn mRemote.transact(ACTIVITY_SLEPT_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 29344eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn reply.readException(); 29354eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn data.recycle(); 29364eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn reply.recycle(); 29374eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn } 29389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void activityDestroyed(IBinder token) throws RemoteException 29399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 29409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 29419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 29429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 29439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 29449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ACTIVITY_DESTROYED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 29459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 29469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 29479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 29489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 29499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getCallingPackage(IBinder token) throws RemoteException 29509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 29519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 29529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 29539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 29549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 29559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_CALLING_PACKAGE_TRANSACTION, data, reply, 0); 29569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 29579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String res = reply.readString(); 29589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 29599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 29609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 29619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 29629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ComponentName getCallingActivity(IBinder token) 29639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 29649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 29659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 29669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 29679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 29689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_CALLING_ACTIVITY_TRANSACTION, data, reply, 0); 29699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 29709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName res = ComponentName.readFromParcel(reply); 29719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 29729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 29739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 29749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2975885fbe5c070cf1579c96ab8e150449af00e16501Dianne Hackborn public List<IAppTask> getAppTasks(String callingPackage) throws RemoteException { 29761147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung Parcel data = Parcel.obtain(); 29771147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung Parcel reply = Parcel.obtain(); 29781147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung data.writeInterfaceToken(IActivityManager.descriptor); 2979885fbe5c070cf1579c96ab8e150449af00e16501Dianne Hackborn data.writeString(callingPackage); 29801147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung mRemote.transact(GET_APP_TASKS_TRANSACTION, data, reply, 0); 29811147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung reply.readException(); 29821147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung ArrayList<IAppTask> list = null; 29831147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung int N = reply.readInt(); 29841147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung if (N >= 0) { 29851147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung list = new ArrayList<IAppTask>(); 29861147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung while (N > 0) { 29871147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung IAppTask task = IAppTask.Stub.asInterface(reply.readStrongBinder()); 29881147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung list.add(task); 29891147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung N--; 29901147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung } 29911147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung } 29921147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung data.recycle(); 29931147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung reply.recycle(); 29941147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung return list; 29951147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung } 2996aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn public int addAppTask(IBinder activityToken, Intent intent, 2997aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn ActivityManager.TaskDescription description, Bitmap thumbnail) throws RemoteException { 2998aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn Parcel data = Parcel.obtain(); 2999aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn Parcel reply = Parcel.obtain(); 3000aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3001aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn data.writeStrongBinder(activityToken); 3002aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn intent.writeToParcel(data, 0); 3003aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn description.writeToParcel(data, 0); 3004aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn thumbnail.writeToParcel(data, 0); 3005aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn mRemote.transact(ADD_APP_TASK_TRANSACTION, data, reply, 0); 3006aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn reply.readException(); 3007aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn int res = reply.readInt(); 3008aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn data.recycle(); 3009aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn reply.recycle(); 3010aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn return res; 3011aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn } 3012aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn public Point getAppTaskThumbnailSize() throws RemoteException { 3013aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn Parcel data = Parcel.obtain(); 3014aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn Parcel reply = Parcel.obtain(); 3015aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3016aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn mRemote.transact(GET_APP_TASK_THUMBNAIL_SIZE_TRANSACTION, data, reply, 0); 3017aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn reply.readException(); 3018aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn Point size = Point.CREATOR.createFromParcel(reply); 3019aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn data.recycle(); 3020aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn reply.recycle(); 3021aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn return size; 3022aec68bb89fe614181a20eb97340149406218ce2fDianne Hackborn } 302309233289624a85093b1d99e4a6a149bf09059d8dDianne Hackborn public List getTasks(int maxNum, int flags) throws RemoteException { 30249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(maxNum); 30289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 30299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_TASKS_TRANSACTION, data, reply, 0); 30309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList list = null; 30329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int N = reply.readInt(); 30339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (N >= 0) { 30349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project list = new ArrayList(); 30359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project while (N > 0) { 30369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.RunningTaskInfo info = 30379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.RunningTaskInfo.CREATOR 30381147c406515bbfbcb7dbd750f81c7a5de928c5c6Winson Chung .createFromParcel(reply); 30399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project list.add(info); 30409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project N--; 30419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 30459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return list; 30469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum, 30488264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani int flags, int userId) throws RemoteException { 30499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(maxNum); 30539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 30548264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani data.writeInt(userId); 30559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_RECENT_TASKS_TRANSACTION, data, reply, 0); 30569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList<ActivityManager.RecentTaskInfo> list 30589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project = reply.createTypedArrayList(ActivityManager.RecentTaskInfo.CREATOR); 30599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 30619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return list; 30629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3063c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner public ActivityManager.TaskThumbnail getTaskThumbnail(int id) throws RemoteException { 3064d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn Parcel data = Parcel.obtain(); 3065d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn Parcel reply = Parcel.obtain(); 3066d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3067d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn data.writeInt(id); 3068c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner mRemote.transact(GET_TASK_THUMBNAIL_TRANSACTION, data, reply, 0); 3069d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn reply.readException(); 3070c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner ActivityManager.TaskThumbnail taskThumbnail = null; 3071d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn if (reply.readInt() != 0) { 3072c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner taskThumbnail = ActivityManager.TaskThumbnail.CREATOR.createFromParcel(reply); 3073d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn } 3074d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn data.recycle(); 3075d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn reply.recycle(); 3076c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1dCraig Mautner return taskThumbnail; 307715491c6a728131e322c45bc440500a8a78e4a410Dianne Hackborn } 30789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List getServices(int maxNum, int flags) throws RemoteException { 30799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 30809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 30819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 30829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(maxNum); 30839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 30849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_SERVICES_TRANSACTION, data, reply, 0); 30859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 30869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList list = null; 30879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int N = reply.readInt(); 30889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (N >= 0) { 30899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project list = new ArrayList(); 30909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project while (N > 0) { 30919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.RunningServiceInfo info = 30929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ActivityManager.RunningServiceInfo.CREATOR 30939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .createFromParcel(reply); 30949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project list.add(info); 30959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project N--; 30969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 30989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 30999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return list; 31019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 31029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState() 31039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 31049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_PROCESSES_IN_ERROR_STATE_TRANSACTION, data, reply, 0); 31089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 31099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList<ActivityManager.ProcessErrorStateInfo> list 31109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project = reply.createTypedArrayList(ActivityManager.ProcessErrorStateInfo.CREATOR); 31119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return list; 31149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 31159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses() 31169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 31179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_RUNNING_APP_PROCESSES_TRANSACTION, data, reply, 0); 31219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 31229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList<ActivityManager.RunningAppProcessInfo> list 31239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project = reply.createTypedArrayList(ActivityManager.RunningAppProcessInfo.CREATOR); 31249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return list; 31279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3128f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu public List<ApplicationInfo> getRunningExternalApplications() 3129f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu throws RemoteException { 3130f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu Parcel data = Parcel.obtain(); 3131f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu Parcel reply = Parcel.obtain(); 3132f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu data.writeInterfaceToken(IActivityManager.descriptor); 3133f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu mRemote.transact(GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION, data, reply, 0); 3134f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu reply.readException(); 3135f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu ArrayList<ApplicationInfo> list 3136f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu = reply.createTypedArrayList(ApplicationInfo.CREATOR); 3137f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu data.recycle(); 3138f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu reply.recycle(); 3139f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu return list; 3140f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu } 31418078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn public void moveTaskToFront(int task, int flags, Bundle options) throws RemoteException 31429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 31439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(task); 3147621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeInt(flags); 31488078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn if (options != null) { 31498078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn data.writeInt(1); 31508078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn options.writeToParcel(data, 0); 31518078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn } else { 31528078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn data.writeInt(0); 31538078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn } 31549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(MOVE_TASK_TO_FRONT_TRANSACTION, data, reply, 0); 31559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 31569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 31599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void moveTaskToBack(int task) throws RemoteException 31609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 31619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(task); 31659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(MOVE_TASK_TO_BACK_TRANSACTION, data, reply, 0); 31669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 31679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 31709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean moveActivityTaskToBack(IBinder token, boolean nonRoot) 31719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 31729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 31769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(nonRoot ? 1 : 0); 31779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION, data, reply, 0); 31789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 31799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 31809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 31839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 31849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void moveTaskBackwards(int task) throws RemoteException 31859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 31869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 31879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 31889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 31899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(task); 31909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(MOVE_TASK_BACKWARDS_TRANSACTION, data, reply, 0); 31919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 31929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 31939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 31949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3195c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner @Override 3196c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner public void moveTaskToStack(int taskId, int stackId, boolean toTop) throws RemoteException 3197c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner { 3198c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner Parcel data = Parcel.obtain(); 3199c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner Parcel reply = Parcel.obtain(); 3200967212cb542e6eeb308678367b53381bff984c31Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 3201c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner data.writeInt(taskId); 3202c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner data.writeInt(stackId); 3203c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner data.writeInt(toTop ? 1 : 0); 3204c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner mRemote.transact(MOVE_TASK_TO_STACK_TRANSACTION, data, reply, 0); 3205c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner reply.readException(); 3206c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner data.recycle(); 3207c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner reply.recycle(); 3208c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner } 3209c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner @Override 3210bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner public void resizeStack(int stackBoxId, Rect r) throws RemoteException 3211c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner { 3212c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner Parcel data = Parcel.obtain(); 3213c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner Parcel reply = Parcel.obtain(); 3214967212cb542e6eeb308678367b53381bff984c31Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 32155a449154d1795abe8e44b7bfe821d640b145e2c6Craig Mautner data.writeInt(stackBoxId); 3216bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner r.writeToParcel(data, 0); 3217cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner mRemote.transact(RESIZE_STACK_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 3218c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner reply.readException(); 3219c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner data.recycle(); 3220c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner reply.recycle(); 3221c00204b4d14d49a0417b44ca21aee4f0d4c466e0Craig Mautner } 3222967212cb542e6eeb308678367b53381bff984c31Craig Mautner @Override 3223bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner public List<StackInfo> getAllStackInfos() throws RemoteException 32245ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner { 32255ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner Parcel data = Parcel.obtain(); 32265ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner Parcel reply = Parcel.obtain(); 32275ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 3228bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner mRemote.transact(GET_ALL_STACK_INFOS_TRANSACTION, data, reply, 0); 32295ff12101722874f5e7b0cadf06f4c53f4ec4b917Craig Mautner reply.readException(); 3230bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner ArrayList<StackInfo> list = reply.createTypedArrayList(StackInfo.CREATOR); 3231967212cb542e6eeb308678367b53381bff984c31Craig Mautner data.recycle(); 3232967212cb542e6eeb308678367b53381bff984c31Craig Mautner reply.recycle(); 3233967212cb542e6eeb308678367b53381bff984c31Craig Mautner return list; 3234967212cb542e6eeb308678367b53381bff984c31Craig Mautner } 3235cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner @Override 3236bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner public StackInfo getStackInfo(int stackId) throws RemoteException 3237fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner { 3238fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner Parcel data = Parcel.obtain(); 3239fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner Parcel reply = Parcel.obtain(); 3240fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 3241bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner data.writeInt(stackId); 3242bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner mRemote.transact(GET_STACK_INFO_TRANSACTION, data, reply, 0); 3243fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner reply.readException(); 3244fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner int res = reply.readInt(); 3245bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner StackInfo info = null; 3246fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner if (res != 0) { 3247bdc748af8ce62778d2ad15040ecdfada6e4635fdCraig Mautner info = StackInfo.CREATOR.createFromParcel(reply); 3248fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner } 3249fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner data.recycle(); 3250fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner reply.recycle(); 3251fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner return info; 3252fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner } 3253fd1ce8d5a7aa1ec6c7324b171f7e7a15a95f8759Craig Mautner @Override 3254303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung public boolean isInHomeStack(int taskId) throws RemoteException { 3255303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung Parcel data = Parcel.obtain(); 3256303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung Parcel reply = Parcel.obtain(); 3257303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung data.writeInterfaceToken(IActivityManager.descriptor); 3258303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung data.writeInt(taskId); 3259303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung mRemote.transact(IS_IN_HOME_STACK_TRANSACTION, data, reply, 0); 3260303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung reply.readException(); 3261303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung boolean isInHomeStack = reply.readInt() > 0; 3262303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung data.recycle(); 3263303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung reply.recycle(); 3264303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung return isInHomeStack; 3265303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung } 3266303e1ff1fec8b240b587bb18b981247a99833aa8Winson Chung @Override 3267cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner public void setFocusedStack(int stackId) throws RemoteException 3268cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner { 3269cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner Parcel data = Parcel.obtain(); 3270cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner Parcel reply = Parcel.obtain(); 3271cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 3272cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner data.writeInt(stackId); 3273cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner mRemote.transact(SET_FOCUSED_STACK_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 3274cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner reply.readException(); 3275cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner data.recycle(); 3276cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner reply.recycle(); 3277cf910b0c714b2ca90ea0013e5695850506a1d36fCraig Mautner } 3278740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung @Override 3279740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung public void registerTaskStackListener(ITaskStackListener listener) throws RemoteException 3280740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung { 3281740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung Parcel data = Parcel.obtain(); 3282740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung Parcel reply = Parcel.obtain(); 3283740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung data.writeInterfaceToken(IActivityManager.descriptor); 3284740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung data.writeStrongBinder(listener.asBinder()); 3285740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung mRemote.transact(REGISTER_TASK_STACK_LISTENER_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 3286740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung reply.readException(); 3287740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung data.recycle(); 3288740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung reply.recycle(); 3289740c3ac782675d190941b2ab1905e56f246c1b11Winson Chung } 32909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getTaskForActivity(IBinder token, boolean onlyRoot) throws RemoteException 32919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 32929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 32939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 32949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 32959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 32969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(onlyRoot ? 1 : 0); 32979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_TASK_FOR_ACTIVITY_TRANSACTION, data, reply, 0); 32989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 32999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 33009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 33019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 33029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 33039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 33049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ContentProviderHolder getContentProvider(IApplicationThread caller, 33056d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey String name, int userId, boolean stable) throws RemoteException { 33069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 33079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 33089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 33099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 33109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(name); 33116d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey data.writeInt(userId); 33126ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInt(stable ? 1 : 0); 33139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_CONTENT_PROVIDER_TRANSACTION, data, reply, 0); 33149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 33159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 33169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentProviderHolder cph = null; 33179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (res != 0) { 33189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project cph = ContentProviderHolder.CREATOR.createFromParcel(reply); 33199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 33209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 33219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 33229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return cph; 33239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 33246d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey public ContentProviderHolder getContentProviderExternal(String name, int userId, IBinder token) 33256d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey throws RemoteException { 332625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov Parcel data = Parcel.obtain(); 332725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov Parcel reply = Parcel.obtain(); 332825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeInterfaceToken(IActivityManager.descriptor); 332925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeString(name); 33306d51571835737c7502a2e111ee9dc2527ebad984Jeff Sharkey data.writeInt(userId); 333125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeStrongBinder(token); 333225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov mRemote.transact(GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION, data, reply, 0); 333325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.readException(); 333425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov int res = reply.readInt(); 333525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov ContentProviderHolder cph = null; 333625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov if (res != 0) { 333725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov cph = ContentProviderHolder.CREATOR.createFromParcel(reply); 333825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 333925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.recycle(); 334025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.recycle(); 334125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov return cph; 334225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 33439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void publishContentProviders(IApplicationThread caller, 33446ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn List<ContentProviderHolder> providers) throws RemoteException 33459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 33469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 33479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 33489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 33499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 33509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeTypedList(providers); 33519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(PUBLISH_CONTENT_PROVIDERS_TRANSACTION, data, reply, 0); 33529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 33539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 33549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 33559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 33566ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn public boolean refContentProvider(IBinder connection, int stable, int unstable) 33576ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn throws RemoteException { 33589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 33599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 33609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 33616ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeStrongBinder(connection); 33626ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInt(stable); 33636ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInt(unstable); 33646ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn mRemote.transact(REF_CONTENT_PROVIDER_TRANSACTION, data, reply, 0); 33656ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.readException(); 33666ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn boolean res = reply.readInt() != 0; 33676ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.recycle(); 33686ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.recycle(); 33696ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn return res; 33706ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn } 33717aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey 33726ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn public void unstableProviderDied(IBinder connection) throws RemoteException { 33736ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn Parcel data = Parcel.obtain(); 33746ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn Parcel reply = Parcel.obtain(); 33756ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 33766ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeStrongBinder(connection); 33776ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn mRemote.transact(UNSTABLE_PROVIDER_DIED_TRANSACTION, data, reply, 0); 33786ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.readException(); 33796ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.recycle(); 33806ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn reply.recycle(); 33816ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn } 33826ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn 33837aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey @Override 33847aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey public void appNotRespondingViaProvider(IBinder connection) throws RemoteException { 33857aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey Parcel data = Parcel.obtain(); 33867aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey Parcel reply = Parcel.obtain(); 33877aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey data.writeInterfaceToken(IActivityManager.descriptor); 33887aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey data.writeStrongBinder(connection); 33897aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey mRemote.transact(APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION, data, reply, 0); 33907aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey reply.readException(); 33917aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey data.recycle(); 33927aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey reply.recycle(); 33937aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey } 33947aa7601c09ab5d87cc15a0ed9a8f511d494a4cbcJeff Sharkey 33956ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn public void removeContentProvider(IBinder connection, boolean stable) throws RemoteException { 33966ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn Parcel data = Parcel.obtain(); 33976ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn Parcel reply = Parcel.obtain(); 33986ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 33996ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeStrongBinder(connection); 34006ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn data.writeInt(stable ? 1 : 0); 34019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(REMOVE_CONTENT_PROVIDER_TRANSACTION, data, reply, 0); 34029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 34039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 34049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 34059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 340625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov 340725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov public void removeContentProviderExternal(String name, IBinder token) throws RemoteException { 340825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov Parcel data = Parcel.obtain(); 340925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov Parcel reply = Parcel.obtain(); 341025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeInterfaceToken(IActivityManager.descriptor); 341125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeString(name); 341225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.writeStrongBinder(token); 341325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov mRemote.transact(REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION, data, reply, 0); 341425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.readException(); 341525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov data.recycle(); 341625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov reply.recycle(); 341725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov } 341825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov 3419dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn public PendingIntent getRunningServiceControlPanel(ComponentName service) 3420dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn throws RemoteException 3421dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn { 3422dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn Parcel data = Parcel.obtain(); 3423dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn Parcel reply = Parcel.obtain(); 3424dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3425dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn service.writeToParcel(data, 0); 3426dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn mRemote.transact(GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION, data, reply, 0); 3427dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn reply.readException(); 3428dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn PendingIntent res = PendingIntent.readPendingIntentOrNullFromParcel(reply); 3429dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn data.recycle(); 3430dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn reply.recycle(); 3431dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn return res; 3432dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn } 3433dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn 34349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ComponentName startService(IApplicationThread caller, Intent service, 34357767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn String resolvedType, int userId) throws RemoteException 34369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 34379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 34389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 34399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 34409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 34419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project service.writeToParcel(data, 0); 34429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 34437767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn data.writeInt(userId); 34449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(START_SERVICE_TRANSACTION, data, reply, 0); 34459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 34469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName res = ComponentName.readFromParcel(reply); 34479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 34489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 34499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 34509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 34519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int stopService(IApplicationThread caller, Intent service, 34527767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn String resolvedType, int userId) throws RemoteException 34539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 34549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 34559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 34569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 34579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller != null ? caller.asBinder() : null); 34589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project service.writeToParcel(data, 0); 34599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 34607767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn data.writeInt(userId); 34619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(STOP_SERVICE_TRANSACTION, data, reply, 0); 34629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 34639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 34649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 34659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 34669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 34679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 34689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean stopServiceToken(ComponentName className, IBinder token, 34699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int startId) throws RemoteException { 34709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 34719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 34729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 34739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(className, data); 34749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 34759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(startId); 34769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(STOP_SERVICE_TOKEN_TRANSACTION, data, reply, 0); 34779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 34789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 34799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 34809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 34819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 34829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 34839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setServiceForeground(ComponentName className, IBinder token, 3484d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn int id, Notification notification, boolean removeNotification) throws RemoteException { 34859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 34869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 34879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 34889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(className, data); 34899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 3490d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn data.writeInt(id); 3491d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn if (notification != null) { 3492d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn data.writeInt(1); 3493d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn notification.writeToParcel(data, 0); 3494d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn } else { 3495d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn data.writeInt(0); 3496d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn } 3497d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn data.writeInt(removeNotification ? 1 : 0); 34989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_SERVICE_FOREGROUND_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 public int bindService(IApplicationThread caller, IBinder token, 35049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent service, String resolvedType, IServiceConnection connection, 350537ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani int flags, int userId) 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(caller != null ? caller.asBinder() : null); 35109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 35119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project service.writeToParcel(data, 0); 35129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 35139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(connection.asBinder()); 35149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 351537ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani data.writeInt(userId); 35169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(BIND_SERVICE_TRANSACTION, data, reply, 0); 35179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 35189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 35199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 35209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 35219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 35229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 35239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean unbindService(IServiceConnection connection) throws RemoteException 35249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 35259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 35269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 35279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 35289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(connection.asBinder()); 35299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UNBIND_SERVICE_TRANSACTION, data, reply, 0); 35309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 35319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 35329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 35339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 35349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 35359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 35369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 35379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void publishService(IBinder token, 35389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Intent intent, IBinder service) throws RemoteException { 35399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 35409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 35419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 35429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 35439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 35449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(service); 35459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(PUBLISH_SERVICE_TRANSACTION, data, reply, 0); 35469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 35479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 35489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 35499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 35509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 35519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void unbindFinished(IBinder token, Intent intent, boolean doRebind) 35529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 35539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 35549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 35559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 35569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 35579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intent.writeToParcel(data, 0); 35589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(doRebind ? 1 : 0); 35599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UNBIND_FINISHED_TRANSACTION, data, reply, 0); 35609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 35619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 35629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 35639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 35649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3565f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn public void serviceDoneExecuting(IBinder token, int type, int startId, 3566f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn int res) throws RemoteException { 35679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 35689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 35699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 35709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 3571f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn data.writeInt(type); 3572f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn data.writeInt(startId); 3573f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn data.writeInt(res); 35749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SERVICE_DONE_EXECUTING_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 35759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 35769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 35779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 35789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 35799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 35809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public IBinder peekService(Intent service, String resolvedType) throws RemoteException { 35819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 35829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 35839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 35849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project service.writeToParcel(data, 0); 35859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resolvedType); 35869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(PEEK_SERVICE_TRANSACTION, data, reply, 0); 35879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 35889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IBinder binder = reply.readStrongBinder(); 35899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 35909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 35919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return binder; 35929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 35939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3594181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate public boolean bindBackupAgent(ApplicationInfo app, int backupRestoreMode) 3595181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate throws RemoteException { 3596181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel data = Parcel.obtain(); 3597181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel reply = Parcel.obtain(); 3598181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 3599181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate app.writeToParcel(data, 0); 3600181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeInt(backupRestoreMode); 3601181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate mRemote.transact(START_BACKUP_AGENT_TRANSACTION, data, reply, 0); 3602181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.readException(); 3603181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate boolean success = reply.readInt() != 0; 3604181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.recycle(); 3605181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.recycle(); 3606181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate return success; 3607181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 3608181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 3609346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate public void clearPendingBackup() throws RemoteException { 3610346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate Parcel data = Parcel.obtain(); 3611346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate Parcel reply = Parcel.obtain(); 3612346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 3613346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate mRemote.transact(CLEAR_PENDING_BACKUP_TRANSACTION, data, reply, 0); 3614346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate reply.recycle(); 3615346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate data.recycle(); 3616346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate } 3617346acb123dd87396726941b484be6fdd5cd4ea44Christopher Tate 3618181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate public void backupAgentCreated(String packageName, IBinder agent) throws RemoteException { 3619181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel data = Parcel.obtain(); 3620181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel reply = Parcel.obtain(); 3621181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 3622181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeString(packageName); 3623181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeStrongBinder(agent); 3624181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate mRemote.transact(BACKUP_AGENT_CREATED_TRANSACTION, data, reply, 0); 3625181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.recycle(); 3626181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.recycle(); 3627181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 3628181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 3629181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate public void unbindBackupAgent(ApplicationInfo app) throws RemoteException { 3630181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel data = Parcel.obtain(); 3631181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate Parcel reply = Parcel.obtain(); 3632181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 3633181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate app.writeToParcel(data, 0); 3634181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate mRemote.transact(UNBIND_BACKUP_AGENT_TRANSACTION, data, reply, 0); 3635181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.readException(); 3636181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate reply.recycle(); 3637181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate data.recycle(); 3638181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate } 3639181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate 36409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean startInstrumentation(ComponentName className, String profileFile, 364180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov int flags, Bundle arguments, IInstrumentationWatcher watcher, 36428dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath IUiAutomationConnection connection, int userId, String instructionSet) 36438dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath throws RemoteException { 36449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 36459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 36469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 36479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName.writeToParcel(className, data); 36489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(profileFile); 36499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 36509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeBundle(arguments); 36519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(watcher != null ? watcher.asBinder() : null); 365280943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov data.writeStrongBinder(connection != null ? connection.asBinder() : null); 36535e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInt(userId); 36548dcfefd652fa2c5612b3acbc4bf842d2dfb1cf21Narayan Kamath data.writeString(instructionSet); 36559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(START_INSTRUMENTATION_TRANSACTION, data, reply, 0); 36569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 36579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 36589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 36599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 36609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 36619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 36629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 36639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void finishInstrumentation(IApplicationThread target, 36649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int resultCode, Bundle results) throws RemoteException { 36659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 36669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 36679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 36689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(target != null ? target.asBinder() : null); 36699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(resultCode); 36709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeBundle(results); 36719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(FINISH_INSTRUMENTATION_TRANSACTION, data, reply, 0); 36729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 36739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 36749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 36759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 36769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Configuration getConfiguration() throws RemoteException 36779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 36789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 36799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 36809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 36819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_CONFIGURATION_TRANSACTION, data, reply, 0); 36829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 36839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Configuration res = Configuration.CREATOR.createFromParcel(reply); 36849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 36859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 36869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 36879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 36889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void updateConfiguration(Configuration values) throws RemoteException 36899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 36909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 36919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 36929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 36939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.writeToParcel(data, 0); 36949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UPDATE_CONFIGURATION_TRANSACTION, data, reply, 0); 36959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 36969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 36979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 36989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 36999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setRequestedOrientation(IBinder token, int requestedOrientation) 37009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 37019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 37029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 37039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 37049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 37059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(requestedOrientation); 37069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_REQUESTED_ORIENTATION_TRANSACTION, data, reply, 0); 37079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 37089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 37099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 37109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 37119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getRequestedOrientation(IBinder token) throws RemoteException { 37129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 37139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 37149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 37159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 37169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_REQUESTED_ORIENTATION_TRANSACTION, data, reply, 0); 37179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 37189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 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 ComponentName getActivityClassForToken(IBinder token) 37249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 37259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 37269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 37279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 37289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 37299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION, data, reply, 0); 37309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 37319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ComponentName res = ComponentName.readFromParcel(reply); 37329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 37339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 37349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 37359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 37369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getPackageForToken(IBinder token) throws RemoteException 37379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 37389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 37399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 37409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 37419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 37429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_PACKAGE_FOR_TOKEN_TRANSACTION, data, reply, 0); 37439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 37449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String res = reply.readString(); 37459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 37469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 37479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 37489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 37499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public IIntentSender getIntentSender(int type, 37509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String packageName, IBinder token, String resultWho, 37517a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn int requestCode, Intent[] intents, String[] resolvedTypes, int flags, 37524120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn Bundle options, int userId) throws RemoteException { 37539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 37549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 37559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 37569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(type); 37579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(packageName); 37589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 37599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(resultWho); 37609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(requestCode); 3761621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn if (intents != null) { 37629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(1); 3763621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeTypedArray(intents, 0); 3764621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeStringArray(resolvedTypes); 37659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 37669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(0); 37679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 37689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(flags); 37697a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn if (options != null) { 37707a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn data.writeInt(1); 37717a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn options.writeToParcel(data, 0); 37727a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn } else { 37737a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn data.writeInt(0); 37747a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn } 37754120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(userId); 37769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_INTENT_SENDER_TRANSACTION, data, reply, 0); 37779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 37789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IIntentSender res = IIntentSender.Stub.asInterface( 3779ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn reply.readStrongBinder()); 37809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 37819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 37829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 37839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 37849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void cancelIntentSender(IIntentSender sender) throws RemoteException { 37859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 37869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 37879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 37889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(sender.asBinder()); 37899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(CANCEL_INTENT_SENDER_TRANSACTION, data, reply, 0); 37909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 37919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 37929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 37939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 37949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String getPackageForIntentSender(IIntentSender sender) throws RemoteException { 37959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 37969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 37979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 37989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(sender.asBinder()); 37999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0); 38009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 38019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String res = reply.readString(); 38029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 38039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 38049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 38059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3806c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate public int getUidForIntentSender(IIntentSender sender) throws RemoteException { 3807c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate Parcel data = Parcel.obtain(); 3808c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate Parcel reply = Parcel.obtain(); 3809c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 3810c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate data.writeStrongBinder(sender.asBinder()); 3811c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate mRemote.transact(GET_UID_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0); 3812c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate reply.readException(); 3813c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate int res = reply.readInt(); 3814c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate data.recycle(); 3815c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate reply.recycle(); 3816c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate return res; 3817c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate } 38184120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn public int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, 38194120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn boolean requireFull, String name, String callerPackage) throws RemoteException { 38204120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn Parcel data = Parcel.obtain(); 38214120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn Parcel reply = Parcel.obtain(); 38224120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 38234120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(callingPid); 38244120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(callingUid); 38254120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(userId); 38264120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(allowAll ? 1 : 0); 38274120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeInt(requireFull ? 1 : 0); 38284120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeString(name); 38294120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.writeString(callerPackage); 38304120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn mRemote.transact(HANDLE_INCOMING_USER_TRANSACTION, data, reply, 0); 38314120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn reply.readException(); 38324120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn int res = reply.readInt(); 38334120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn data.recycle(); 38344120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn reply.recycle(); 38354120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn return res; 38364120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn } 38379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setProcessLimit(int max) throws RemoteException 38389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 38399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 38409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 38419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 38429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(max); 38439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_PROCESS_LIMIT_TRANSACTION, data, reply, 0); 38449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 38459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 38469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 38479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 38489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getProcessLimit() throws RemoteException 38499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 38509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 38519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 38529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 38539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_PROCESS_LIMIT_TRANSACTION, data, reply, 0); 38549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 38559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 38569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 38579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 38589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 38599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 38609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setProcessForeground(IBinder token, int pid, 38619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isForeground) throws RemoteException { 38629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 38639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 38649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 38659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(token); 38669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(pid); 38679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(isForeground ? 1 : 0); 38689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_PROCESS_FOREGROUND_TRANSACTION, data, reply, 0); 38699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 38709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 38719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 38729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 38739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int checkPermission(String permission, int pid, int uid) 38749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 38759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 38769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 38779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 38789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(permission); 38799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(pid); 38809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(uid); 38819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(CHECK_PERMISSION_TRANSACTION, data, reply, 0); 38829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 38839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 38849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 38859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 38869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 38879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3888ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn public int checkPermissionWithToken(String permission, int pid, int uid, IBinder callerToken) 3889ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn throws RemoteException { 3890ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn Parcel data = Parcel.obtain(); 3891ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn Parcel reply = Parcel.obtain(); 3892ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 3893ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn data.writeString(permission); 3894ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn data.writeInt(pid); 3895ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn data.writeInt(uid); 3896ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn data.writeStrongBinder(callerToken); 3897ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn mRemote.transact(CHECK_PERMISSION_WITH_TOKEN_TRANSACTION, data, reply, 0); 3898ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn reply.readException(); 3899ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn int res = reply.readInt(); 3900ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn data.recycle(); 3901ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn reply.recycle(); 3902ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn return res; 3903ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn } 39049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean clearApplicationUserData(final String packageName, 3905742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani final IPackageDataObserver observer, final int userId) throws RemoteException { 39069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 39079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 39089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 39099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(packageName); 391031b65f9aa193c26d54c55783edcaa9a09ce65c81Christopher Tate data.writeStrongBinder((observer != null) ? observer.asBinder() : null); 3911742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani data.writeInt(userId); 39129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(CLEAR_APP_DATA_TRANSACTION, data, reply, 0); 39139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 39149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 39159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 39169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 39179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 39189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3919ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn public int checkUriPermission(Uri uri, int pid, int uid, int mode, int userId, 3920ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn IBinder callerToken) throws RemoteException { 39219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 39229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 39239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 39249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project uri.writeToParcel(data, 0); 39259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(pid); 39269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(uid); 39279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(mode); 3928d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot data.writeInt(userId); 3929ff17024e583b170312d82089fd358d278ce16c9aDianne Hackborn data.writeStrongBinder(callerToken); 39309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(CHECK_URI_PERMISSION_TRANSACTION, data, reply, 0); 39319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 39329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int res = reply.readInt(); 39339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 39349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 39359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 39369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 39379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void grantUriPermission(IApplicationThread caller, String targetPkg, 3938d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot Uri uri, int mode, int userId) throws RemoteException { 39399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 39409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 39419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 39429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller.asBinder()); 39439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(targetPkg); 39449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project uri.writeToParcel(data, 0); 39459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(mode); 3946d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot data.writeInt(userId); 39479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0); 39489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 39499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 39509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 39519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 39529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void revokeUriPermission(IApplicationThread caller, Uri uri, 3953d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot int mode, int userId) throws RemoteException { 39549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 39559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 39569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 39579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(caller.asBinder()); 39589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project uri.writeToParcel(data, 0); 39599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(mode); 3960d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot data.writeInt(userId); 39619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(REVOKE_URI_PERMISSION_TRANSACTION, data, reply, 0); 39629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 39639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 39649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 39659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3966e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey 3967e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey @Override 3968d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot public void takePersistableUriPermission(Uri uri, int mode, int userId) 3969d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot throws RemoteException { 3970e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey Parcel data = Parcel.obtain(); 3971e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey Parcel reply = Parcel.obtain(); 3972e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.writeInterfaceToken(IActivityManager.descriptor); 3973e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey uri.writeToParcel(data, 0); 3974e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.writeInt(mode); 3975d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot data.writeInt(userId); 3976e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey mRemote.transact(TAKE_PERSISTABLE_URI_PERMISSION_TRANSACTION, data, reply, 0); 3977e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey reply.readException(); 3978e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.recycle(); 3979e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey reply.recycle(); 3980e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey } 3981e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey 3982e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey @Override 3983d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot public void releasePersistableUriPermission(Uri uri, int mode, int userId) 3984d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot throws RemoteException { 3985e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey Parcel data = Parcel.obtain(); 3986e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey Parcel reply = Parcel.obtain(); 3987e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.writeInterfaceToken(IActivityManager.descriptor); 3988e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey uri.writeToParcel(data, 0); 3989e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.writeInt(mode); 3990d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot data.writeInt(userId); 3991e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey mRemote.transact(RELEASE_PERSISTABLE_URI_PERMISSION_TRANSACTION, data, reply, 0); 3992e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey reply.readException(); 3993e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.recycle(); 3994e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey reply.recycle(); 3995e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey } 3996e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey 3997e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey @Override 3998bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey public ParceledListSlice<UriPermission> getPersistedUriPermissions( 3999bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey String packageName, boolean incoming) throws RemoteException { 4000e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey Parcel data = Parcel.obtain(); 4001e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey Parcel reply = Parcel.obtain(); 4002e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.writeInterfaceToken(IActivityManager.descriptor); 4003bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey data.writeString(packageName); 4004bcaac0adecc8f9d7e66548df39e0f5c9f759e38cJeff Sharkey data.writeInt(incoming ? 1 : 0); 4005e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey mRemote.transact(GET_PERSISTED_URI_PERMISSIONS_TRANSACTION, data, reply, 0); 4006e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey reply.readException(); 4007e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey final ParceledListSlice<UriPermission> perms = ParceledListSlice.CREATOR.createFromParcel( 4008e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey reply); 4009e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey data.recycle(); 4010e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey reply.recycle(); 4011e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey return perms; 4012e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey } 4013e66c1778f80f4b18e29e018eca3a338f125f23b9Jeff Sharkey 40149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void showWaitingForDebugger(IApplicationThread who, boolean waiting) 40159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException { 40169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 40179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 40189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 40199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(who.asBinder()); 40209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(waiting ? 1 : 0); 40219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SHOW_WAITING_FOR_DEBUGGER_TRANSACTION, data, reply, 0); 40229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 40239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 40249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 40259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 40269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void getMemoryInfo(ActivityManager.MemoryInfo outInfo) throws RemoteException { 40279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 40289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 40299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 40309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_MEMORY_INFO_TRANSACTION, data, reply, 0); 40319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 40329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project outInfo.readFromParcel(reply); 40339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 40349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 40359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 40369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void unhandledBack() throws RemoteException 40379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 40389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 40399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 40409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 40419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(UNHANDLED_BACK_TRANSACTION, data, reply, 0); 40429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 40439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 40449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 40459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 40469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ParcelFileDescriptor openContentUri(Uri uri) throws RemoteException 40479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 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 mRemote.transact(OPEN_CONTENT_URI_TRANSACTION, data, reply, 0); 40529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 40539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ParcelFileDescriptor pfd = null; 40549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (reply.readInt() != 0) { 40559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project pfd = ParcelFileDescriptor.CREATOR.createFromParcel(reply); 40569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 40579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 40589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 40599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return pfd; 40609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4061ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn public void setLockScreenShown(boolean shown) throws RemoteException 4062ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn { 4063ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn Parcel data = Parcel.obtain(); 4064ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn Parcel reply = Parcel.obtain(); 4065ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4066ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn data.writeInt(shown ? 1 : 0); 4067ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn mRemote.transact(SET_LOCK_SCREEN_SHOWN_TRANSACTION, data, reply, 0); 4068ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn reply.readException(); 4069ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn data.recycle(); 4070ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn reply.recycle(); 4071ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn } 40729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setDebugApp( 40739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String packageName, boolean waitForDebugger, boolean persistent) 40749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throws RemoteException 40759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 40769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 40779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 40789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 40799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(packageName); 40809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(waitForDebugger ? 1 : 0); 40819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(persistent ? 1 : 0); 40829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_DEBUG_APP_TRANSACTION, data, reply, 0); 40839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 40849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 40859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 40869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 40879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setAlwaysFinish(boolean enabled) throws RemoteException 40889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 40899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 40909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 40919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 40929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(enabled ? 1 : 0); 40939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SET_ALWAYS_FINISH_TRANSACTION, data, reply, 0); 40949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 40959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 40969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 40979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4098b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn public void setActivityController(IActivityController watcher) throws RemoteException 40999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 41009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 41019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 41029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 41039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(watcher != null ? watcher.asBinder() : null); 4104b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn mRemote.transact(SET_ACTIVITY_CONTROLLER_TRANSACTION, data, reply, 0); 41059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 41069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 41079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 41089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 41099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void enterSafeMode() throws RemoteException { 41109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 41119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 41129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(ENTER_SAFE_MODE_TRANSACTION, data, null, 0); 41139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 41149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4115099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn public void noteWakeupAlarm(IIntentSender sender, int sourceUid, String sourcePkg) 4116099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn throws RemoteException { 41179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 41189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 4119099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn data.writeStrongBinder(sender.asBinder()); 4120099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn data.writeInt(sourceUid); 4121099bc627c463d9941e23e480f25a78a154429c55Dianne Hackborn data.writeString(sourcePkg); 41229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(NOTE_WAKEUP_ALARM_TRANSACTION, data, null, 0); 41239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 41249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4125648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn public boolean killPids(int[] pids, String reason, boolean secure) throws RemoteException { 41269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 41279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 41289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 41299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeIntArray(pids); 4130e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu data.writeString(reason); 4131648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn data.writeInt(secure ? 1 : 0); 4132e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu mRemote.transact(KILL_PIDS_TRANSACTION, data, reply, 0); 4133f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn reply.readException(); 41349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean res = reply.readInt() != 0; 41359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 41369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 41379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 4138b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey } 4139b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey @Override 4140b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey public boolean killProcessesBelowForeground(String reason) throws RemoteException { 4141b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey Parcel data = Parcel.obtain(); 4142b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey Parcel reply = Parcel.obtain(); 4143b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey data.writeInterfaceToken(IActivityManager.descriptor); 4144b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey data.writeString(reason); 4145b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey mRemote.transact(KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION, data, reply, 0); 4146b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey boolean res = reply.readInt() != 0; 4147b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey data.recycle(); 4148b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey reply.recycle(); 4149b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey return res; 41509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 41519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean testIsSystemReady() 41529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 41539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* this base class version is never called */ 41549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 41559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 415660d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor public void handleApplicationCrash(IBinder app, 415760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException 415860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor { 415960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor Parcel data = Parcel.obtain(); 416060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor Parcel reply = Parcel.obtain(); 416160d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor data.writeInterfaceToken(IActivityManager.descriptor); 416260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor data.writeStrongBinder(app); 416360d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor crashInfo.writeToParcel(data, 0); 416460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor mRemote.transact(HANDLE_APPLICATION_CRASH_TRANSACTION, data, reply, 0); 416560d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor reply.readException(); 416660d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor reply.recycle(); 416760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor data.recycle(); 416860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor } 4169438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick 41705232271a41323594ae406be7476b6ca2f08af3d8Dianne Hackborn public boolean handleApplicationWtf(IBinder app, String tag, boolean system, 4171b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException 41729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 41739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 41749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 41759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 41769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeStrongBinder(app); 41779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(tag); 41785232271a41323594ae406be7476b6ca2f08af3d8Dianne Hackborn data.writeInt(system ? 1 : 0); 4179b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor crashInfo.writeToParcel(data, 0); 418060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor mRemote.transact(HANDLE_APPLICATION_WTF_TRANSACTION, data, reply, 0); 41819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 418260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor boolean res = reply.readInt() != 0; 41839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 41849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 418560d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor return res; 41869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4187b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor 4188438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick public void handleApplicationStrictModeViolation(IBinder app, 418946d42387464a651268648659e91d022566d4844cBrad Fitzpatrick int violationMask, 4190cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick StrictMode.ViolationInfo info) throws RemoteException 4191438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick { 4192438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick Parcel data = Parcel.obtain(); 4193438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick Parcel reply = Parcel.obtain(); 4194438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick data.writeInterfaceToken(IActivityManager.descriptor); 4195438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick data.writeStrongBinder(app); 419646d42387464a651268648659e91d022566d4844cBrad Fitzpatrick data.writeInt(violationMask); 4197cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick info.writeToParcel(data, 0); 4198438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick mRemote.transact(HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION, data, reply, 0); 4199438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick reply.readException(); 4200438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick reply.recycle(); 4201438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick data.recycle(); 4202438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick } 4203438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick 42049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void signalPersistentProcesses(int sig) throws RemoteException { 42059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 42069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 42079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 42089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInt(sig); 42099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(SIGNAL_PERSISTENT_PROCESSES_TRANSACTION, data, reply, 0); 42109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 42119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 42129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 42139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4214e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn 42151676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn public void killBackgroundProcesses(String packageName, int userId) throws RemoteException { 421603abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn Parcel data = Parcel.obtain(); 421703abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn Parcel reply = Parcel.obtain(); 421803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 421903abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn data.writeString(packageName); 42201676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn data.writeInt(userId); 422103abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn mRemote.transact(KILL_BACKGROUND_PROCESSES_TRANSACTION, data, reply, 0); 422203abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn reply.readException(); 422303abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn data.recycle(); 422403abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn reply.recycle(); 422503abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn } 4226e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn 4227e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn public void killAllBackgroundProcesses() throws RemoteException { 4228e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn Parcel data = Parcel.obtain(); 4229e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn Parcel reply = Parcel.obtain(); 4230e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4231e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn mRemote.transact(KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION, data, reply, 0); 4232e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn reply.readException(); 4233e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn data.recycle(); 4234e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn reply.recycle(); 4235e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn } 4236e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn 42371676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn public void forceStopPackage(String packageName, int userId) throws RemoteException { 42389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 42399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 42409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 42419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeString(packageName); 42421676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn data.writeInt(userId); 424303abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn mRemote.transact(FORCE_STOP_PACKAGE_TRANSACTION, data, reply, 0); 42449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 42459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 42469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 42479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 42489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 424927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn public void getMyMemoryState(ActivityManager.RunningAppProcessInfo outInfo) 425027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn throws RemoteException 425127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn { 425227ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn Parcel data = Parcel.obtain(); 425327ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn Parcel reply = Parcel.obtain(); 425427ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 425527ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn mRemote.transact(GET_MY_MEMORY_STATE_TRANSACTION, data, reply, 0); 425627ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn reply.readException(); 425727ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn outInfo.readFromParcel(reply); 425827ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn reply.recycle(); 425927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn data.recycle(); 426027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn } 426127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn 42629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public ConfigurationInfo getDeviceConfigurationInfo() throws RemoteException 42639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project { 42649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel data = Parcel.obtain(); 42659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Parcel reply = Parcel.obtain(); 42669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 42679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRemote.transact(GET_DEVICE_CONFIGURATION_TRANSACTION, data, reply, 0); 42689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.readException(); 42699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ConfigurationInfo res = ConfigurationInfo.CREATOR.createFromParcel(reply); 42709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project reply.recycle(); 42719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project data.recycle(); 42729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 42739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 42741b012d302b56b4adf950035136d1d191a1936d5aJeff Hao 42751676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn public boolean profileControl(String process, int userId, boolean start, 42761b012d302b56b4adf950035136d1d191a1936d5aJeff Hao ProfilerInfo profilerInfo, int profileType) throws RemoteException 4277f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project { 4278f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project Parcel data = Parcel.obtain(); 4279f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project Parcel reply = Parcel.obtain(); 4280f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.writeInterfaceToken(IActivityManager.descriptor); 4281f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.writeString(process); 42821676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn data.writeInt(userId); 4283f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.writeInt(start ? 1 : 0); 42849a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8Romain Guy data.writeInt(profileType); 42851b012d302b56b4adf950035136d1d191a1936d5aJeff Hao if (profilerInfo != null) { 42869c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn data.writeInt(1); 42871b012d302b56b4adf950035136d1d191a1936d5aJeff Hao profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 42889c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn } else { 42899c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn data.writeInt(0); 42909c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn } 4291f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project mRemote.transact(PROFILE_CONTROL_TRANSACTION, data, reply, 0); 4292f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project reply.readException(); 4293f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project boolean res = reply.readInt() != 0; 4294f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project reply.recycle(); 4295f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project data.recycle(); 4296f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project return res; 4297f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project } 42981b012d302b56b4adf950035136d1d191a1936d5aJeff Hao 429955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn public boolean shutdown(int timeout) throws RemoteException 430055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn { 430155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn Parcel data = Parcel.obtain(); 430255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn Parcel reply = Parcel.obtain(); 430355280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 430455280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn data.writeInt(timeout); 430555280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn mRemote.transact(SHUTDOWN_TRANSACTION, data, reply, 0); 430655280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn reply.readException(); 430755280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn boolean res = reply.readInt() != 0; 430855280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn reply.recycle(); 430955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn data.recycle(); 431055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn return res; 431155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn } 431255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn 431395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn public void stopAppSwitches() throws RemoteException { 431495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn Parcel data = Parcel.obtain(); 431595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn Parcel reply = Parcel.obtain(); 431695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 431795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn mRemote.transact(STOP_APP_SWITCHES_TRANSACTION, data, reply, 0); 431895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.readException(); 431995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.recycle(); 432095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.recycle(); 432195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn } 432295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn 432395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn public void resumeAppSwitches() throws RemoteException { 432495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn Parcel data = Parcel.obtain(); 432595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn Parcel reply = Parcel.obtain(); 432695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 432795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn mRemote.transact(RESUME_APP_SWITCHES_TRANSACTION, data, reply, 0); 432895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.readException(); 432995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn reply.recycle(); 433095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn data.recycle(); 433195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn } 4332fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn 4333fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn public void addPackageDependency(String packageName) throws RemoteException { 4334fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn Parcel data = Parcel.obtain(); 4335fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn Parcel reply = Parcel.obtain(); 4336fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4337fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn data.writeString(packageName); 4338fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn mRemote.transact(ADD_PACKAGE_DEPENDENCY_TRANSACTION, data, reply, 0); 4339fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn reply.readException(); 4340fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn data.recycle(); 4341fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn reply.recycle(); 4342fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn } 4343fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7Dianne Hackborn 434421d9b5669257ca931da2d383f12db4865479752aDianne Hackborn public void killApplicationWithAppId(String pkg, int appid, String reason) 434521d9b5669257ca931da2d383f12db4865479752aDianne Hackborn throws RemoteException { 4346261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu Parcel data = Parcel.obtain(); 4347261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu Parcel reply = Parcel.obtain(); 4348261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu data.writeInterfaceToken(IActivityManager.descriptor); 4349261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu data.writeString(pkg); 43505e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInt(appid); 435121d9b5669257ca931da2d383f12db4865479752aDianne Hackborn data.writeString(reason); 43525e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn mRemote.transact(KILL_APPLICATION_WITH_APPID_TRANSACTION, data, reply, 0); 4353261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu reply.readException(); 4354261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu data.recycle(); 4355261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu reply.recycle(); 4356261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu } 4357a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn 4358a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn public void closeSystemDialogs(String reason) throws RemoteException { 4359a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn Parcel data = Parcel.obtain(); 4360a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn Parcel reply = Parcel.obtain(); 4361a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4362a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn data.writeString(reason); 4363a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn mRemote.transact(CLOSE_SYSTEM_DIALOGS_TRANSACTION, data, reply, 0); 4364a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn reply.readException(); 4365a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn data.recycle(); 4366a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn reply.recycle(); 4367a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn } 43683025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn 43694f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn public Debug.MemoryInfo[] getProcessMemoryInfo(int[] pids) 43703025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn throws RemoteException { 43713025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn Parcel data = Parcel.obtain(); 43723025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn Parcel reply = Parcel.obtain(); 43733025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 43744f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn data.writeIntArray(pids); 43753025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn mRemote.transact(GET_PROCESS_MEMORY_INFO_TRANSACTION, data, reply, 0); 43763025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn reply.readException(); 43774f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn Debug.MemoryInfo[] res = reply.createTypedArray(Debug.MemoryInfo.CREATOR); 43783025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn data.recycle(); 43793025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn reply.recycle(); 43804f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn return res; 43813025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn } 43825e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate 43835e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate public void killApplicationProcess(String processName, int uid) throws RemoteException { 43845e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate Parcel data = Parcel.obtain(); 43855e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate Parcel reply = Parcel.obtain(); 43865e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate data.writeInterfaceToken(IActivityManager.descriptor); 43875e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate data.writeString(processName); 43885e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate data.writeInt(uid); 43895e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate mRemote.transact(KILL_APPLICATION_PROCESS_TRANSACTION, data, reply, 0); 43905e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate reply.readException(); 43915e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate data.recycle(); 43925e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate reply.recycle(); 43935e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate } 43945e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate 43953b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn public void overridePendingTransition(IBinder token, String packageName, 43963b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn int enterAnim, int exitAnim) throws RemoteException { 43973b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn Parcel data = Parcel.obtain(); 43983b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn Parcel reply = Parcel.obtain(); 43993b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 44003b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.writeStrongBinder(token); 44013b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.writeString(packageName); 44023b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.writeInt(enterAnim); 44033b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.writeInt(exitAnim); 44043b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn mRemote.transact(OVERRIDE_PENDING_TRANSITION_TRANSACTION, data, reply, 0); 44053b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn reply.readException(); 44063b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn data.recycle(); 44073b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn reply.recycle(); 44083b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn } 44093b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn 44109327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn public boolean isUserAMonkey() throws RemoteException { 44119327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn Parcel data = Parcel.obtain(); 44129327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn Parcel reply = Parcel.obtain(); 44139327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 44149327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn mRemote.transact(IS_USER_A_MONKEY_TRANSACTION, data, reply, 0); 44159327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn reply.readException(); 44169327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn boolean res = reply.readInt() != 0; 44179327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn data.recycle(); 44189327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn reply.recycle(); 44199327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn return res; 44209327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn } 44218f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz 44228f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz public void setUserIsMonkey(boolean monkey) throws RemoteException { 44238f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz Parcel data = Parcel.obtain(); 44248f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz Parcel reply = Parcel.obtain(); 44258f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz data.writeInterfaceToken(IActivityManager.descriptor); 44268f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz data.writeInt(monkey ? 1 : 0); 44278f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz mRemote.transact(SET_USER_IS_MONKEY_TRANSACTION, data, reply, 0); 44288f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz reply.readException(); 44298f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz data.recycle(); 44308f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz reply.recycle(); 44318f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz } 44328f6f1f43eeb0d7263b626978ee2c21d4053bf610Adam Momtaz 4433860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn public void finishHeavyWeightApp() throws RemoteException { 4434860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn Parcel data = Parcel.obtain(); 4435860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn Parcel reply = Parcel.obtain(); 4436860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4437860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn mRemote.transact(FINISH_HEAVY_WEIGHT_APP_TRANSACTION, data, reply, 0); 4438860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn reply.readException(); 4439860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn data.recycle(); 4440860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn reply.recycle(); 4441860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn } 44424addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner 4443bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner public boolean convertFromTranslucent(IBinder token) 44445eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner throws RemoteException { 44455eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner Parcel data = Parcel.obtain(); 44465eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner Parcel reply = Parcel.obtain(); 44475eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 44485eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner data.writeStrongBinder(token); 44495eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner mRemote.transact(CONVERT_FROM_TRANSLUCENT_TRANSACTION, data, reply, 0); 44505eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner reply.readException(); 4451bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner boolean res = reply.readInt() != 0; 44525eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner data.recycle(); 44535eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner reply.recycle(); 4454bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner return res; 44555eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner } 44565eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner 4457233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner public boolean convertToTranslucent(IBinder token, ActivityOptions options) 44584addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner throws RemoteException { 44594addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner Parcel data = Parcel.obtain(); 44604addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner Parcel reply = Parcel.obtain(); 44614addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 44624addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner data.writeStrongBinder(token); 4463233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner if (options == null) { 4464233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner data.writeInt(0); 4465233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner } else { 4466233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner data.writeInt(1); 4467233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner data.writeBundle(options.toBundle()); 4468233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner } 44695eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner mRemote.transact(CONVERT_TO_TRANSLUCENT_TRANSACTION, data, reply, 0); 44704addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner reply.readException(); 4471bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner boolean res = reply.readInt() != 0; 44724addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner data.recycle(); 44734addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner reply.recycle(); 4474bc57cd1b248bf23e443581f9fe44167c94699ce8Craig Mautner return res; 44754addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner } 44764addfc5f3998e3d7fc0a2ed9a9051c034da2ea3dCraig Mautner 4477233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner public ActivityOptions getActivityOptions(IBinder token) throws RemoteException { 4478233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner Parcel data = Parcel.obtain(); 4479233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner Parcel reply = Parcel.obtain(); 4480233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 4481233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner data.writeStrongBinder(token); 4482233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner mRemote.transact(GET_ACTIVITY_OPTIONS_TRANSACTION, data, reply, 0); 4483233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner reply.readException(); 4484233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner Bundle bundle = reply.readBundle(); 4485233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner ActivityOptions options = bundle == null ? null : new ActivityOptions(bundle); 4486233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner data.recycle(); 4487233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner reply.recycle(); 4488233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner return options; 4489233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner } 4490233ceeebab7efe6ad4783371003c4cf29b896436Craig Mautner 449169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler public void setImmersive(IBinder token, boolean immersive) 449269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler throws RemoteException { 449369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel data = Parcel.obtain(); 449469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel reply = Parcel.obtain(); 449569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeInterfaceToken(IActivityManager.descriptor); 449669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeStrongBinder(token); 449769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeInt(immersive ? 1 : 0); 449869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler mRemote.transact(SET_IMMERSIVE_TRANSACTION, data, reply, 0); 449969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.readException(); 450069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.recycle(); 450169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.recycle(); 450269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 450369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 450469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler public boolean isImmersive(IBinder token) 450569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler throws RemoteException { 450669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel data = Parcel.obtain(); 450769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel reply = Parcel.obtain(); 450869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeInterfaceToken(IActivityManager.descriptor); 450969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeStrongBinder(token); 451069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler mRemote.transact(IS_IMMERSIVE_TRANSACTION, data, reply, 0); 451169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.readException(); 45127e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn boolean res = reply.readInt() == 1; 451369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.recycle(); 451469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.recycle(); 451569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler return res; 451669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 451769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 4518d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner public boolean isTopOfTask(IBinder token) throws RemoteException { 4519d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner Parcel data = Parcel.obtain(); 4520d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner Parcel reply = Parcel.obtain(); 4521d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 4522d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner data.writeStrongBinder(token); 4523d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner mRemote.transact(IS_TOP_OF_TASK_TRANSACTION, data, reply, 0); 4524d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner reply.readException(); 4525d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner boolean res = reply.readInt() == 1; 4526d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner data.recycle(); 4527d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner reply.recycle(); 4528d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner return res; 4529d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner } 4530d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner 453169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler public boolean isTopActivityImmersive() 453269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler throws RemoteException { 453369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel data = Parcel.obtain(); 453469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler Parcel reply = Parcel.obtain(); 453569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.writeInterfaceToken(IActivityManager.descriptor); 453669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler mRemote.transact(IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION, data, reply, 0); 453769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.readException(); 45387e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn boolean res = reply.readInt() == 1; 453969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler data.recycle(); 454069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler reply.recycle(); 454169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler return res; 454269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler } 454369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler 45449d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn public void crashApplication(int uid, int initialPid, String packageName, 45459d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn String message) throws RemoteException { 45469d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn Parcel data = Parcel.obtain(); 45479d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn Parcel reply = Parcel.obtain(); 45489d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 45499d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.writeInt(uid); 45509d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.writeInt(initialPid); 45519d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.writeString(packageName); 45529d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.writeString(message); 45539d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn mRemote.transact(CRASH_APPLICATION_TRANSACTION, data, reply, 0); 45549d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn reply.readException(); 45559d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn data.recycle(); 45569d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn reply.recycle(); 45579d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn } 4558824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden 45595e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn public String getProviderMimeType(Uri uri, int userId) throws RemoteException { 4560cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn Parcel data = Parcel.obtain(); 4561cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn Parcel reply = Parcel.obtain(); 4562cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4563cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn uri.writeToParcel(data, 0); 45645e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInt(userId); 4565cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn mRemote.transact(GET_PROVIDER_MIME_TYPE_TRANSACTION, data, reply, 0); 4566cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn reply.readException(); 4567cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn String res = reply.readString(); 4568cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn data.recycle(); 4569cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn reply.recycle(); 4570cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn return res; 4571cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn } 4572cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn 45737e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn public IBinder newUriPermissionOwner(String name) 45747e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn throws RemoteException { 45757e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel data = Parcel.obtain(); 45767e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel reply = Parcel.obtain(); 45777e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 45787e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeString(name); 45797e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn mRemote.transact(NEW_URI_PERMISSION_OWNER_TRANSACTION, data, reply, 0); 45807e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.readException(); 45817e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn IBinder res = reply.readStrongBinder(); 45827e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.recycle(); 45837e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.recycle(); 45847e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn return res; 45857e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 45867e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn 45877e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn public void grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg, 4588f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot Uri uri, int mode, int sourceUserId, int targetUserId) throws RemoteException { 45897e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel data = Parcel.obtain(); 45907e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel reply = Parcel.obtain(); 45917e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 45927e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeStrongBinder(owner); 45937e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInt(fromUid); 45947e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeString(targetPkg); 45957e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn uri.writeToParcel(data, 0); 45967e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInt(mode); 4597f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot data.writeInt(sourceUserId); 4598f1939901d2ed0480069f0b23be64f122fce93995Nicolas Prevot data.writeInt(targetUserId); 45997e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn mRemote.transact(GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0); 46007e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.readException(); 46017e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.recycle(); 46027e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.recycle(); 46037e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 46047e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn 46057e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn public void revokeUriPermissionFromOwner(IBinder owner, Uri uri, 4606d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot int mode, int userId) throws RemoteException { 46077e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel data = Parcel.obtain(); 46087e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn Parcel reply = Parcel.obtain(); 46097e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 46107e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeStrongBinder(owner); 46117e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn if (uri != null) { 46127e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInt(1); 46137e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn uri.writeToParcel(data, 0); 46147e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } else { 46157e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInt(0); 46167e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 46177e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.writeInt(mode); 4618d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot data.writeInt(userId); 46197e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn mRemote.transact(REVOKE_URI_PERMISSION_TRANSACTION, data, reply, 0); 46207e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.readException(); 46217e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn data.recycle(); 46227e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn reply.recycle(); 46237e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn } 4624c8f8497b9cac63a923dbdb1c08e247ba32c19e5eDianne Hackborn 462590f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn public int checkGrantUriPermission(int callingUid, String targetPkg, 4626d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot Uri uri, int modeFlags, int userId) throws RemoteException { 462790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn Parcel data = Parcel.obtain(); 462890f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn Parcel reply = Parcel.obtain(); 462990f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 463090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.writeInt(callingUid); 463190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.writeString(targetPkg); 463290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn uri.writeToParcel(data, 0); 463390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.writeInt(modeFlags); 4634d85fc72fb810858f7502e7e7f1bad53e1bf03eddNicolas Prevot data.writeInt(userId); 463590f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn mRemote.transact(CHECK_GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0); 463690f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn reply.readException(); 463790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn int res = reply.readInt(); 463890f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn data.recycle(); 463990f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn reply.recycle(); 464090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn return res; 464190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn } 464290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn 46431676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn public boolean dumpHeap(String process, int userId, boolean managed, 4644824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden String path, ParcelFileDescriptor fd) throws RemoteException { 4645824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden Parcel data = Parcel.obtain(); 4646824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden Parcel reply = Parcel.obtain(); 4647824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeInterfaceToken(IActivityManager.descriptor); 4648824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeString(process); 46491676c856d61b97c871dc2be0cb1f1fb1e12e24e9Dianne Hackborn data.writeInt(userId); 4650824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeInt(managed ? 1 : 0); 4651824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeString(path); 4652824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden if (fd != null) { 4653824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeInt(1); 4654824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden fd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 4655824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden } else { 4656824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.writeInt(0); 4657824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden } 4658824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden mRemote.transact(DUMP_HEAP_TRANSACTION, data, reply, 0); 4659824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden reply.readException(); 4660824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden boolean res = reply.readInt() != 0; 4661824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden reply.recycle(); 4662824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden data.recycle(); 4663824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden return res; 4664824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden } 46659d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn 4666f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn public int startActivities(IApplicationThread caller, String callingPackage, 4667a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn Intent[] intents, String[] resolvedTypes, IBinder resultTo, 4668ea7e91514ee1968d15713e82a5cca745e2c46a05Amith Yamasani Bundle options, int userId) throws RemoteException { 4669621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn Parcel data = Parcel.obtain(); 4670621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn Parcel reply = Parcel.obtain(); 4671621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4672621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeStrongBinder(caller != null ? caller.asBinder() : null); 4673f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn data.writeString(callingPackage); 4674621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeTypedArray(intents, 0); 4675621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeStringArray(resolvedTypes); 4676621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.writeStrongBinder(resultTo); 4677a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn if (options != null) { 4678a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(1); 4679a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn options.writeToParcel(data, 0); 4680a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } else { 4681a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn data.writeInt(0); 4682a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn } 4683ea7e91514ee1968d15713e82a5cca745e2c46a05Amith Yamasani data.writeInt(userId); 4684621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn mRemote.transact(START_ACTIVITIES_TRANSACTION, data, reply, 0); 4685621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn reply.readException(); 4686621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn int result = reply.readInt(); 4687621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn reply.recycle(); 4688621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn data.recycle(); 4689621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn return result; 4690621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn } 4691621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn 46920f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn public int getFrontActivityScreenCompatMode() throws RemoteException { 46930f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel data = Parcel.obtain(); 46940f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel reply = Parcel.obtain(); 46950f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 46960f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn mRemote.transact(GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 46970f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.readException(); 46980f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = reply.readInt(); 46990f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.recycle(); 47000f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.recycle(); 47010f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn return mode; 47020f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 47030f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 47040f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn public void setFrontActivityScreenCompatMode(int mode) throws RemoteException { 47050f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel data = Parcel.obtain(); 47060f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel reply = Parcel.obtain(); 47070f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 47080f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.writeInt(mode); 47090f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn mRemote.transact(SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 47100f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.readException(); 47110f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.recycle(); 47120f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.recycle(); 47130f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 47140f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 47150f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn public int getPackageScreenCompatMode(String packageName) throws RemoteException { 47160f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel data = Parcel.obtain(); 47170f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn Parcel reply = Parcel.obtain(); 47180f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 471936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeString(packageName); 472036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn mRemote.transact(GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 47210f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.readException(); 47220f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn int mode = reply.readInt(); 47230f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn reply.recycle(); 47240f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.recycle(); 47250f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn return mode; 47260f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn } 47270f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn 47280f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn public void setPackageScreenCompatMode(String packageName, int mode) 4729e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn throws RemoteException { 4730e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn Parcel data = Parcel.obtain(); 4731e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn Parcel reply = Parcel.obtain(); 4732e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4733e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn data.writeString(packageName); 47340f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn data.writeInt(mode); 4735e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn mRemote.transact(SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 4736e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn reply.readException(); 4737e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn reply.recycle(); 4738e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn data.recycle(); 4739e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn } 4740e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn 474136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn public boolean getPackageAskScreenCompat(String packageName) throws RemoteException { 474236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn Parcel data = Parcel.obtain(); 474336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn Parcel reply = Parcel.obtain(); 474436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 474536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeString(packageName); 474636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn mRemote.transact(GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION, data, reply, 0); 474736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.readException(); 474836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn boolean ask = reply.readInt() != 0; 474936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.recycle(); 475036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.recycle(); 475136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn return ask; 475236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn } 475336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn 475436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn public void setPackageAskScreenCompat(String packageName, boolean ask) 475536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn throws RemoteException { 475636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn Parcel data = Parcel.obtain(); 475736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn Parcel reply = Parcel.obtain(); 475836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 475936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeString(packageName); 476036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.writeInt(ask ? 1 : 0); 476136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn mRemote.transact(SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION, data, reply, 0); 476236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.readException(); 476336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn reply.recycle(); 476436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn data.recycle(); 476536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn } 476636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn 47674b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani public boolean switchUser(int userid) throws RemoteException { 47684b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani Parcel data = Parcel.obtain(); 47694b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani Parcel reply = Parcel.obtain(); 47704b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani data.writeInterfaceToken(IActivityManager.descriptor); 47714b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani data.writeInt(userid); 47724b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani mRemote.transact(SWITCH_USER_TRANSACTION, data, reply, 0); 47734b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani reply.readException(); 47744b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani boolean result = reply.readInt() != 0; 47754b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani reply.recycle(); 47764b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani data.recycle(); 47774b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani return result; 47784b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani } 477952f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani 478008488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy public boolean startUserInBackground(int userid) throws RemoteException { 478108488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy Parcel data = Parcel.obtain(); 478208488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy Parcel reply = Parcel.obtain(); 478308488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy data.writeInterfaceToken(IActivityManager.descriptor); 478408488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy data.writeInt(userid); 478508488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy mRemote.transact(START_USER_IN_BACKGROUND_TRANSACTION, data, reply, 0); 478608488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy reply.readException(); 478708488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy boolean result = reply.readInt() != 0; 478808488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy reply.recycle(); 478908488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy data.recycle(); 479008488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy return result; 479108488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy } 479208488bf3fe6f4b1fadf59821feaf07b4c2ae52aeKenny Guy 479380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn public int stopUser(int userid, IStopUserCallback callback) throws RemoteException { 479480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn Parcel data = Parcel.obtain(); 479580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn Parcel reply = Parcel.obtain(); 479680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 479780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.writeInt(userid); 479880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.writeStrongInterface(callback); 479980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn mRemote.transact(STOP_USER_TRANSACTION, data, reply, 0); 480080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn reply.readException(); 480180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn int result = reply.readInt(); 480280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn reply.recycle(); 480380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn data.recycle(); 480480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn return result; 480580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn } 480680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 480752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani public UserInfo getCurrentUser() throws RemoteException { 480852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani Parcel data = Parcel.obtain(); 480952f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani Parcel reply = Parcel.obtain(); 481052f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani data.writeInterfaceToken(IActivityManager.descriptor); 481180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn mRemote.transact(GET_CURRENT_USER_TRANSACTION, data, reply, 0); 481252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani reply.readException(); 481352f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani UserInfo userInfo = UserInfo.CREATOR.createFromParcel(reply); 481452f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani reply.recycle(); 481552f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani data.recycle(); 481652f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani return userInfo; 481752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani } 481852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani 4819a8a9bd65bf5865d83ef44f54552ca39522bfbcf0Dianne Hackborn public boolean isUserRunning(int userid, boolean orStopping) throws RemoteException { 48205e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn Parcel data = Parcel.obtain(); 48215e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn Parcel reply = Parcel.obtain(); 48225e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 48235e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.writeInt(userid); 4824a8a9bd65bf5865d83ef44f54552ca39522bfbcf0Dianne Hackborn data.writeInt(orStopping ? 1 : 0); 48255e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn mRemote.transact(IS_USER_RUNNING_TRANSACTION, data, reply, 0); 48265e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn reply.readException(); 48275e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn boolean result = reply.readInt() != 0; 48285e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn reply.recycle(); 48295e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn data.recycle(); 48305e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn return result; 48315e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn } 48325e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn 4833c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn public int[] getRunningUserIds() throws RemoteException { 4834c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn Parcel data = Parcel.obtain(); 4835c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn Parcel reply = Parcel.obtain(); 4836c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4837c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn mRemote.transact(GET_RUNNING_USER_IDS_TRANSACTION, data, reply, 0); 4838c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn reply.readException(); 4839c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn int[] result = reply.createIntArray(); 4840c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn reply.recycle(); 4841c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn data.recycle(); 4842c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn return result; 4843c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn } 4844c72fc674a33b8d17585764d09d3bb6c77d7d947eDianne Hackborn 4845d54b578e47fb410c776bb3a4272c2c523153f657Wale Ogunwale public boolean removeTask(int taskId) throws RemoteException { 48460c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn Parcel data = Parcel.obtain(); 48470c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn Parcel reply = Parcel.obtain(); 48480c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 48490c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.writeInt(taskId); 48500c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn mRemote.transact(REMOVE_TASK_TRANSACTION, data, reply, 0); 48510c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.readException(); 48520c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn boolean result = reply.readInt() != 0; 48530c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn reply.recycle(); 48540c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn data.recycle(); 48550c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn return result; 48560c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn } 48574b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani 4858a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey public void registerProcessObserver(IProcessObserver observer) throws RemoteException { 4859a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey Parcel data = Parcel.obtain(); 4860a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey Parcel reply = Parcel.obtain(); 4861a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.writeInterfaceToken(IActivityManager.descriptor); 4862a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.writeStrongBinder(observer != null ? observer.asBinder() : null); 4863a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey mRemote.transact(REGISTER_PROCESS_OBSERVER_TRANSACTION, data, reply, 0); 4864a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey reply.readException(); 4865a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.recycle(); 4866a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey reply.recycle(); 4867a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey } 4868a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey 4869a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey public void unregisterProcessObserver(IProcessObserver observer) throws RemoteException { 4870a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey Parcel data = Parcel.obtain(); 4871a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey Parcel reply = Parcel.obtain(); 4872a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.writeInterfaceToken(IActivityManager.descriptor); 4873a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.writeStrongBinder(observer != null ? observer.asBinder() : null); 4874a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey mRemote.transact(UNREGISTER_PROCESS_OBSERVER_TRANSACTION, data, reply, 0); 4875a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey reply.readException(); 4876a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey data.recycle(); 4877a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey reply.recycle(); 4878a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey } 4879a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey 48806c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn public boolean isIntentSenderTargetedToPackage(IIntentSender sender) throws RemoteException { 48816c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn Parcel data = Parcel.obtain(); 48826c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn Parcel reply = Parcel.obtain(); 48836c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 48846c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.writeStrongBinder(sender.asBinder()); 48856c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn mRemote.transact(IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION, data, reply, 0); 48866c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn reply.readException(); 48876c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn boolean res = reply.readInt() != 0; 48886c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn data.recycle(); 48896c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn reply.recycle(); 48906c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn return res; 48916c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn } 48926c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn 48931927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn public boolean isIntentSenderAnActivity(IIntentSender sender) throws RemoteException { 48941927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn Parcel data = Parcel.obtain(); 48951927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn Parcel reply = Parcel.obtain(); 48961927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 48971927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn data.writeStrongBinder(sender.asBinder()); 48981927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn mRemote.transact(IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION, data, reply, 0); 48991927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn reply.readException(); 49001927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn boolean res = reply.readInt() != 0; 49011927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn data.recycle(); 49021927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn reply.recycle(); 49031927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn return res; 49041927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn } 49051927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn 49068103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn public Intent getIntentForIntentSender(IIntentSender sender) throws RemoteException { 49078103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn Parcel data = Parcel.obtain(); 49088103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn Parcel reply = Parcel.obtain(); 49098103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 49108103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn data.writeStrongBinder(sender.asBinder()); 49118103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn mRemote.transact(GET_INTENT_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0); 49128103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn reply.readException(); 49138103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn Intent res = reply.readInt() != 0 49148103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn ? Intent.CREATOR.createFromParcel(reply) : null; 49158103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn data.recycle(); 49168103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn reply.recycle(); 49178103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn return res; 49188103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn } 49198103890a59de6ed4abaedaad80e66666ea59f9b5Dianne Hackborn 4920a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn public String getTagForIntentSender(IIntentSender sender, String prefix) 4921a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn throws RemoteException { 4922a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn Parcel data = Parcel.obtain(); 4923a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn Parcel reply = Parcel.obtain(); 4924a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4925a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn data.writeStrongBinder(sender.asBinder()); 4926a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn data.writeString(prefix); 4927a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn mRemote.transact(GET_TAG_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0); 4928a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn reply.readException(); 4929a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn String res = reply.readString(); 4930a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn data.recycle(); 4931a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn reply.recycle(); 4932a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn return res; 4933a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn } 4934a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn 493531ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn public void updatePersistentConfiguration(Configuration values) throws RemoteException 493631ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn { 493731ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn Parcel data = Parcel.obtain(); 493831ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn Parcel reply = Parcel.obtain(); 493931ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 494031ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn values.writeToParcel(data, 0); 494131ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn mRemote.transact(UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION, data, reply, 0); 494231ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn reply.readException(); 494331ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn data.recycle(); 494431ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn reply.recycle(); 494531ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn } 494631ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn 4947b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn public long[] getProcessPss(int[] pids) throws RemoteException { 4948b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn Parcel data = Parcel.obtain(); 4949b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn Parcel reply = Parcel.obtain(); 4950b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4951b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn data.writeIntArray(pids); 4952b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn mRemote.transact(GET_PROCESS_PSS_TRANSACTION, data, reply, 0); 4953b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn reply.readException(); 4954b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn long[] res = reply.createLongArray(); 4955b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn data.recycle(); 4956b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn reply.recycle(); 4957b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn return res; 4958b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn } 4959b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn 4960661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn public void showBootMessage(CharSequence msg, boolean always) throws RemoteException { 4961661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn Parcel data = Parcel.obtain(); 4962661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn Parcel reply = Parcel.obtain(); 4963661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 4964661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn TextUtils.writeToParcel(msg, data, 0); 4965661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn data.writeInt(always ? 1 : 0); 4966661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn mRemote.transact(SHOW_BOOT_MESSAGE_TRANSACTION, data, reply, 0); 4967661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn reply.readException(); 4968661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn data.recycle(); 4969661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn reply.recycle(); 4970661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn } 4971661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn 49728de4311c51229efbe2f2d0afbf298982c5cadd96Jorim Jaggi public void keyguardWaitingForActivityDrawn() throws RemoteException { 497390c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn Parcel data = Parcel.obtain(); 497490c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn Parcel reply = Parcel.obtain(); 497590c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 49768de4311c51229efbe2f2d0afbf298982c5cadd96Jorim Jaggi mRemote.transact(KEYGUARD_WAITING_FOR_ACTIVITY_DRAWN_TRANSACTION, data, reply, 0); 497790c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn reply.readException(); 497890c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn data.recycle(); 497990c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn reply.recycle(); 498090c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn } 498190c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn 49826f4d61ff2e3143bea37bbc1a7a2a0ab415b2c88aDianne Hackborn public boolean shouldUpRecreateTask(IBinder token, String destAffinity) 4983dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell throws RemoteException { 4984dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Parcel data = Parcel.obtain(); 4985dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Parcel reply = Parcel.obtain(); 4986dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeInterfaceToken(IActivityManager.descriptor); 4987dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeStrongBinder(token); 4988dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeString(destAffinity); 49896f4d61ff2e3143bea37bbc1a7a2a0ab415b2c88aDianne Hackborn mRemote.transact(SHOULD_UP_RECREATE_TASK_TRANSACTION, data, reply, 0); 4990dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.readException(); 4991dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell boolean result = reply.readInt() != 0; 4992dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.recycle(); 4993dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.recycle(); 4994dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell return result; 4995dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 4996dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell 4997dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell public boolean navigateUpTo(IBinder token, Intent target, int resultCode, Intent resultData) 4998dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell throws RemoteException { 4999dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Parcel data = Parcel.obtain(); 5000dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell Parcel reply = Parcel.obtain(); 5001dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeInterfaceToken(IActivityManager.descriptor); 5002dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeStrongBinder(token); 5003dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell target.writeToParcel(data, 0); 5004dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeInt(resultCode); 5005dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell if (resultData != null) { 5006dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeInt(1); 5007dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell resultData.writeToParcel(data, 0); 5008dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } else { 5009dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.writeInt(0); 5010dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 5011dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell mRemote.transact(NAVIGATE_UP_TO_TRANSACTION, data, reply, 0); 5012dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.readException(); 5013dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell boolean result = reply.readInt() != 0; 5014dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell data.recycle(); 5015dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell reply.recycle(); 5016dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell return result; 5017dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell } 5018dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell 50195320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn public int getLaunchedFromUid(IBinder activityToken) throws RemoteException { 50205320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn Parcel data = Parcel.obtain(); 50215320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn Parcel reply = Parcel.obtain(); 50225320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 50235320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn data.writeStrongBinder(activityToken); 50245320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn mRemote.transact(GET_LAUNCHED_FROM_UID_TRANSACTION, data, reply, 0); 50255320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn reply.readException(); 50265320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn int result = reply.readInt(); 50275320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn data.recycle(); 50285320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn reply.recycle(); 50295320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn return result; 50305320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn } 50315320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn 5032f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn public String getLaunchedFromPackage(IBinder activityToken) throws RemoteException { 5033f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn Parcel data = Parcel.obtain(); 5034f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn Parcel reply = Parcel.obtain(); 5035f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 5036f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn data.writeStrongBinder(activityToken); 5037f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn mRemote.transact(GET_LAUNCHED_FROM_PACKAGE_TRANSACTION, data, reply, 0); 5038f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn reply.readException(); 5039f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn String result = reply.readString(); 5040f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn data.recycle(); 5041f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn reply.recycle(); 5042f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn return result; 5043f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn } 5044f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn 50455dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn public void registerUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException { 50465dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn Parcel data = Parcel.obtain(); 50475dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn Parcel reply = Parcel.obtain(); 50485dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 50495dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn data.writeStrongBinder(observer != null ? observer.asBinder() : null); 50505dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn mRemote.transact(REGISTER_USER_SWITCH_OBSERVER_TRANSACTION, data, reply, 0); 50515dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn reply.readException(); 50525dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn data.recycle(); 50535dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn reply.recycle(); 50545dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn } 50555dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn 50565dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn public void unregisterUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException { 50575dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn Parcel data = Parcel.obtain(); 50585dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn Parcel reply = Parcel.obtain(); 50595dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 50605dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn data.writeStrongBinder(observer != null ? observer.asBinder() : null); 50615dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn mRemote.transact(UNREGISTER_USER_SWITCH_OBSERVER_TRANSACTION, data, reply, 0); 50625dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn reply.readException(); 50635dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn data.recycle(); 50645dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn reply.recycle(); 50655dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn } 50665dc5a00e7ebadc085ded7e29feacd17e53698486Dianne Hackborn 5067d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn public void requestBugReport() throws RemoteException { 5068d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn Parcel data = Parcel.obtain(); 5069d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn Parcel reply = Parcel.obtain(); 5070d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 5071d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn mRemote.transact(REQUEST_BUG_REPORT_TRANSACTION, data, reply, 0); 5072d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn reply.readException(); 5073d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn data.recycle(); 5074d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn reply.recycle(); 5075d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn } 5076d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn 5077bd181bb83282571eb793d2e4a48b4d19585de7f2Jeff Brown public long inputDispatchingTimedOut(int pid, boolean aboveSystem, String reason) 5078bd181bb83282571eb793d2e4a48b4d19585de7f2Jeff Brown throws RemoteException { 50795fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn Parcel data = Parcel.obtain(); 50805fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn Parcel reply = Parcel.obtain(); 50815fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 50825fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn data.writeInt(pid); 50835fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn data.writeInt(aboveSystem ? 1 : 0); 5084bd181bb83282571eb793d2e4a48b4d19585de7f2Jeff Brown data.writeString(reason); 50855fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn mRemote.transact(INPUT_DISPATCHING_TIMED_OUT_TRANSACTION, data, reply, 0); 50865fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn reply.readException(); 50875fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn long res = reply.readInt(); 50885fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn data.recycle(); 50895fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn reply.recycle(); 50905fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn return res; 50915fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn } 50925fe7e2a3043d6a8ca933c77ccf95c791b57b221aDianne Hackborn 5093dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory public Bundle getAssistContextExtras(int requestType) throws RemoteException { 5094f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn Parcel data = Parcel.obtain(); 5095f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn Parcel reply = Parcel.obtain(); 5096f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 5097f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn data.writeInt(requestType); 5098dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory mRemote.transact(GET_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0); 5099f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn reply.readException(); 5100f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn Bundle res = reply.readBundle(); 5101f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn data.recycle(); 5102f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn reply.recycle(); 5103f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn return res; 5104f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn } 5105f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn 51067140a25f0135f473b66d01eb042471b2f0ebc836Adam Skory public void reportAssistContextExtras(IBinder token, Bundle extras) 5107dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory throws RemoteException { 5108f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn Parcel data = Parcel.obtain(); 5109f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn Parcel reply = Parcel.obtain(); 5110f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 5111f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn data.writeStrongBinder(token); 5112f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn data.writeBundle(extras); 5113dfc7fd7818cda46b914c8a9d69d1ba00443ffe5bAdam Skory mRemote.transact(REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0); 5114f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn reply.readException(); 5115f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn data.recycle(); 5116f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn reply.recycle(); 5117f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn } 5118f9c5e0fe837a3090820da502ecaabc5accc00aceDianne Hackborn 5119fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn public boolean launchAssistIntent(Intent intent, int requestType, String hint, int userHandle) 5120fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn throws RemoteException { 5121fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn Parcel data = Parcel.obtain(); 5122fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn Parcel reply = Parcel.obtain(); 5123fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 5124fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn intent.writeToParcel(data, 0); 5125fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn data.writeInt(requestType); 5126fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn data.writeString(hint); 5127fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn data.writeInt(userHandle); 5128fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn mRemote.transact(LAUNCH_ASSIST_INTENT_TRANSACTION, data, reply, 0); 5129fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn reply.readException(); 5130fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn boolean res = reply.readInt() != 0; 5131fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn data.recycle(); 5132fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn reply.recycle(); 5133fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn return res; 5134fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn } 5135fdf5b35ab46639759d6389a4e2a4d5799cb6814bDianne Hackborn 5136f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn public void killUid(int uid, String reason) throws RemoteException { 5137f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn Parcel data = Parcel.obtain(); 5138f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn Parcel reply = Parcel.obtain(); 5139f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 5140f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn data.writeInt(uid); 5141f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn data.writeString(reason); 5142f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn mRemote.transact(KILL_UID_TRANSACTION, data, reply, 0); 5143f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn reply.readException(); 5144f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn data.recycle(); 5145f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn reply.recycle(); 5146f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn } 5147f1b782427fa5bc878ac0d5356ff8332143d3798bDianne Hackborn 51488bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn public void hang(IBinder who, boolean allowRestart) throws RemoteException { 51498bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn Parcel data = Parcel.obtain(); 51508bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn Parcel reply = Parcel.obtain(); 51518bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 51528bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn data.writeStrongBinder(who); 51538bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn data.writeInt(allowRestart ? 1 : 0); 51548bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn mRemote.transact(HANG_TRANSACTION, data, reply, 0); 51558bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn reply.readException(); 51568bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn data.recycle(); 51578bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn reply.recycle(); 51588bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn } 51598bd64df2adb26fe9547ae3961a58631e241b613eDianne Hackborn 51602286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn public void reportActivityFullyDrawn(IBinder token) throws RemoteException { 51612286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn Parcel data = Parcel.obtain(); 51622286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn Parcel reply = Parcel.obtain(); 51632286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 51642286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn data.writeStrongBinder(token); 51652286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn mRemote.transact(REPORT_ACTIVITY_FULLY_DRAWN_TRANSACTION, data, reply, 0); 51662286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn reply.readException(); 51672286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn data.recycle(); 51682286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn reply.recycle(); 51692286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn } 51702286cdc0cab77e61b75e6fe9a45b91f6e57cd46dDianne Hackborn 51715eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner public void notifyActivityDrawn(IBinder token) throws RemoteException { 51725eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner Parcel data = Parcel.obtain(); 51735eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner Parcel reply = Parcel.obtain(); 51745eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 51755eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner data.writeStrongBinder(token); 51765eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner mRemote.transact(NOTIFY_ACTIVITY_DRAWN_TRANSACTION, data, reply, 0); 51775eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner reply.readException(); 51785eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner data.recycle(); 51795eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner reply.recycle(); 51805eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner } 51815eda9b330120f75964cd78b29f6101cc273c2a7eCraig Mautner 518257a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn public void restart() throws RemoteException { 518357a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn Parcel data = Parcel.obtain(); 518457a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn Parcel reply = Parcel.obtain(); 518557a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 518657a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn mRemote.transact(RESTART_TRANSACTION, data, reply, 0); 518757a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn reply.readException(); 518857a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn data.recycle(); 518957a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn reply.recycle(); 519057a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn } 519157a7f5954cf1f9cbe99c70133863049a4be2e983Dianne Hackborn 519235f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn public void performIdleMaintenance() throws RemoteException { 519335f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn Parcel data = Parcel.obtain(); 519435f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn Parcel reply = Parcel.obtain(); 519535f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn data.writeInterfaceToken(IActivityManager.descriptor); 519635f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn mRemote.transact(PERFORM_IDLE_MAINTENANCE_TRANSACTION, data, reply, 0); 519735f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn reply.readException(); 519835f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn data.recycle(); 519935f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn reply.recycle(); 520035f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn } 520135f72be50b8a2d11bce591dcdac5dc3fa336dac0Dianne Hackborn 52024a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner public IActivityContainer createActivityContainer(IBinder parentActivityToken, 52034a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner IActivityContainerCallback callback) throws RemoteException { 52044a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner Parcel data = Parcel.obtain(); 52054a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner Parcel reply = Parcel.obtain(); 52064a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 52074a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner data.writeStrongBinder(parentActivityToken); 5208e3a00d745fad479f560e96cec23e957f37d1c043Craig Mautner data.writeStrongBinder(callback == null ? null : callback.asBinder()); 52094a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner mRemote.transact(CREATE_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0); 52104a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner reply.readException(); 5211bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner final int result = reply.readInt(); 5212bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner final IActivityContainer res; 5213bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner if (result == 1) { 5214bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner res = IActivityContainer.Stub.asInterface(reply.readStrongBinder()); 5215bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner } else { 5216bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner res = null; 5217bd503a4e3a1c897695f0edcf6e4aaac3a7e962c5Craig Mautner } 52184a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner data.recycle(); 52194a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner reply.recycle(); 52204a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner return res; 52214a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner } 52224a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner 522395da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner public void deleteActivityContainer(IActivityContainer activityContainer) 522495da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner throws RemoteException { 522595da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner Parcel data = Parcel.obtain(); 522695da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner Parcel reply = Parcel.obtain(); 522795da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 522895da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner data.writeStrongBinder(activityContainer.asBinder()); 522995da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner mRemote.transact(DELETE_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0); 523095da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner reply.readException(); 523195da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner data.recycle(); 523295da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner reply.recycle(); 523395da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner } 523495da1087ed3c7b9983b571bc5409827ae390f15fCraig Mautner 523536ebab675cba49e5201c5c228a524e6e1bb7dceaCraig Mautner @Override 523636ebab675cba49e5201c5c228a524e6e1bb7dceaCraig Mautner public int getActivityDisplayId(IBinder activityToken) throws RemoteException { 5237e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner Parcel data = Parcel.obtain(); 5238e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner Parcel reply = Parcel.obtain(); 5239e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 5240e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner data.writeStrongBinder(activityToken); 524136ebab675cba49e5201c5c228a524e6e1bb7dceaCraig Mautner mRemote.transact(GET_ACTIVITY_DISPLAY_ID_TRANSACTION, data, reply, 0); 5242e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner reply.readException(); 524336ebab675cba49e5201c5c228a524e6e1bb7dceaCraig Mautner final int displayId = reply.readInt(); 5244e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner data.recycle(); 5245e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner reply.recycle(); 524636ebab675cba49e5201c5c228a524e6e1bb7dceaCraig Mautner return displayId; 5247e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner } 5248e0a3884cb627efc650e19fbe76b1b3343468cf57Craig Mautner 524936ebab675cba49e5201c5c228a524e6e1bb7dceaCraig Mautner @Override 52504a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner public IBinder getHomeActivityToken() throws RemoteException { 52514a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner Parcel data = Parcel.obtain(); 52524a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner Parcel reply = Parcel.obtain(); 52534a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 52544a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner mRemote.transact(GET_HOME_ACTIVITY_TOKEN_TRANSACTION, data, reply, 0); 52554a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner reply.readException(); 52564a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner IBinder res = reply.readStrongBinder(); 52574a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner data.recycle(); 52584a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner reply.recycle(); 52594a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner return res; 52604a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner } 52614a1cb22056112f7ffd5f4fad8b7a092b96e7cc7bCraig Mautner 5262aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner @Override 5263aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner public void startLockTaskMode(int taskId) throws RemoteException { 5264aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner Parcel data = Parcel.obtain(); 5265aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner Parcel reply = Parcel.obtain(); 5266aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 5267aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.writeInt(taskId); 5268aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner mRemote.transact(START_LOCK_TASK_BY_TASK_ID_TRANSACTION, data, reply, 0); 5269aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.readException(); 5270aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.recycle(); 5271aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.recycle(); 5272aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner } 5273aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner 5274aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner @Override 5275aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner public void startLockTaskMode(IBinder token) throws RemoteException { 5276aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner Parcel data = Parcel.obtain(); 5277aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner Parcel reply = Parcel.obtain(); 5278aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 5279aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.writeStrongBinder(token); 5280aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner mRemote.transact(START_LOCK_TASK_BY_TOKEN_TRANSACTION, data, reply, 0); 5281aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.readException(); 5282aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.recycle(); 5283aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.recycle(); 5284aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner } 5285aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner 5286aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner @Override 528762515beee67307d8859beec521b7baedfa54b2b5Jason Monk public void startLockTaskModeOnCurrent() throws RemoteException { 528862515beee67307d8859beec521b7baedfa54b2b5Jason Monk Parcel data = Parcel.obtain(); 528962515beee67307d8859beec521b7baedfa54b2b5Jason Monk Parcel reply = Parcel.obtain(); 529062515beee67307d8859beec521b7baedfa54b2b5Jason Monk data.writeInterfaceToken(IActivityManager.descriptor); 5291d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner mRemote.transact(START_LOCK_TASK_BY_CURRENT_TRANSACTION, data, reply, 0); 529262515beee67307d8859beec521b7baedfa54b2b5Jason Monk reply.readException(); 529362515beee67307d8859beec521b7baedfa54b2b5Jason Monk data.recycle(); 529462515beee67307d8859beec521b7baedfa54b2b5Jason Monk reply.recycle(); 529562515beee67307d8859beec521b7baedfa54b2b5Jason Monk } 529662515beee67307d8859beec521b7baedfa54b2b5Jason Monk 529762515beee67307d8859beec521b7baedfa54b2b5Jason Monk @Override 5298aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner public void stopLockTaskMode() throws RemoteException { 5299aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner Parcel data = Parcel.obtain(); 5300aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner Parcel reply = Parcel.obtain(); 5301aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 5302aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner mRemote.transact(STOP_LOCK_TASK_MODE_TRANSACTION, data, reply, 0); 5303aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.readException(); 5304aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.recycle(); 5305aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.recycle(); 5306aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner } 5307aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner 5308aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner @Override 530962515beee67307d8859beec521b7baedfa54b2b5Jason Monk public void stopLockTaskModeOnCurrent() throws RemoteException { 531062515beee67307d8859beec521b7baedfa54b2b5Jason Monk Parcel data = Parcel.obtain(); 531162515beee67307d8859beec521b7baedfa54b2b5Jason Monk Parcel reply = Parcel.obtain(); 531262515beee67307d8859beec521b7baedfa54b2b5Jason Monk data.writeInterfaceToken(IActivityManager.descriptor); 5313d61dc20de10452dcc6905dcf0654f30c64762a1dCraig Mautner mRemote.transact(STOP_LOCK_TASK_BY_CURRENT_TRANSACTION, data, reply, 0); 531462515beee67307d8859beec521b7baedfa54b2b5Jason Monk reply.readException(); 531562515beee67307d8859beec521b7baedfa54b2b5Jason Monk data.recycle(); 531662515beee67307d8859beec521b7baedfa54b2b5Jason Monk reply.recycle(); 531762515beee67307d8859beec521b7baedfa54b2b5Jason Monk } 531862515beee67307d8859beec521b7baedfa54b2b5Jason Monk 531962515beee67307d8859beec521b7baedfa54b2b5Jason Monk @Override 5320aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner public boolean isInLockTaskMode() throws RemoteException { 5321aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner Parcel data = Parcel.obtain(); 5322aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner Parcel reply = Parcel.obtain(); 5323aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 5324aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner mRemote.transact(IS_IN_LOCK_TASK_MODE_TRANSACTION, data, reply, 0); 5325aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.readException(); 5326aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner boolean isInLockTaskMode = reply.readInt() == 1; 5327aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner data.recycle(); 5328aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner reply.recycle(); 5329aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner return isInLockTaskMode; 5330aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner } 5331aea74a5977ca9f1054926eb24f247562c3a4a6baCraig Mautner 5332688b5105d665a56e6f2f040f3ca89ca3006801dfCraig Mautner @Override 5333a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung public void setTaskDescription(IBinder token, ActivityManager.TaskDescription values) 533403a9baedc9b933bb6a550c0cb84649b1b45b872cWinson Chung throws RemoteException { 53352fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner Parcel data = Parcel.obtain(); 53362fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner Parcel reply = Parcel.obtain(); 53372fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 53382fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner data.writeStrongBinder(token); 533903a9baedc9b933bb6a550c0cb84649b1b45b872cWinson Chung values.writeToParcel(data, 0); 5340a449dc033b79775b8945d9cc5a035a6deb145065Winson Chung mRemote.transact(SET_TASK_DESCRIPTION_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 53412fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner reply.readException(); 53422fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner data.recycle(); 53432fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner reply.recycle(); 53442fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner } 53452fbd7541804f816171849413b095fcfc70e06c1eCraig Mautner 5346ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner @Override 5347648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner public Bitmap getTaskDescriptionIcon(String filename) throws RemoteException { 5348648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner Parcel data = Parcel.obtain(); 5349648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner Parcel reply = Parcel.obtain(); 5350648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 5351648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner data.writeString(filename); 5352648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner mRemote.transact(GET_TASK_DESCRIPTION_ICON_TRANSACTION, data, reply, 0); 5353648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner reply.readException(); 5354648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner final Bitmap icon = reply.readInt() == 0 ? null : Bitmap.CREATOR.createFromParcel(reply); 5355648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner data.recycle(); 5356648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner reply.recycle(); 5357648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner return icon; 5358648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner } 5359648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner 5360648f69b95ce7fc95f551f6e08a2408d6e57dbab9Craig Mautner @Override 5361044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung public void startInPlaceAnimationOnFrontMostApplication(ActivityOptions options) 5362044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung throws RemoteException { 5363044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung Parcel data = Parcel.obtain(); 5364044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung Parcel reply = Parcel.obtain(); 5365044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung data.writeInterfaceToken(IActivityManager.descriptor); 5366044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung if (options == null) { 5367044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung data.writeInt(0); 5368044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung } else { 5369044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung data.writeInt(1); 5370044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung data.writeBundle(options.toBundle()); 5371044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung } 5372044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung mRemote.transact(START_IN_PLACE_ANIMATION_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 5373044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung reply.readException(); 5374044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung data.recycle(); 5375044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung reply.recycle(); 5376044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung } 5377044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung 5378044d52934e57a337665f707aa4be1d423ee3fb29Winson Chung @Override 53794b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima public boolean requestVisibleBehind(IBinder token, boolean visible) throws RemoteException { 5380ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner Parcel data = Parcel.obtain(); 5381ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner Parcel reply = Parcel.obtain(); 5382ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 5383ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.writeStrongBinder(token); 53844b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima data.writeInt(visible ? 1 : 0); 53854b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima mRemote.transact(REQUEST_VISIBLE_BEHIND_TRANSACTION, data, reply, 0); 5386ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.readException(); 5387ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner boolean success = reply.readInt() > 0; 5388ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.recycle(); 5389ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.recycle(); 5390ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner return success; 5391ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner } 5392ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner 5393ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner @Override 53944b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima public boolean isBackgroundVisibleBehind(IBinder token) throws RemoteException { 5395ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner Parcel data = Parcel.obtain(); 5396ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner Parcel reply = Parcel.obtain(); 5397ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 5398ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.writeStrongBinder(token); 53994b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima mRemote.transact(IS_BACKGROUND_VISIBLE_BEHIND_TRANSACTION, data, reply, 0); 5400ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.readException(); 54014b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima final boolean visible = reply.readInt() > 0; 5402ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.recycle(); 5403ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.recycle(); 54044b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima return visible; 5405ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner } 5406ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner 5407ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner @Override 54084b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima public void backgroundResourcesReleased(IBinder token) throws RemoteException { 5409ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner Parcel data = Parcel.obtain(); 5410ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner Parcel reply = Parcel.obtain(); 5411ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 5412ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.writeStrongBinder(token); 54134b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima mRemote.transact(BACKGROUND_RESOURCES_RELEASED_TRANSACTION, data, reply, 54144b6c6697da5a20c08b2f9f2ca40c94008477e914Jose Lima IBinder.FLAG_ONEWAY); 5415bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner reply.readException(); 5416bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner data.recycle(); 5417bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner reply.recycle(); 5418bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner } 5419bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner 5420bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner @Override 5421bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner public void notifyLaunchTaskBehindComplete(IBinder token) throws RemoteException { 5422bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner Parcel data = Parcel.obtain(); 5423bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner Parcel reply = Parcel.obtain(); 5424bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 5425bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner data.writeStrongBinder(token); 5426bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner mRemote.transact(NOTIFY_LAUNCH_TASK_BEHIND_COMPLETE_TRANSACTION, data, reply, 5427bb742462781a73bb25516067c8fe6311c1c8a93eCraig Mautner IBinder.FLAG_ONEWAY); 5428ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.readException(); 5429ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner data.recycle(); 5430ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner reply.recycle(); 5431ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner } 5432ee2e45acbff28986c2ced636b7550d0afbb0eeb7Craig Mautner 54338746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner @Override 54348746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner public void notifyEnterAnimationComplete(IBinder token) throws RemoteException { 54358746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner Parcel data = Parcel.obtain(); 54368746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner Parcel reply = Parcel.obtain(); 54378746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 54388746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner data.writeStrongBinder(token); 54398746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner mRemote.transact(NOTIFY_ENTER_ANIMATION_COMPLETE_TRANSACTION, data, reply, 54408746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner IBinder.FLAG_ONEWAY); 54418746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner reply.readException(); 54428746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner data.recycle(); 54438746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner reply.recycle(); 54448746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner } 54458746a478abcfb3b0d73b156232051af1e8d21ce2Craig Mautner 54466e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner @Override 54476e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner public void bootAnimationComplete() throws RemoteException { 54486e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner Parcel data = Parcel.obtain(); 54496e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner Parcel reply = Parcel.obtain(); 54506e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner data.writeInterfaceToken(IActivityManager.descriptor); 54516e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner mRemote.transact(BOOT_ANIMATION_COMPLETE_TRANSACTION, data, reply, 0); 54526e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner reply.readException(); 54536e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner data.recycle(); 54546e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner reply.recycle(); 54556e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner } 54566e2f395a86d557d2de4b52dda419a5f3eee00c84Craig Mautner 545718795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale @Override 545818795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale public void systemBackupRestored() throws RemoteException { 545918795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale Parcel data = Parcel.obtain(); 546018795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale Parcel reply = Parcel.obtain(); 546118795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale data.writeInterfaceToken(IActivityManager.descriptor); 546218795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale mRemote.transact(SYSTEM_BACKUP_RESTORED, data, reply, 0); 546318795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale reply.readException(); 546418795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale data.recycle(); 546518795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale reply.recycle(); 546618795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale } 546718795a2299fefd88ee16393f22324b999ace6ce4Wale Ogunwale 54689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private IBinder mRemote; 54699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 5470