ActivityManagerNative.java revision 5e03e2ca7d25b899b129baad2dd5eca6bf99d88a
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
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ComponentName;
20dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.content.IIntentReceiver;
21dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.content.IIntentSender;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.IntentFilter;
24fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackbornimport android.content.IntentSender;
25181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tateimport android.content.pm.ApplicationInfo;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ConfigurationInfo;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageDataObserver;
2852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasaniimport android.content.pm.UserInfo;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.Configuration;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.Bitmap;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri;
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Binder;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle;
343025ef332c29e255388f74b2afefe05f64bce07cDianne Hackbornimport android.os.Debug;
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel;
37dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.ParcelFileDescriptor;
38dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.Parcelable;
39dd8fab2629131b09367df747afd9a61e42dd1992Adam Powellimport android.os.RemoteException;
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ServiceManager;
41cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrickimport android.os.StrictMode;
42f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8Dianne Hackbornimport android.os.UserHandle;
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.text.TextUtils;
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log;
45663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrickimport android.util.Singleton;
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.ArrayList;
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.List;
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** {@hide} */
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic abstract class ActivityManagerNative extends Binder implements IActivityManager
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Cast a Binder object into an activity manager interface, generating
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a proxy if needed.
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
57663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    static public IActivityManager asInterface(IBinder obj) {
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (obj == null) {
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return null;
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        IActivityManager in =
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            (IActivityManager)obj.queryLocalInterface(descriptor);
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (in != null) {
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return in;
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
66663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return new ActivityManagerProxy(obj);
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
69663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieve the system's default/global activity manager.
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
73663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    static public IActivityManager getDefault() {
74663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick        return gDefault.get();
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Convenience for checking whether the system is ready.  For internal use only.
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static public boolean isSystemReady() {
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (!sSystemReady) {
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sSystemReady = getDefault().testIsSystemReady();
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return sSystemReady;
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static boolean sSystemReady = false;
87663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Convenience for sending a sticky broadcast.  For internal use only.
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If you don't care about permission, use null.
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
925ac72a29593ab9a20337a2225df52bdf4754be02Dianne Hackborn    static public void broadcastStickyIntent(Intent intent, String permission, int userId) {
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        try {
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getDefault().broadcastIntent(
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                null, intent, null, null, Activity.RESULT_OK, null, null,
965ac72a29593ab9a20337a2225df52bdf4754be02Dianne Hackborn                null /*permission*/, false, true, userId);
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } catch (RemoteException ex) {
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static public void noteWakeupAlarm(PendingIntent ps) {
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        try {
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getDefault().noteWakeupAlarm(ps.getTarget());
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } catch (RemoteException ex) {
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
108663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    public ActivityManagerNative() {
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        attachInterface(this, descriptor);
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean onTransact(int code, Parcel data, Parcel reply, int flags)
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        switch (code) {
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case START_ACTIVITY_TRANSACTION:
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder resultTo = data.readStrongBinder();
12392a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy            String resultWho = data.readString();
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int requestCode = data.readInt();
125a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int startFlags = data.readInt();
12662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            String profileFile = data.readString();
12762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            ParcelFileDescriptor profileFd = data.readInt() != 0
12862f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn                    ? data.readFileDescriptor() : null;
129a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
130a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int result = startActivity(app, intent, resolvedType,
132a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    resultTo, resultWho, requestCode, startFlags,
133a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    profileFile, profileFd, options);
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(result);
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
138bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn
1398264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        case START_ACTIVITY_AS_USER_TRANSACTION:
1408264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        {
1418264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            data.enforceInterface(IActivityManager.descriptor);
1428264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            IBinder b = data.readStrongBinder();
1438264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            IApplicationThread app = ApplicationThreadNative.asInterface(b);
1448264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            Intent intent = Intent.CREATOR.createFromParcel(data);
1458264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            String resolvedType = data.readString();
1468264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            IBinder resultTo = data.readStrongBinder();
1478264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            String resultWho = data.readString();
1488264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int requestCode = data.readInt();
1498264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int startFlags = data.readInt();
1508264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            String profileFile = data.readString();
1518264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            ParcelFileDescriptor profileFd = data.readInt() != 0
1528264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani                    ? data.readFileDescriptor() : null;
1538264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            Bundle options = data.readInt() != 0
1548264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani                    ? Bundle.CREATOR.createFromParcel(data) : null;
1558264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int userId = data.readInt();
1568264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int result = startActivityAsUser(app, intent, resolvedType,
1578264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani                    resultTo, resultWho, requestCode, startFlags,
1588264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani                    profileFile, profileFd, options, userId);
1598264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            reply.writeNoException();
1608264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            reply.writeInt(result);
1618264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            return true;
1628264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        }
1638264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani
1648f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        case START_ACTIVITY_AND_WAIT_TRANSACTION:
1658f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        {
1668f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1678f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            IBinder b = data.readStrongBinder();
1688f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            IApplicationThread app = ApplicationThreadNative.asInterface(b);
1698f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            Intent intent = Intent.CREATOR.createFromParcel(data);
1708f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            String resolvedType = data.readString();
1718f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            IBinder resultTo = data.readStrongBinder();
17292a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy            String resultWho = data.readString();
1738f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            int requestCode = data.readInt();
174a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int startFlags = data.readInt();
17562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            String profileFile = data.readString();
17662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            ParcelFileDescriptor profileFd = data.readInt() != 0
17762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn                    ? data.readFileDescriptor() : null;
178a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
179a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
1805e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int userId = data.readInt();
1818f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            WaitResult result = startActivityAndWait(app, intent, resolvedType,
182a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    resultTo, resultWho, requestCode, startFlags,
1835e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn                    profileFile, profileFd, options, userId);
1848f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            reply.writeNoException();
1858f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            result.writeToParcel(reply, 0);
1868f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn            return true;
1878f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        }
1888f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn
1892ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        case START_ACTIVITY_WITH_CONFIG_TRANSACTION:
1902ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        {
1912ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1922ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            IBinder b = data.readStrongBinder();
1932ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            IApplicationThread app = ApplicationThreadNative.asInterface(b);
1942ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            Intent intent = Intent.CREATOR.createFromParcel(data);
1952ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            String resolvedType = data.readString();
1962ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            IBinder resultTo = data.readStrongBinder();
1972ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            String resultWho = data.readString();
1982ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            int requestCode = data.readInt();
199a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int startFlags = data.readInt();
2002ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            Configuration config = Configuration.CREATOR.createFromParcel(data);
201a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
202a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
2034120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int userId = data.readInt();
2042ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            int result = startActivityWithConfig(app, intent, resolvedType,
2054120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                    resultTo, resultWho, requestCode, startFlags, config, options, userId);
2062ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            reply.writeNoException();
2072ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            reply.writeInt(result);
2082ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn            return true;
2092ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        }
2102ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn
211fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn        case START_ACTIVITY_INTENT_SENDER_TRANSACTION:
212bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        {
213bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
214bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            IBinder b = data.readStrongBinder();
215bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            IApplicationThread app = ApplicationThreadNative.asInterface(b);
216fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn            IntentSender intent = IntentSender.CREATOR.createFromParcel(data);
217bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            Intent fillInIntent = null;
218bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            if (data.readInt() != 0) {
219bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn                fillInIntent = Intent.CREATOR.createFromParcel(data);
220bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            }
221bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            String resolvedType = data.readString();
222bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            IBinder resultTo = data.readStrongBinder();
223bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            String resultWho = data.readString();
224bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            int requestCode = data.readInt();
225bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            int flagsMask = data.readInt();
226bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            int flagsValues = data.readInt();
227a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
228a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
229fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn            int result = startActivityIntentSender(app, intent,
230bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn                    fillInIntent, resolvedType, resultTo, resultWho,
231a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    requestCode, flagsMask, flagsValues, options);
232bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            reply.writeNoException();
233bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            reply.writeInt(result);
234bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            return true;
235bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        }
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case START_NEXT_MATCHING_ACTIVITY_TRANSACTION:
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder callingActivity = data.readStrongBinder();
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
242a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
243a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
244a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            boolean result = startNextMatchingActivity(callingActivity, intent, options);
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(result ? 1 : 0);
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
249ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case FINISH_ACTIVITY_TRANSACTION: {
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent resultData = null;
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode = data.readInt();
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (data.readInt() != 0) {
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                resultData = Intent.CREATOR.createFromParcel(data);
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean res = finishActivity(token, resultCode, resultData);
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case FINISH_SUB_ACTIVITY_TRANSACTION: {
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resultWho = data.readString();
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int requestCode = data.readInt();
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            finishSubActivity(token, resultWho, requestCode);
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
274ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        case FINISH_ACTIVITY_AFFINITY_TRANSACTION: {
275ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
276ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            IBinder token = data.readStrongBinder();
277ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            boolean res = finishActivityAffinity(token);
278ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            reply.writeNoException();
279ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            reply.writeInt(res ? 1 : 0);
280ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn            return true;
281ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        }
282ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn
283061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        case WILL_ACTIVITY_BE_VISIBLE_TRANSACTION: {
284061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
285061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            IBinder token = data.readStrongBinder();
286061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            boolean res = willActivityBeVisible(token);
287061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            reply.writeNoException();
288061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            reply.writeInt(res ? 1 : 0);
289061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn            return true;
290061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        }
291061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case REGISTER_RECEIVER_TRANSACTION:
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app =
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                b != null ? ApplicationThreadNative.asInterface(b) : null;
2986c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            String packageName = data.readString();
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            b = data.readStrongBinder();
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentReceiver rec
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                = b != null ? IIntentReceiver.Stub.asInterface(b) : null;
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IntentFilter filter = IntentFilter.CREATOR.createFromParcel(data);
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String perm = data.readString();
30420e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            int userId = data.readInt();
30520e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            Intent intent = registerReceiver(app, packageName, rec, filter, perm, userId);
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (intent != null) {
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(1);
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                intent.writeToParcel(reply, 0);
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } else {
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(0);
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UNREGISTER_RECEIVER_TRANSACTION:
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (b == null) {
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return true;
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentReceiver rec = IIntentReceiver.Stub.asInterface(b);
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            unregisterReceiver(rec);
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case BROADCAST_INTENT_TRANSACTION:
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app =
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                b != null ? ApplicationThreadNative.asInterface(b) : null;
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            b = data.readStrongBinder();
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentReceiver resultTo =
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                b != null ? IIntentReceiver.Stub.asInterface(b) : null;
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode = data.readInt();
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resultData = data.readString();
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle resultExtras = data.readBundle();
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String perm = data.readString();
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean serialized = data.readInt() != 0;
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean sticky = data.readInt() != 0;
346742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            int userId = data.readInt();
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int res = broadcastIntent(app, intent, resolvedType, resultTo,
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    resultCode, resultData, resultExtras, perm,
349742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani                    serialized, sticky, userId);
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UNBROADCAST_INTENT_TRANSACTION:
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = b != null ? ApplicationThreadNative.asInterface(b) : null;
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
361742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            int userId = data.readInt();
362742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            unbroadcastIntent(app, intent, userId);
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case FINISH_RECEIVER_TRANSACTION: {
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder who = data.readStrongBinder();
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode = data.readInt();
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resultData = data.readString();
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle resultExtras = data.readBundle();
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean resultAbort = data.readInt() != 0;
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (who != null) {
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                finishReceiver(who, resultCode, resultData, resultExtras, resultAbort);
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ATTACH_APPLICATION_TRANSACTION: {
3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    data.readStrongBinder());
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (app != null) {
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                attachApplication(app);
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ACTIVITY_IDLE_TRANSACTION: {
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
395e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            Configuration config = null;
396e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            if (data.readInt() != 0) {
397e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn                config = Configuration.CREATOR.createFromParcel(data);
398e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            }
39962f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            boolean stopProfiling = data.readInt() != 0;
4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (token != null) {
40162f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn                activityIdle(token, config, stopProfiling);
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ACTIVITY_PAUSED_TRANSACTION: {
4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
4100aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn            activityPaused(token);
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ACTIVITY_STOPPED_TRANSACTION: {
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
4180aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn            Bundle map = data.readBundle();
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bitmap thumbnail = data.readInt() != 0
4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ? Bitmap.CREATOR.createFromParcel(data) : null;
4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            CharSequence description = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data);
4220aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn            activityStopped(token, map, thumbnail, description);
4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4274eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        case ACTIVITY_SLEPT_TRANSACTION: {
4284eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
4294eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            IBinder token = data.readStrongBinder();
4304eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            activitySlept(token);
4314eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            reply.writeNoException();
4324eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            return true;
4334eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        }
4344eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ACTIVITY_DESTROYED_TRANSACTION: {
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            activityDestroyed(token);
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_CALLING_PACKAGE_TRANSACTION: {
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String res = token != null ? getCallingPackage(token) : null;
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeString(res);
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_CALLING_ACTIVITY_TRANSACTION: {
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName cn = getCallingActivity(token);
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName.writeToParcel(cn, reply);
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_TASKS_TRANSACTION: {
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int maxNum = data.readInt();
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder receiverBinder = data.readStrongBinder();
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IThumbnailReceiver receiver = receiverBinder != null
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ? IThumbnailReceiver.Stub.asInterface(receiverBinder)
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                : null;
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List list = getTasks(maxNum, fl, receiver);
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int N = list != null ? list.size() : -1;
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(N);
4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int i;
4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (i=0; i<N; i++) {
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ActivityManager.RunningTaskInfo info =
4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        (ActivityManager.RunningTaskInfo)list.get(i);
4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                info.writeToParcel(reply, 0);
4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_RECENT_TASKS_TRANSACTION: {
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int maxNum = data.readInt();
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
4868264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int userId = data.readInt();
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ActivityManager.RecentTaskInfo> list = getRecentTasks(maxNum,
4888264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani                    fl, userId);
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeTypedList(list);
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
494f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn        case GET_TASK_THUMBNAILS_TRANSACTION: {
495d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
496d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn            int id = data.readInt();
497f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn            ActivityManager.TaskThumbnails bm = getTaskThumbnails(id);
498d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn            reply.writeNoException();
499d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn            if (bm != null) {
500d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn                reply.writeInt(1);
501d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn                bm.writeToParcel(reply, 0);
502d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn            } else {
503d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn                reply.writeInt(0);
504d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn            }
505d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn            return true;
506d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        }
507d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn
5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_SERVICES_TRANSACTION: {
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int maxNum = data.readInt();
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List list = getServices(maxNum, fl);
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int N = list != null ? list.size() : -1;
5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(N);
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int i;
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (i=0; i<N; i++) {
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ActivityManager.RunningServiceInfo info =
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        (ActivityManager.RunningServiceInfo)list.get(i);
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                info.writeToParcel(reply, 0);
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_PROCESSES_IN_ERROR_STATE_TRANSACTION: {
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ActivityManager.ProcessErrorStateInfo> list = getProcessesInErrorState();
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeTypedList(list);
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_RUNNING_APP_PROCESSES_TRANSACTION: {
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ActivityManager.RunningAppProcessInfo> list = getRunningAppProcesses();
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeTypedList(list);
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
541f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        case GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION: {
542f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            data.enforceInterface(IActivityManager.descriptor);
543f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            List<ApplicationInfo> list = getRunningExternalApplications();
544f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            reply.writeNoException();
545f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            reply.writeTypedList(list);
546f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            return true;
547f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        }
548f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case MOVE_TASK_TO_FRONT_TRANSACTION: {
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int task = data.readInt();
552621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            int fl = data.readInt();
5538078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            Bundle options = data.readInt() != 0
5548078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
5558078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            moveTaskToFront(task, fl, options);
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case MOVE_TASK_TO_BACK_TRANSACTION: {
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int task = data.readInt();
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            moveTaskToBack(task);
5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION: {
5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean nonRoot = data.readInt() != 0;
5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean res = moveActivityTaskToBack(token, nonRoot);
5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case MOVE_TASK_BACKWARDS_TRANSACTION: {
5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int task = data.readInt();
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            moveTaskBackwards(task);
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_TASK_FOR_ACTIVITY_TRANSACTION: {
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean onlyRoot = data.readInt() != 0;
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int res = token != null
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ? getTaskForActivity(token, onlyRoot) : -1;
5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeNoException();
5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case REPORT_THUMBNAIL_TRANSACTION: {
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bitmap thumbnail = data.readInt() != 0
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ? Bitmap.CREATOR.createFromParcel(data) : null;
6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            CharSequence description = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data);
6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reportThumbnail(token, thumbnail, description);
6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_CONTENT_PROVIDER_TRANSACTION: {
6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String name = data.readString();
6136ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            boolean stable = data.readInt() != 0;
6146ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            ContentProviderHolder cph = getContentProvider(app, name, stable);
6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (cph != null) {
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(1);
6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                cph.writeToParcel(reply, 0);
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } else {
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(0);
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        case GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION: {
62625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            data.enforceInterface(IActivityManager.descriptor);
62725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            String name = data.readString();
62825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            IBinder token = data.readStrongBinder();
62925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            ContentProviderHolder cph = getContentProviderExternal(name, token);
63025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            reply.writeNoException();
63125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            if (cph != null) {
63225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov                reply.writeInt(1);
63325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov                cph.writeToParcel(reply, 0);
63425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            } else {
63525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov                reply.writeInt(0);
63625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            }
63725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            return true;
63825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        }
63925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case PUBLISH_CONTENT_PROVIDERS_TRANSACTION: {
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ArrayList<ContentProviderHolder> providers =
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                data.createTypedArrayList(ContentProviderHolder.CREATOR);
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            publishContentProviders(app, providers);
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6516ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        case REF_CONTENT_PROVIDER_TRANSACTION: {
6526ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
6536ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            IBinder b = data.readStrongBinder();
6546ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            int stable = data.readInt();
6556ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            int unstable = data.readInt();
6566ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            boolean res = refContentProvider(b, stable, unstable);
6576ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            reply.writeNoException();
6586ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            reply.writeInt(res ? 1 : 0);
6596ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            return true;
6606ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        }
6616ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn
6626ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        case UNSTABLE_PROVIDER_DIED_TRANSACTION: {
6636ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
6646ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            IBinder b = data.readStrongBinder();
6656ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            unstableProviderDied(b);
6666ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            reply.writeNoException();
6676ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            return true;
6686ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        }
6696ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case REMOVE_CONTENT_PROVIDER_TRANSACTION: {
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
6736ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            boolean stable = data.readInt() != 0;
6746ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            removeContentProvider(b, stable);
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
67825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov
67925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        case REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION: {
68025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            data.enforceInterface(IActivityManager.descriptor);
68125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            String name = data.readString();
68225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            IBinder token = data.readStrongBinder();
68325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            removeContentProviderExternal(name, token);
68425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            reply.writeNoException();
68525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            return true;
68625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        }
68725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov
688dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        case GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION: {
689dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
690dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            ComponentName comp = ComponentName.CREATOR.createFromParcel(data);
691dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            PendingIntent pi = getRunningServiceControlPanel(comp);
692dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            reply.writeNoException();
693dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            PendingIntent.writePendingIntentOrNullToParcel(pi, reply);
694dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            return true;
695dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        }
696dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case START_SERVICE_TRANSACTION: {
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent service = Intent.CREATOR.createFromParcel(data);
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
7037767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            int userId = data.readInt();
7047767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            ComponentName cn = startService(app, service, resolvedType, userId);
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName.writeToParcel(cn, reply);
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case STOP_SERVICE_TRANSACTION: {
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent service = Intent.CREATOR.createFromParcel(data);
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
7167767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            int userId = data.readInt();
7177767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            int res = stopService(app, service, resolvedType, userId);
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case STOP_SERVICE_TOKEN_TRANSACTION: {
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName className = ComponentName.readFromParcel(data);
7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int startId = data.readInt();
7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean res = stopServiceToken(className, token, startId);
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_SERVICE_FOREGROUND_TRANSACTION: {
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName className = ComponentName.readFromParcel(data);
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
738d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            int id = data.readInt();
739d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            Notification notification = null;
740d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            if (data.readInt() != 0) {
741d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn                notification = Notification.CREATOR.createFromParcel(data);
742d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            }
743d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            boolean removeNotification = data.readInt() != 0;
744d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            setServiceForeground(className, token, id, notification, removeNotification);
7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case BIND_SERVICE_TRANSACTION: {
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent service = Intent.CREATOR.createFromParcel(data);
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            b = data.readStrongBinder();
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
75837ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani            int userId = data.readInt();
7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IServiceConnection conn = IServiceConnection.Stub.asInterface(b);
76037ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani            int res = bindService(app, token, service, resolvedType, conn, fl, userId);
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UNBIND_SERVICE_TRANSACTION: {
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IServiceConnection conn = IServiceConnection.Stub.asInterface(b);
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean res = unbindService(conn);
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case PUBLISH_SERVICE_TRANSACTION: {
7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder service = data.readStrongBinder();
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            publishService(token, intent, service);
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UNBIND_FINISHED_TRANSACTION: {
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean doRebind = data.readInt() != 0;
7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            unbindFinished(token, intent, doRebind);
7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SERVICE_DONE_EXECUTING_TRANSACTION: {
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
799f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            int type = data.readInt();
800f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            int startId = data.readInt();
801f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            int res = data.readInt();
802f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            serviceDoneExecuting(token, type, startId, res);
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case START_INSTRUMENTATION_TRANSACTION: {
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName className = ComponentName.readFromParcel(data);
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String profileFile = data.readString();
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle arguments = data.readBundle();
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IInstrumentationWatcher w = IInstrumentationWatcher.Stub.asInterface(b);
8155e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int userId = data.readInt();
8165e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            boolean res = startInstrumentation(className, profileFile, fl, arguments, w, userId);
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case FINISH_INSTRUMENTATION_TRANSACTION: {
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode = data.readInt();
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle results = data.readBundle();
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            finishInstrumentation(app, resultCode, results);
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_CONFIGURATION_TRANSACTION: {
8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Configuration config = getConfiguration();
8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            config.writeToParcel(reply, 0);
8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UPDATE_CONFIGURATION_TRANSACTION: {
8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Configuration config = Configuration.CREATOR.createFromParcel(data);
8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            updateConfiguration(config);
8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_REQUESTED_ORIENTATION_TRANSACTION: {
8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int requestedOrientation = data.readInt();
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            setRequestedOrientation(token, requestedOrientation);
8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_REQUESTED_ORIENTATION_TRANSACTION: {
8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int req = getRequestedOrientation(token);
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(req);
8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION: {
8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName cn = getActivityClassForToken(token);
8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName.writeToParcel(cn, reply);
8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_PACKAGE_FOR_TOKEN_TRANSACTION: {
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeString(getPackageForToken(token));
8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_INTENT_SENDER_TRANSACTION: {
8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int type = data.readInt();
8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String packageName = data.readString();
8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resultWho = data.readString();
8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int requestCode = data.readInt();
892621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            Intent[] requestIntents;
893621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            String[] requestResolvedTypes;
894621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            if (data.readInt() != 0) {
895621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn                requestIntents = data.createTypedArray(Intent.CREATOR);
896621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn                requestResolvedTypes = data.createStringArray();
897621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            } else {
898621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn                requestIntents = null;
899621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn                requestResolvedTypes = null;
900621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            }
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int fl = data.readInt();
9027a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn            Bundle options = data.readInt() != 0
9037a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
9044120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int userId = data.readInt();
9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentSender res = getIntentSender(type, packageName, token,
906621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn                    resultWho, requestCode, requestIntents,
9074120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                    requestResolvedTypes, fl, options, userId);
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeStrongBinder(res != null ? res.asBinder() : null);
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case CANCEL_INTENT_SENDER_TRANSACTION: {
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentSender r = IIntentSender.Stub.asInterface(
9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                data.readStrongBinder());
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            cancelIntentSender(r);
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION: {
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentSender r = IIntentSender.Stub.asInterface(
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                data.readStrongBinder());
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String res = getPackageForIntentSender(r);
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeString(res);
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
932c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        case GET_UID_FOR_INTENT_SENDER_TRANSACTION: {
933c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            data.enforceInterface(IActivityManager.descriptor);
934c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            IIntentSender r = IIntentSender.Stub.asInterface(
935c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate                data.readStrongBinder());
936c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            int res = getUidForIntentSender(r);
937c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            reply.writeNoException();
938c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            reply.writeInt(res);
939c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate            return true;
940c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        }
941c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate
9424120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        case HANDLE_INCOMING_USER_TRANSACTION: {
9434120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
9444120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int callingPid = data.readInt();
9454120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int callingUid = data.readInt();
9464120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int userId = data.readInt();
9474120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            boolean allowAll = data.readInt() != 0 ;
9484120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            boolean requireFull = data.readInt() != 0;
9494120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            String name = data.readString();
9504120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            String callerPackage = data.readString();
9514120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            int res = handleIncomingUser(callingPid, callingUid, userId, allowAll,
9524120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                    requireFull, name, callerPackage);
9534120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            reply.writeNoException();
9544120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            reply.writeInt(res);
9554120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            return true;
9564120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        }
9574120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn
9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_PROCESS_LIMIT_TRANSACTION: {
9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int max = data.readInt();
9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            setProcessLimit(max);
9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_PROCESS_LIMIT_TRANSACTION: {
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int limit = getProcessLimit();
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(limit);
9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_PROCESS_FOREGROUND_TRANSACTION: {
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int pid = data.readInt();
9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean isForeground = data.readInt() != 0;
9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            setProcessForeground(token, pid, isForeground);
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case CHECK_PERMISSION_TRANSACTION: {
9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String perm = data.readString();
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int pid = data.readInt();
9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int uid = data.readInt();
9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int res = checkPermission(perm, pid, uid);
9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case CHECK_URI_PERMISSION_TRANSACTION: {
9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri uri = Uri.CREATOR.createFromParcel(data);
9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int pid = data.readInt();
9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int uid = data.readInt();
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int mode = data.readInt();
10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int res = checkUriPermission(uri, pid, uid, mode);
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res);
10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case CLEAR_APP_DATA_TRANSACTION: {
10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String packageName = data.readString();
10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IPackageDataObserver observer = IPackageDataObserver.Stub.asInterface(
10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    data.readStrongBinder());
1012742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            int userId = data.readInt();
1013742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            boolean res = clearApplicationUserData(packageName, observer, userId);
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GRANT_URI_PERMISSION_TRANSACTION: {
10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String targetPkg = data.readString();
10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri uri = Uri.CREATOR.createFromParcel(data);
10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int mode = data.readInt();
10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            grantUriPermission(app, targetPkg, uri, mode);
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case REVOKE_URI_PERMISSION_TRANSACTION: {
10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri uri = Uri.CREATOR.createFromParcel(data);
10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int mode = data.readInt();
10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            revokeUriPermission(app, uri, mode);
10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SHOW_WAITING_FOR_DEBUGGER_TRANSACTION: {
10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IApplicationThread app = ApplicationThreadNative.asInterface(b);
10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean waiting = data.readInt() != 0;
10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            showWaitingForDebugger(app, waiting);
10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_MEMORY_INFO_TRANSACTION: {
10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            getMemoryInfo(mi);
10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mi.writeToParcel(reply, 0);
10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UNHANDLED_BACK_TRANSACTION: {
10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            unhandledBack();
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case OPEN_CONTENT_URI_TRANSACTION: {
10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri uri = Uri.parse(data.readString());
10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ParcelFileDescriptor pfd = openContentUri(uri);
10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (pfd != null) {
10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(1);
10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                pfd.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } else {
10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                reply.writeInt(0);
10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1081ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn
10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GOING_TO_SLEEP_TRANSACTION: {
10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            goingToSleep();
10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case WAKING_UP_TRANSACTION: {
10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            wakingUp();
10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1096ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        case SET_LOCK_SCREEN_SHOWN_TRANSACTION: {
1097ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1098ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn            setLockScreenShown(data.readInt() != 0);
1099ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn            reply.writeNoException();
1100ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn            return true;
1101ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        }
1102ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_DEBUG_APP_TRANSACTION: {
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String pn = data.readString();
11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean wfd = data.readInt() != 0;
11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean per = data.readInt() != 0;
11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            setDebugApp(pn, wfd, per);
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SET_ALWAYS_FINISH_TRANSACTION: {
11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean enabled = data.readInt() != 0;
11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            setAlwaysFinish(enabled);
11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1121b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn        case SET_ACTIVITY_CONTROLLER_TRANSACTION: {
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
1123b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn            IActivityController watcher = IActivityController.Stub.asInterface(
11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    data.readStrongBinder());
1125b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn            setActivityController(watcher);
11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case ENTER_SAFE_MODE_TRANSACTION: {
11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            enterSafeMode();
11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case NOTE_WAKEUP_ALARM_TRANSACTION: {
11379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentSender is = IIntentSender.Stub.asInterface(
11399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    data.readStrongBinder());
11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            noteWakeupAlarm(is);
11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1145e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu        case KILL_PIDS_TRANSACTION: {
11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int[] pids = data.createIntArray();
1148e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu            String reason = data.readString();
1149648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn            boolean secure = data.readInt() != 0;
1150648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn            boolean res = killPids(pids, reason, secure);
11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeInt(res ? 1 : 0);
11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1156b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        case KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION: {
1157b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            data.enforceInterface(IActivityManager.descriptor);
1158b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            String reason = data.readString();
1159b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            boolean res = killProcessesBelowForeground(reason);
1160b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            reply.writeNoException();
1161b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            reply.writeInt(res ? 1 : 0);
1162b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey            return true;
1163b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        }
1164b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey
11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case START_RUNNING_TRANSACTION: {
11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String pkg = data.readString();
11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String cls = data.readString();
11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String action = data.readString();
11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String indata = data.readString();
11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            startRunning(pkg, cls, action, indata);
11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
117660d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        case HANDLE_APPLICATION_CRASH_TRANSACTION: {
117760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            data.enforceInterface(IActivityManager.descriptor);
117860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            IBinder app = data.readStrongBinder();
117960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data);
118060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            handleApplicationCrash(app, ci);
118160d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            reply.writeNoException();
118260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            return true;
118360d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        }
118460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor
118560d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        case HANDLE_APPLICATION_WTF_TRANSACTION: {
11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder app = data.readStrongBinder();
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String tag = data.readString();
1189b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor            ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data);
119060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            boolean res = handleApplicationWtf(app, tag, ci);
11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
119260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            reply.writeInt(res ? 1 : 0);
11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1195b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor
1196438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        case HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION: {
1197438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick            data.enforceInterface(IActivityManager.descriptor);
1198438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick            IBinder app = data.readStrongBinder();
119946d42387464a651268648659e91d022566d4844cBrad Fitzpatrick            int violationMask = data.readInt();
1200cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick            StrictMode.ViolationInfo info = new StrictMode.ViolationInfo(data);
1201cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick            handleApplicationStrictModeViolation(app, violationMask, info);
1202438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick            reply.writeNoException();
1203438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick            return true;
1204438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        }
1205438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick
12069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SIGNAL_PERSISTENT_PROCESSES_TRANSACTION: {
12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int sig = data.readInt();
12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            signalPersistentProcesses(sig);
12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
121403abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        case KILL_BACKGROUND_PROCESSES_TRANSACTION: {
121503abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String packageName = data.readString();
121703abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            killBackgroundProcesses(packageName);
121803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            reply.writeNoException();
121903abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            return true;
122003abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        }
1221e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn
1222e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        case KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION: {
1223e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1224e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn            killAllBackgroundProcesses();
1225e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn            reply.writeNoException();
1226e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn            return true;
1227e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        }
122803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn
122903abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        case FORCE_STOP_PACKAGE_TRANSACTION: {
123003abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
123103abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            String packageName = data.readString();
123203abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn            forceStopPackage(packageName);
12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
123627ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn
123727ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        case GET_MY_MEMORY_STATE_TRANSACTION: {
123827ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
123927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            ActivityManager.RunningAppProcessInfo info =
124027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn                    new ActivityManager.RunningAppProcessInfo();
124127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            getMyMemoryState(info);
124227ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            reply.writeNoException();
124327ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            info.writeToParcel(reply, 0);
124427ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            return true;
124527ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        }
124627ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn
12479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case GET_DEVICE_CONFIGURATION_TRANSACTION: {
12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ConfigurationInfo config = getDeviceConfigurationInfo();
12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            config.writeToParcel(reply, 0);
12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
12539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1255f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        case PROFILE_CONTROL_TRANSACTION: {
1256f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
1257f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            String process = data.readString();
1258f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            boolean start = data.readInt() != 0;
12599a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8Romain Guy            int profileType = data.readInt();
1260f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            String path = data.readString();
12619c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn            ParcelFileDescriptor fd = data.readInt() != 0
12629c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn                    ? data.readFileDescriptor() : null;
12637eabe55db6b113f83c2cefcd06812648927de877Romain Guy            boolean res = profileControl(process, start, path, fd, profileType);
1264f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            reply.writeNoException();
1265f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            reply.writeInt(res ? 1 : 0);
1266f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            return true;
1267f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        }
1268f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project
126955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        case SHUTDOWN_TRANSACTION: {
127055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
127155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn            boolean res = shutdown(data.readInt());
127255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn            reply.writeNoException();
127355280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn            reply.writeInt(res ? 1 : 0);
127455280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn            return true;
127555280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        }
127655280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn
127795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        case STOP_APP_SWITCHES_TRANSACTION: {
127895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
127995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            stopAppSwitches();
128095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            reply.writeNoException();
128195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            return true;
128295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        }
128395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn
128495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        case RESUME_APP_SWITCHES_TRANSACTION: {
128595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
128695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            resumeAppSwitches();
128795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            reply.writeNoException();
128895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn            return true;
128995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        }
129095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn
12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case PEEK_SERVICE_TRANSACTION: {
12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IActivityManager.descriptor);
12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent service = Intent.CREATOR.createFromParcel(data);
12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType = data.readString();
12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder binder = peekService(service, resolvedType);
12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeNoException();
12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.writeStrongBinder(binder);
12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1300181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
1301181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        case START_BACKUP_AGENT_TRANSACTION: {
1302181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            data.enforceInterface(IActivityManager.descriptor);
1303181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            ApplicationInfo info = ApplicationInfo.CREATOR.createFromParcel(data);
1304181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            int backupRestoreMode = data.readInt();
1305181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            boolean success = bindBackupAgent(info, backupRestoreMode);
1306181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            reply.writeNoException();
1307181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            reply.writeInt(success ? 1 : 0);
1308181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            return true;
1309181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        }
1310181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
1311181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        case BACKUP_AGENT_CREATED_TRANSACTION: {
1312181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            data.enforceInterface(IActivityManager.descriptor);
1313181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            String packageName = data.readString();
1314181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            IBinder agent = data.readStrongBinder();
1315181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            backupAgentCreated(packageName, agent);
1316181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            reply.writeNoException();
1317181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            return true;
1318181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        }
1319181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
1320181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        case UNBIND_BACKUP_AGENT_TRANSACTION: {
1321181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            data.enforceInterface(IActivityManager.descriptor);
1322181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            ApplicationInfo info = ApplicationInfo.CREATOR.createFromParcel(data);
1323181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            unbindBackupAgent(info);
1324181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            reply.writeNoException();
1325181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            return true;
1326181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        }
1327b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn
13285e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        case KILL_APPLICATION_WITH_APPID_TRANSACTION: {
1329261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu            data.enforceInterface(IActivityManager.descriptor);
1330261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu            String pkg = data.readString();
13315e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int appid = data.readInt();
13325e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            killApplicationWithAppId(pkg, appid);
1333261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu            reply.writeNoException();
1334261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu            return true;
1335261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        }
1336a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn
1337a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        case CLOSE_SYSTEM_DIALOGS_TRANSACTION: {
1338a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1339a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn            String reason = data.readString();
1340a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn            closeSystemDialogs(reason);
1341a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn            reply.writeNoException();
1342a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn            return true;
1343a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        }
13443025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn
13453025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        case GET_PROCESS_MEMORY_INFO_TRANSACTION: {
13463025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
13474f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn            int[] pids = data.createIntArray();
13484f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn            Debug.MemoryInfo[] res =  getProcessMemoryInfo(pids);
13493025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            reply.writeNoException();
13504f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn            reply.writeTypedArray(res, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
13513025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            return true;
13523025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        }
13535e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate
13545e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        case KILL_APPLICATION_PROCESS_TRANSACTION: {
13555e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            data.enforceInterface(IActivityManager.descriptor);
13565e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            String processName = data.readString();
13575e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            int uid = data.readInt();
13585e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            killApplicationProcess(processName, uid);
13595e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            reply.writeNoException();
13605e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            return true;
13615e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        }
13623b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn
13633b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        case OVERRIDE_PENDING_TRANSITION_TRANSACTION: {
13643b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
13653b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            IBinder token = data.readStrongBinder();
13663b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            String packageName = data.readString();
13673b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            int enterAnim = data.readInt();
13683b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            int exitAnim = data.readInt();
13693b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            overridePendingTransition(token, packageName, enterAnim, exitAnim);
13709327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn            reply.writeNoException();
13719327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn            return true;
13729327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        }
13739327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn
13749327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        case IS_USER_A_MONKEY_TRANSACTION: {
13759327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
13767e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            boolean areThey = isUserAMonkey();
13779327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn            reply.writeNoException();
13787e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeInt(areThey ? 1 : 0);
13793b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            return true;
13803b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        }
1381860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn
1382860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        case FINISH_HEAVY_WEIGHT_APP_TRANSACTION: {
1383860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1384860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn            finishHeavyWeightApp();
1385860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn            reply.writeNoException();
1386860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn            return true;
1387860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        }
138869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
138969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        case IS_IMMERSIVE_TRANSACTION: {
139069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            data.enforceInterface(IActivityManager.descriptor);
139169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            IBinder token = data.readStrongBinder();
13927e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            boolean isit = isImmersive(token);
139369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            reply.writeNoException();
13947e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeInt(isit ? 1 : 0);
139569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            return true;
139669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        }
139769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
139869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        case SET_IMMERSIVE_TRANSACTION: {
139969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            data.enforceInterface(IActivityManager.descriptor);
140069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            IBinder token = data.readStrongBinder();
140169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            boolean imm = data.readInt() == 1;
140269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            setImmersive(token, imm);
140369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            reply.writeNoException();
140469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            return true;
140569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        }
140669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
140769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        case IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION: {
140869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            data.enforceInterface(IActivityManager.descriptor);
14097e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            boolean isit = isTopActivityImmersive();
141069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            reply.writeNoException();
14117e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeInt(isit ? 1 : 0);
141269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            return true;
141369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        }
141469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
14159d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        case CRASH_APPLICATION_TRANSACTION: {
14169d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
14179d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            int uid = data.readInt();
14189d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            int initialPid = data.readInt();
14199d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            String packageName = data.readString();
14209d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            String message = data.readString();
14219d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            crashApplication(uid, initialPid, packageName, message);
14229d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            reply.writeNoException();
14239d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            return true;
14249d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        }
1425cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn
1426cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        case GET_PROVIDER_MIME_TYPE_TRANSACTION: {
1427cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1428cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn            Uri uri = Uri.CREATOR.createFromParcel(data);
14295e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int userId = data.readInt();
14305e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            String type = getProviderMimeType(uri, userId);
1431cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn            reply.writeNoException();
1432cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn            reply.writeString(type);
1433cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn            return true;
1434cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        }
1435cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn
14367e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        case NEW_URI_PERMISSION_OWNER_TRANSACTION: {
14377e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
14387e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            String name = data.readString();
14397e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            IBinder perm = newUriPermissionOwner(name);
14407e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeNoException();
14417e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeStrongBinder(perm);
14427e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            return true;
14437e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        }
14447e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn
14457e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        case GRANT_URI_PERMISSION_FROM_OWNER_TRANSACTION: {
14467e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
14477e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            IBinder owner = data.readStrongBinder();
14487e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            int fromUid = data.readInt();
14497e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            String targetPkg = data.readString();
14507e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            Uri uri = Uri.CREATOR.createFromParcel(data);
14517e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            int mode = data.readInt();
14527e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            grantUriPermissionFromOwner(owner, fromUid, targetPkg, uri, mode);
14537e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeNoException();
14547e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            return true;
14557e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        }
14567e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn
14577e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        case REVOKE_URI_PERMISSION_FROM_OWNER_TRANSACTION: {
14587e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
14597e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            IBinder owner = data.readStrongBinder();
14607e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            Uri uri = null;
14617e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            if (data.readInt() != 0) {
14627e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn                Uri.CREATOR.createFromParcel(data);
14637e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            }
14647e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            int mode = data.readInt();
14657e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            revokeUriPermissionFromOwner(owner, uri, mode);
14667e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            reply.writeNoException();
14677e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            return true;
14687e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        }
14699d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn
147090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        case CHECK_GRANT_URI_PERMISSION_TRANSACTION: {
147190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
147290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            int callingUid = data.readInt();
147390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            String targetPkg = data.readString();
147490f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            Uri uri = Uri.CREATOR.createFromParcel(data);
147590f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            int modeFlags = data.readInt();
147690f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            int res = checkGrantUriPermission(callingUid, targetPkg, uri, modeFlags);
147790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            reply.writeNoException();
147890f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            reply.writeInt(res);
147990f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            return true;
148090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        }
148190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn
1482824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        case DUMP_HEAP_TRANSACTION: {
1483824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            data.enforceInterface(IActivityManager.descriptor);
1484824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            String process = data.readString();
1485824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            boolean managed = data.readInt() != 0;
1486824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            String path = data.readString();
1487824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            ParcelFileDescriptor fd = data.readInt() != 0
1488824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden                    ? data.readFileDescriptor() : null;
1489824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            boolean res = dumpHeap(process, managed, path, fd);
1490824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            reply.writeNoException();
1491824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            reply.writeInt(res ? 1 : 0);
1492824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            return true;
1493824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        }
1494824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden
1495621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        case START_ACTIVITIES_TRANSACTION:
1496621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        {
1497621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1498621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            IBinder b = data.readStrongBinder();
1499621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            IApplicationThread app = ApplicationThreadNative.asInterface(b);
1500621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            Intent[] intents = data.createTypedArray(Intent.CREATOR);
1501621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            String[] resolvedTypes = data.createStringArray();
1502621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            IBinder resultTo = data.readStrongBinder();
1503a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options = data.readInt() != 0
1504a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    ? Bundle.CREATOR.createFromParcel(data) : null;
1505a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int result = startActivities(app, intents, resolvedTypes, resultTo,
1506a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn                    options);
1507621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            reply.writeNoException();
1508621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            reply.writeInt(result);
1509621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            return true;
1510621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        }
1511621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn
15120f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        case GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION:
15130f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        {
15140f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
15150f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            int mode = getFrontActivityScreenCompatMode();
15160f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeNoException();
15170f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeInt(mode);
15180f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            return true;
15190f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        }
15200f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
15210f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        case SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION:
15220f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        {
15230f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
15240f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            int mode = data.readInt();
15250f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            setFrontActivityScreenCompatMode(mode);
15260f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeNoException();
15270f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeInt(mode);
15280f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            return true;
15290f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        }
15300f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
15310f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        case GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION:
15320f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        {
15330f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
15340f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            String pkg = data.readString();
15350f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            int mode = getPackageScreenCompatMode(pkg);
15360f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeNoException();
15370f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            reply.writeInt(mode);
15380f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            return true;
15390f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        }
15400f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
1541e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        case SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION:
1542e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        {
1543e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1544e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            String pkg = data.readString();
15450f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            int mode = data.readInt();
15460f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn            setPackageScreenCompatMode(pkg, mode);
1547e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            reply.writeNoException();
1548e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            return true;
1549e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        }
1550aa9d84c37e05f696ec158dac98ce38cf41e18314Dianne Hackborn
15514b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        case SWITCH_USER_TRANSACTION: {
15524b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            data.enforceInterface(IActivityManager.descriptor);
15534b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            int userid = data.readInt();
15544b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            boolean result = switchUser(userid);
15554b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            reply.writeNoException();
15564b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            reply.writeInt(result ? 1 : 0);
15574b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani            return true;
15584b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        }
155952f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani
156080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        case STOP_USER_TRANSACTION: {
156180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
156280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            int userid = data.readInt();
156380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            IStopUserCallback callback = IStopUserCallback.Stub.asInterface(
156480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn                    data.readStrongBinder());
156580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            int result = stopUser(userid, callback);
156680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            reply.writeNoException();
156780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            reply.writeInt(result);
156880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn            return true;
156980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        }
157080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn
157152f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        case GET_CURRENT_USER_TRANSACTION: {
157252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani            data.enforceInterface(IActivityManager.descriptor);
157352f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani            UserInfo userInfo = getCurrentUser();
157452f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani            reply.writeNoException();
157552f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani            userInfo.writeToParcel(reply, 0);
157652f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani            return true;
157752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        }
157852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani
15795e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        case IS_USER_RUNNING_TRANSACTION: {
15805e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
15815e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int userid = data.readInt();
15825e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            boolean result = isUserRunning(userid);
15835e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            reply.writeNoException();
15845e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            reply.writeInt(result ? 1 : 0);
15855e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            return true;
15865e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        }
15875e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn
15880c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        case REMOVE_SUB_TASK_TRANSACTION:
15890c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        {
15900c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
15910c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            int taskId = data.readInt();
15920c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            int subTaskIndex = data.readInt();
15930c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            boolean result = removeSubTask(taskId, subTaskIndex);
15940c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            reply.writeNoException();
15950c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            reply.writeInt(result ? 1 : 0);
15960c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            return true;
15970c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        }
15980c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn
15990c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        case REMOVE_TASK_TRANSACTION:
16000c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        {
16010c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
16020c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            int taskId = data.readInt();
16030c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            int fl = data.readInt();
16040c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            boolean result = removeTask(taskId, fl);
16050c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            reply.writeNoException();
16060c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            reply.writeInt(result ? 1 : 0);
16070c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            return true;
16080c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        }
16094b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani
1610a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        case REGISTER_PROCESS_OBSERVER_TRANSACTION: {
1611a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            data.enforceInterface(IActivityManager.descriptor);
1612a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            IProcessObserver observer = IProcessObserver.Stub.asInterface(
1613a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey                    data.readStrongBinder());
1614a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            registerProcessObserver(observer);
1615a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            return true;
1616a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        }
1617a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey
1618a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        case UNREGISTER_PROCESS_OBSERVER_TRANSACTION: {
1619a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            data.enforceInterface(IActivityManager.descriptor);
1620a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            IProcessObserver observer = IProcessObserver.Stub.asInterface(
1621a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey                    data.readStrongBinder());
1622a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            unregisterProcessObserver(observer);
1623a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey            return true;
1624a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        }
1625a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey
162636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        case GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION:
162736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        {
162836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
162936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            String pkg = data.readString();
163036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            boolean ask = getPackageAskScreenCompat(pkg);
163136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            reply.writeNoException();
163236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            reply.writeInt(ask ? 1 : 0);
163336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            return true;
163436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        }
163536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn
163636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        case SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION:
163736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        {
163836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
163936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            String pkg = data.readString();
164036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            boolean ask = data.readInt() != 0;
164136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            setPackageAskScreenCompat(pkg, ask);
164236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            reply.writeNoException();
164336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            return true;
164436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        }
164536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn
16466c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        case IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION: {
16476c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
16486c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            IIntentSender r = IIntentSender.Stub.asInterface(
16496c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn                data.readStrongBinder());
16506c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            boolean res = isIntentSenderTargetedToPackage(r);
16516c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            reply.writeNoException();
16526c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            reply.writeInt(res ? 1 : 0);
16536c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn            return true;
16546c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        }
16556c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn
16561927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        case IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION: {
16571927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
16581927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            IIntentSender r = IIntentSender.Stub.asInterface(
16591927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn                data.readStrongBinder());
16601927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            boolean res = isIntentSenderAnActivity(r);
16611927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            reply.writeNoException();
16621927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            reply.writeInt(res ? 1 : 0);
16631927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn            return true;
16641927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        }
16651927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn
166631ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        case UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION: {
166731ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
166831ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn            Configuration config = Configuration.CREATOR.createFromParcel(data);
166931ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn            updatePersistentConfiguration(config);
167031ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn            reply.writeNoException();
167131ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn            return true;
167231ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        }
167331ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn
1674b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        case GET_PROCESS_PSS_TRANSACTION: {
1675b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1676b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            int[] pids = data.createIntArray();
1677b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            long[] pss = getProcessPss(pids);
1678b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            reply.writeNoException();
1679b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            reply.writeLongArray(pss);
1680b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            return true;
1681b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        }
1682b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn
1683661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        case SHOW_BOOT_MESSAGE_TRANSACTION: {
1684661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
1685661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            CharSequence msg = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data);
1686661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            boolean always = data.readInt() != 0;
1687661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            showBootMessage(msg, always);
1688661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            reply.writeNoException();
1689661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn            return true;
1690661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        }
1691661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn
169290c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        case DISMISS_KEYGUARD_ON_NEXT_ACTIVITY_TRANSACTION: {
169390c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
169490c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn            dismissKeyguardOnNextActivity();
169590c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn            reply.writeNoException();
169690c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn            return true;
169790c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        }
169890c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn
1699dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        case TARGET_TASK_AFFINITY_MATCHES_ACTIVITY_TRANSACTION: {
1700dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            data.enforceInterface(IActivityManager.descriptor);
1701dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            IBinder token = data.readStrongBinder();
1702dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            String destAffinity = data.readString();
1703dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            boolean res = targetTaskAffinityMatchesActivity(token, destAffinity);
1704dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            reply.writeNoException();
1705dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            reply.writeInt(res ? 1 : 0);
1706dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            return true;
1707dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        }
1708dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell
1709dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        case NAVIGATE_UP_TO_TRANSACTION: {
1710dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            data.enforceInterface(IActivityManager.descriptor);
1711dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            IBinder token = data.readStrongBinder();
1712dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            Intent target = Intent.CREATOR.createFromParcel(data);
1713dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            int resultCode = data.readInt();
1714dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            Intent resultData = null;
1715dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            if (data.readInt() != 0) {
1716dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell                resultData = Intent.CREATOR.createFromParcel(data);
1717dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            }
1718dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            boolean res = navigateUpTo(token, target, resultCode, resultData);
1719dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            reply.writeNoException();
1720dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            reply.writeInt(res ? 1 : 0);
1721dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            return true;
1722dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        }
1723dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell
17245320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        case GET_LAUNCHED_FROM_UID_TRANSACTION: {
17255320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            data.enforceInterface(IActivityManager.descriptor);
17265320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            IBinder token = data.readStrongBinder();
17275320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            int res = getLaunchedFromUid(token);
17285320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            reply.writeNoException();
17295320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            reply.writeInt(res);
17305320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn            return true;
17315320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        }
17325320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn
17339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1734663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick
17359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return super.onTransact(code, data, reply, flags);
17369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1738663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    public IBinder asBinder() {
17399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return this;
17409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
17419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1742663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    private static final Singleton<IActivityManager> gDefault = new Singleton<IActivityManager>() {
1743663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick        protected IActivityManager create() {
1744663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick            IBinder b = ServiceManager.getService("activity");
174543a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato            if (false) {
1746663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick                Log.v("ActivityManager", "default service binder = " + b);
1747663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick            }
1748663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick            IActivityManager am = asInterface(b);
174943a17654cf4bfe7f1ec22bd8b7b32daccdf27c09Joe Onorato            if (false) {
1750663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick                Log.v("ActivityManager", "default service = " + am);
1751663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick            }
1752663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick            return am;
1753663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick        }
1754663f4f33e23551ef4047e39d0c3d645269e32c2aBrad Fitzpatrick    };
17559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
17569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass ActivityManagerProxy implements IActivityManager
17589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
17599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ActivityManagerProxy(IBinder remote)
17609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
17619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote = remote;
17629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
176392a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy
17649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public IBinder asBinder()
17659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
17669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mRemote;
17679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
176892a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy
17699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int startActivity(IApplicationThread caller, Intent intent,
1770a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            String resolvedType, IBinder resultTo, String resultWho, int requestCode,
1771a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int startFlags, String profileFile,
1772a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            ParcelFileDescriptor profileFd, Bundle options) throws RemoteException {
17739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
17749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
17759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
17769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
17779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
17789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
17799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(resultTo);
17809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultWho);
17819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(requestCode);
1782a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        data.writeInt(startFlags);
178362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        data.writeString(profileFile);
178462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        if (profileFd != null) {
178562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(1);
178662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            profileFd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
178762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        } else {
178862f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(0);
178962f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        }
1790a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
1791a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
1792a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
1793a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
1794a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
1795a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
17969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0);
17979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
17989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int result = reply.readInt();
17999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
18009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
18019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return result;
18029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
18038264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani
18048264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani    public int startActivityAsUser(IApplicationThread caller, Intent intent,
18058264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            String resolvedType, IBinder resultTo, String resultWho, int requestCode,
18068264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int startFlags, String profileFile,
18078264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            ParcelFileDescriptor profileFd, Bundle options, int userId) throws RemoteException {
18088264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        Parcel data = Parcel.obtain();
18098264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        Parcel reply = Parcel.obtain();
18108264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeInterfaceToken(IActivityManager.descriptor);
18118264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
18128264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        intent.writeToParcel(data, 0);
18138264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeString(resolvedType);
18148264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeStrongBinder(resultTo);
18158264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeString(resultWho);
18168264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeInt(requestCode);
18178264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeInt(startFlags);
18188264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeString(profileFile);
18198264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        if (profileFd != null) {
18208264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            data.writeInt(1);
18218264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            profileFd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
18228264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        } else {
18238264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            data.writeInt(0);
18248264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        }
18258264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        if (options != null) {
18268264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            data.writeInt(1);
18278264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            options.writeToParcel(data, 0);
18288264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        } else {
18298264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            data.writeInt(0);
18308264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        }
18318264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeInt(userId);
18328264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        mRemote.transact(START_ACTIVITY_AS_USER_TRANSACTION, data, reply, 0);
18338264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        reply.readException();
18348264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        int result = reply.readInt();
18358264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        reply.recycle();
18368264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.recycle();
18378264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        return result;
18388264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani    }
18398f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn    public WaitResult startActivityAndWait(IApplicationThread caller, Intent intent,
1840a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            String resolvedType, IBinder resultTo, String resultWho,
1841a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int requestCode, int startFlags, String profileFile,
18425e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            ParcelFileDescriptor profileFd, Bundle options, int userId) throws RemoteException {
18438f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        Parcel data = Parcel.obtain();
18448f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        Parcel reply = Parcel.obtain();
18458f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
18468f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
18478f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        intent.writeToParcel(data, 0);
18488f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeString(resolvedType);
18498f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeStrongBinder(resultTo);
18508f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeString(resultWho);
18518f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.writeInt(requestCode);
1852a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        data.writeInt(startFlags);
185362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        data.writeString(profileFile);
185462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        if (profileFd != null) {
185562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(1);
185662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            profileFd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
185762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        } else {
185862f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(0);
185962f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        }
1860a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
1861a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
1862a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
1863a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
1864a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
1865a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
18665e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInt(userId);
18678f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        mRemote.transact(START_ACTIVITY_AND_WAIT_TRANSACTION, data, reply, 0);
18688f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        reply.readException();
18698f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        WaitResult result = WaitResult.CREATOR.createFromParcel(reply);
18708f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        reply.recycle();
18718f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        data.recycle();
18728f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn        return result;
18738f7f35e0ccd91c964b9d3eeef81ff829622dfa74Dianne Hackborn    }
18742ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn    public int startActivityWithConfig(IApplicationThread caller, Intent intent,
1875a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            String resolvedType, IBinder resultTo, String resultWho,
1876a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int requestCode, int startFlags, Configuration config,
18774120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            Bundle options, int userId) throws RemoteException {
18782ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        Parcel data = Parcel.obtain();
18792ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        Parcel reply = Parcel.obtain();
18802ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
18812ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
18822ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        intent.writeToParcel(data, 0);
18832ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeString(resolvedType);
18842ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeStrongBinder(resultTo);
18852ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeString(resultWho);
18862ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.writeInt(requestCode);
1887a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        data.writeInt(startFlags);
18882ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        config.writeToParcel(data, 0);
1889a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
1890a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
1891a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
1892a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
1893a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
1894a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
18954120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(userId);
18962ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0);
18972ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        reply.readException();
18982ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        int result = reply.readInt();
18992ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        reply.recycle();
19002ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        data.recycle();
19012ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn        return result;
19022ccda4dc8d800c3592b4bd4d1d70a064d98dd4feDianne Hackborn    }
1903fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn    public int startActivityIntentSender(IApplicationThread caller,
1904fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn            IntentSender intent, Intent fillInIntent, String resolvedType,
1905bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            IBinder resultTo, String resultWho, int requestCode,
1906a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            int flagsMask, int flagsValues, Bundle options) throws RemoteException {
1907bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        Parcel data = Parcel.obtain();
1908bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        Parcel reply = Parcel.obtain();
1909bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
1910bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
1911bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        intent.writeToParcel(data, 0);
1912bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        if (fillInIntent != null) {
1913bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            data.writeInt(1);
1914bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            fillInIntent.writeToParcel(data, 0);
1915bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        } else {
1916bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn            data.writeInt(0);
1917bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        }
1918bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeString(resolvedType);
1919bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeStrongBinder(resultTo);
1920bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeString(resultWho);
1921bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeInt(requestCode);
1922bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeInt(flagsMask);
1923bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.writeInt(flagsValues);
1924a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
1925a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
1926a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
1927a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
1928a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
1929a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
1930fa82f22f1d8c4c828bdf9b670006be4f4fec772eDianne Hackborn        mRemote.transact(START_ACTIVITY_INTENT_SENDER_TRANSACTION, data, reply, 0);
1931bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        reply.readException();
1932bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        int result = reply.readInt();
1933bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        reply.recycle();
1934bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        data.recycle();
1935bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn        return result;
1936bcbcaa7edd32ba67c6290d79f7e7821c4b5b39acDianne Hackborn    }
19379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean startNextMatchingActivity(IBinder callingActivity,
1938a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Intent intent, Bundle options) throws RemoteException {
19399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
19409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
19419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
19429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(callingActivity);
19439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
1944a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
1945a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
1946a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
1947a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
1948a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
1949a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
19509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(START_NEXT_MATCHING_ACTIVITY_TRANSACTION, data, reply, 0);
19519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
19529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int result = reply.readInt();
19539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
19549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
19559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return result != 0;
19569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean finishActivity(IBinder token, int resultCode, Intent resultData)
19589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
19599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
19609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
19619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
19629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
19639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(resultCode);
19649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (resultData != null) {
19659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(1);
19669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            resultData.writeToParcel(data, 0);
19679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } else {
19689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(0);
19699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
19709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(FINISH_ACTIVITY_TRANSACTION, data, reply, 0);
19719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
19729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
19739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
19749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
19759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
19769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
19779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void finishSubActivity(IBinder token, String resultWho, int requestCode) throws RemoteException
19789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
19799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
19809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
19819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
19829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
19839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultWho);
19849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(requestCode);
19859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(FINISH_SUB_ACTIVITY_TRANSACTION, data, reply, 0);
19869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
19879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
19889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
19899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1990ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn    public boolean finishActivityAffinity(IBinder token) throws RemoteException {
1991ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        Parcel data = Parcel.obtain();
1992ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        Parcel reply = Parcel.obtain();
1993ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
1994ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        data.writeStrongBinder(token);
1995ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        mRemote.transact(FINISH_ACTIVITY_AFFINITY_TRANSACTION, data, reply, 0);
1996ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        reply.readException();
1997ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        boolean res = reply.readInt() != 0;
1998ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        data.recycle();
1999ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        reply.recycle();
2000ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn        return res;
2001ecc5a9cca000b62d2a649b795460fd791a206a89Dianne Hackborn    }
2002061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn    public boolean willActivityBeVisible(IBinder token) throws RemoteException {
2003061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        Parcel data = Parcel.obtain();
2004061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        Parcel reply = Parcel.obtain();
2005061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
2006061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        data.writeStrongBinder(token);
2007061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        mRemote.transact(WILL_ACTIVITY_BE_VISIBLE_TRANSACTION, data, reply, 0);
2008061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        reply.readException();
2009061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        boolean res = reply.readInt() != 0;
2010061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        data.recycle();
2011061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        reply.recycle();
2012061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn        return res;
2013061d58a10122b2ef56d4c2ed46090add16fb5b17Dianne Hackborn    }
20146c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn    public Intent registerReceiver(IApplicationThread caller, String packageName,
20159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentReceiver receiver,
201620e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            IntentFilter filter, String perm, int userId) throws RemoteException
20179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
20189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
20199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
20209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
20219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
20226c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        data.writeString(packageName);
20239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(receiver != null ? receiver.asBinder() : null);
20249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        filter.writeToParcel(data, 0);
20259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(perm);
202620e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn        data.writeInt(userId);
20279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(REGISTER_RECEIVER_TRANSACTION, data, reply, 0);
20289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
20299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Intent intent = null;
20309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int haveIntent = reply.readInt();
20319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (haveIntent != 0) {
20329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            intent = Intent.CREATOR.createFromParcel(reply);
20339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
20349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
20359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
20369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return intent;
20379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void unregisterReceiver(IIntentReceiver receiver) throws RemoteException
20399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
20409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
20419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
20429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
20439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(receiver.asBinder());
20449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UNREGISTER_RECEIVER_TRANSACTION, data, reply, 0);
20459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
20469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
20479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
20489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int broadcastIntent(IApplicationThread caller,
20509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent, String resolvedType,  IIntentReceiver resultTo,
20519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode, String resultData, Bundle map,
20529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String requiredPermission, boolean serialized,
2053742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            boolean sticky, int userId) throws RemoteException
20549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
20559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
20569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
20579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
20589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
20599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
20609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
20619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(resultTo != null ? resultTo.asBinder() : null);
20629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(resultCode);
20639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultData);
20649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(map);
20659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(requiredPermission);
20669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(serialized ? 1 : 0);
20679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(sticky ? 1 : 0);
2068742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani        data.writeInt(userId);
20699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(BROADCAST_INTENT_TRANSACTION, data, reply, 0);
20709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
20719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
20729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
20739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
20749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
20759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2076742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani    public void unbroadcastIntent(IApplicationThread caller, Intent intent, int userId)
2077742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            throws RemoteException
20789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
20799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
20809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
20819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
20829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
20839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
2084742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani        data.writeInt(userId);
20859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UNBROADCAST_INTENT_TRANSACTION, data, reply, 0);
20869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
20879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
20889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
20899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
20909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void finishReceiver(IBinder who, int resultCode, String resultData, Bundle map, boolean abortBroadcast) throws RemoteException
20919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
20929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
20939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
20949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
20959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(who);
20969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(resultCode);
20979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultData);
20989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(map);
20999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(abortBroadcast ? 1 : 0);
21009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(FINISH_RECEIVER_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
21019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
21029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
21039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
21049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void attachApplication(IApplicationThread app) throws RemoteException
21069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
21079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
21089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
21099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
21109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(app.asBinder());
21119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ATTACH_APPLICATION_TRANSACTION, data, reply, 0);
21129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
21139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
21149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
21159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
211662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn    public void activityIdle(IBinder token, Configuration config, boolean stopProfiling)
211762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            throws RemoteException
21189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
21199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
21209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
21219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
21229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
2123e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn        if (config != null) {
2124e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            data.writeInt(1);
2125e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            config.writeToParcel(data, 0);
2126e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn        } else {
2127e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn            data.writeInt(0);
2128e88846eeaf70f9f4299af9e3d54ba5dacede42b6Dianne Hackborn        }
212962f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        data.writeInt(stopProfiling ? 1 : 0);
21309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ACTIVITY_IDLE_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
21319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
21329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
21339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
21349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21350aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn    public void activityPaused(IBinder token) throws RemoteException
21369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
21379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
21389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
21399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
21409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
21419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ACTIVITY_PAUSED_TRANSACTION, data, reply, 0);
21429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
21439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
21449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
21459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21460aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn    public void activityStopped(IBinder token, Bundle state,
21470aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn            Bitmap thumbnail, CharSequence description) throws RemoteException
21489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
21499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
21509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
21519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
21529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
21530aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn        data.writeBundle(state);
21549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (thumbnail != null) {
21559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(1);
21569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            thumbnail.writeToParcel(data, 0);
21579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } else {
21589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(0);
21599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
21609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TextUtils.writeToParcel(description, data, 0);
21619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ACTIVITY_STOPPED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
21629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
21639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
21649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
21659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21664eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn    public void activitySlept(IBinder token) throws RemoteException
21674eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn    {
21684eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        Parcel data = Parcel.obtain();
21694eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        Parcel reply = Parcel.obtain();
21704eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
21714eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        data.writeStrongBinder(token);
21724eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        mRemote.transact(ACTIVITY_SLEPT_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
21734eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        reply.readException();
21744eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        data.recycle();
21754eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        reply.recycle();
21764eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn    }
21779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void activityDestroyed(IBinder token) throws RemoteException
21789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
21799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
21809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
21819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
21829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
21839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ACTIVITY_DESTROYED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
21849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
21859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
21869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
21879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
21889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getCallingPackage(IBinder token) throws RemoteException
21899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
21909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
21919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
21929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
21939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
21949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_CALLING_PACKAGE_TRANSACTION, data, reply, 0);
21959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
21969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String res = reply.readString();
21979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
21989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
21999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
22009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ComponentName getCallingActivity(IBinder token)
22029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
22039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
22049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
22059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
22069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
22079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_CALLING_ACTIVITY_TRANSACTION, data, reply, 0);
22089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
22099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName res = ComponentName.readFromParcel(reply);
22109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
22119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
22129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
22139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List getTasks(int maxNum, int flags,
22159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IThumbnailReceiver receiver) throws RemoteException {
22169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
22179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
22189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
22199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(maxNum);
22209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
22219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(receiver != null ? receiver.asBinder() : null);
22229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_TASKS_TRANSACTION, data, reply, 0);
22239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
22249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ArrayList list = null;
22259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int N = reply.readInt();
22269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (N >= 0) {
22279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            list = new ArrayList();
22289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            while (N > 0) {
22299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ActivityManager.RunningTaskInfo info =
22309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        ActivityManager.RunningTaskInfo.CREATOR
22319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .createFromParcel(reply);
22329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                list.add(info);
22339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                N--;
22349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
22359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
22369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
22379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
22389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return list;
22399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum,
22418264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani            int flags, int userId) throws RemoteException {
22429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
22439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
22449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
22459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(maxNum);
22469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
22478264408f5995534f8e3147b001664ea0df52aaa5Amith Yamasani        data.writeInt(userId);
22489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_RECENT_TASKS_TRANSACTION, data, reply, 0);
22499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
22509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ArrayList<ActivityManager.RecentTaskInfo> list
22519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            = reply.createTypedArrayList(ActivityManager.RecentTaskInfo.CREATOR);
22529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
22539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
22549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return list;
22559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2256f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn    public ActivityManager.TaskThumbnails getTaskThumbnails(int id) throws RemoteException {
2257d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        Parcel data = Parcel.obtain();
2258d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        Parcel reply = Parcel.obtain();
2259d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
2260d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        data.writeInt(id);
2261f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn        mRemote.transact(GET_TASK_THUMBNAILS_TRANSACTION, data, reply, 0);
2262d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        reply.readException();
2263f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn        ActivityManager.TaskThumbnails bm = null;
2264d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        if (reply.readInt() != 0) {
2265f26fd99a7c2f554b0297760bb66336473c7db61fDianne Hackborn            bm = ActivityManager.TaskThumbnails.CREATOR.createFromParcel(reply);
2266d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        }
2267d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        data.recycle();
2268d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        reply.recycle();
2269d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn        return bm;
2270d94df45b3d1ab4004ef517acfc56a9310330f8d8Dianne Hackborn    }
22719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List getServices(int maxNum, int flags) throws RemoteException {
22729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
22739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
22749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
22759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(maxNum);
22769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
22779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_SERVICES_TRANSACTION, data, reply, 0);
22789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
22799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ArrayList list = null;
22809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int N = reply.readInt();
22819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (N >= 0) {
22829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            list = new ArrayList();
22839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            while (N > 0) {
22849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ActivityManager.RunningServiceInfo info =
22859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        ActivityManager.RunningServiceInfo.CREATOR
22869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .createFromParcel(reply);
22879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                list.add(info);
22889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                N--;
22899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
22909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
22919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
22929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
22939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return list;
22949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
22959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState()
22969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
22979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
22989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
22999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
23009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_PROCESSES_IN_ERROR_STATE_TRANSACTION, data, reply, 0);
23019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
23029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ArrayList<ActivityManager.ProcessErrorStateInfo> list
23039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            = reply.createTypedArrayList(ActivityManager.ProcessErrorStateInfo.CREATOR);
23049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
23059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
23069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return list;
23079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses()
23099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
23109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
23119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
23129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
23139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_RUNNING_APP_PROCESSES_TRANSACTION, data, reply, 0);
23149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
23159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ArrayList<ActivityManager.RunningAppProcessInfo> list
23169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        = reply.createTypedArrayList(ActivityManager.RunningAppProcessInfo.CREATOR);
23179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
23189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
23199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return list;
23209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2321f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu    public List<ApplicationInfo> getRunningExternalApplications()
2322f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu            throws RemoteException {
2323f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        Parcel data = Parcel.obtain();
2324f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        Parcel reply = Parcel.obtain();
2325f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        data.writeInterfaceToken(IActivityManager.descriptor);
2326f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        mRemote.transact(GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION, data, reply, 0);
2327f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        reply.readException();
2328f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        ArrayList<ApplicationInfo> list
2329f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        = reply.createTypedArrayList(ApplicationInfo.CREATOR);
2330f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        data.recycle();
2331f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        reply.recycle();
2332f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu        return list;
2333f7f5dda5e54da53b98f1504672a422a484496531Suchi Amalapurapu    }
23348078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn    public void moveTaskToFront(int task, int flags, Bundle options) throws RemoteException
23359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
23369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
23379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
23389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
23399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(task);
2340621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeInt(flags);
23418078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn        if (options != null) {
23428078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            data.writeInt(1);
23438078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            options.writeToParcel(data, 0);
23448078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn        } else {
23458078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            data.writeInt(0);
23468078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn        }
23479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(MOVE_TASK_TO_FRONT_TRANSACTION, data, reply, 0);
23489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
23499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
23509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
23519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void moveTaskToBack(int task) throws RemoteException
23539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
23549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
23559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
23569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
23579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(task);
23589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(MOVE_TASK_TO_BACK_TRANSACTION, data, reply, 0);
23599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
23609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
23619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
23629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean moveActivityTaskToBack(IBinder token, boolean nonRoot)
23649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
23659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
23669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
23679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
23689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
23699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(nonRoot ? 1 : 0);
23709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION, data, reply, 0);
23719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
23729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
23739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
23749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
23759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
23769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void moveTaskBackwards(int task) throws RemoteException
23789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
23799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
23809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
23819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
23829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(task);
23839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(MOVE_TASK_BACKWARDS_TRANSACTION, data, reply, 0);
23849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
23859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
23869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
23879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
23889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int getTaskForActivity(IBinder token, boolean onlyRoot) throws RemoteException
23899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
23909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
23919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
23929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
23939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
23949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(onlyRoot ? 1 : 0);
23959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_TASK_FOR_ACTIVITY_TRANSACTION, data, reply, 0);
23969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
23979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
23989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
23999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
24009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
24019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void reportThumbnail(IBinder token,
24039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                Bitmap thumbnail, CharSequence description) throws RemoteException
24049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
24059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
24069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
24079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
24089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
24099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (thumbnail != null) {
24109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(1);
24119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            thumbnail.writeToParcel(data, 0);
24129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } else {
24139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(0);
24149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
24159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        TextUtils.writeToParcel(description, data, 0);
24169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(REPORT_THUMBNAIL_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
24179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
24189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
24199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
24209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ContentProviderHolder getContentProvider(IApplicationThread caller,
24226ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            String name, boolean stable) throws RemoteException {
24239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
24249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
24259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
24269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
24279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(name);
24286ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInt(stable ? 1 : 0);
24299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_CONTENT_PROVIDER_TRANSACTION, data, reply, 0);
24309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
24319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
24329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ContentProviderHolder cph = null;
24339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (res != 0) {
24349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            cph = ContentProviderHolder.CREATOR.createFromParcel(reply);
24359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
24369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
24379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
24389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return cph;
24399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
244025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov    public ContentProviderHolder getContentProviderExternal(String name, IBinder token)
244125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            throws RemoteException
244225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov    {
244325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        Parcel data = Parcel.obtain();
244425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        Parcel reply = Parcel.obtain();
244525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeInterfaceToken(IActivityManager.descriptor);
244625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeString(name);
244725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeStrongBinder(token);
244825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        mRemote.transact(GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION, data, reply, 0);
244925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        reply.readException();
245025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        int res = reply.readInt();
245125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        ContentProviderHolder cph = null;
245225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        if (res != 0) {
245325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov            cph = ContentProviderHolder.CREATOR.createFromParcel(reply);
245425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        }
245525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.recycle();
245625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        reply.recycle();
245725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        return cph;
245825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov    }
24599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void publishContentProviders(IApplicationThread caller,
24606ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            List<ContentProviderHolder> providers) throws RemoteException
24619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
24629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
24639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
24649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
24659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
24669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeTypedList(providers);
24679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(PUBLISH_CONTENT_PROVIDERS_TRANSACTION, data, reply, 0);
24689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
24699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
24709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
24719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
24726ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    public boolean refContentProvider(IBinder connection, int stable, int unstable)
24736ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            throws RemoteException {
24749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
24759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
24769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
24776ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeStrongBinder(connection);
24786ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInt(stable);
24796ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInt(unstable);
24806ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        mRemote.transact(REF_CONTENT_PROVIDER_TRANSACTION, data, reply, 0);
24816ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        reply.readException();
24826ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        boolean res = reply.readInt() != 0;
24836ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.recycle();
24846ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        reply.recycle();
24856ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        return res;
24866ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    }
24876ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    public void unstableProviderDied(IBinder connection) throws RemoteException {
24886ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        Parcel data = Parcel.obtain();
24896ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        Parcel reply = Parcel.obtain();
24906ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
24916ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeStrongBinder(connection);
24926ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        mRemote.transact(UNSTABLE_PROVIDER_DIED_TRANSACTION, data, reply, 0);
24936ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        reply.readException();
24946ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.recycle();
24956ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        reply.recycle();
24966ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    }
24976ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn
24986ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    public void removeContentProvider(IBinder connection, boolean stable) throws RemoteException {
24996ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        Parcel data = Parcel.obtain();
25006ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        Parcel reply = Parcel.obtain();
25016ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
25026ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeStrongBinder(connection);
25036ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInt(stable ? 1 : 0);
25049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(REMOVE_CONTENT_PROVIDER_TRANSACTION, data, reply, 0);
25059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
25069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
25079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
25089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
250925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov
251025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov    public void removeContentProviderExternal(String name, IBinder token) throws RemoteException {
251125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        Parcel data = Parcel.obtain();
251225872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        Parcel reply = Parcel.obtain();
251325872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeInterfaceToken(IActivityManager.descriptor);
251425872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeString(name);
251525872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.writeStrongBinder(token);
251625872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        mRemote.transact(REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION, data, reply, 0);
251725872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        reply.readException();
251825872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        data.recycle();
251925872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov        reply.recycle();
252025872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov    }
252125872aa3ef189ae5506a923398af11ce5eb1a9b9Svetoslav Ganov
2522dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn    public PendingIntent getRunningServiceControlPanel(ComponentName service)
2523dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn            throws RemoteException
2524dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn    {
2525dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        Parcel data = Parcel.obtain();
2526dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        Parcel reply = Parcel.obtain();
2527dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
2528dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        service.writeToParcel(data, 0);
2529dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        mRemote.transact(GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION, data, reply, 0);
2530dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        reply.readException();
2531dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        PendingIntent res = PendingIntent.readPendingIntentOrNullFromParcel(reply);
2532dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        data.recycle();
2533dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        reply.recycle();
2534dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn        return res;
2535dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn    }
2536dd9b82c283815747b75fe4434c65e4b6c9c9b54fDianne Hackborn
25379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ComponentName startService(IApplicationThread caller, Intent service,
25387767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            String resolvedType, int userId) throws RemoteException
25399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
25409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
25419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
25429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
25439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
25449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        service.writeToParcel(data, 0);
25459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
25467767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        data.writeInt(userId);
25479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(START_SERVICE_TRANSACTION, data, reply, 0);
25489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
25499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName res = ComponentName.readFromParcel(reply);
25509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
25519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
25529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
25539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int stopService(IApplicationThread caller, Intent service,
25557767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn            String resolvedType, int userId) throws RemoteException
25569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
25579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
25589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
25599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
25609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
25619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        service.writeToParcel(data, 0);
25629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
25637767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn        data.writeInt(userId);
25649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(STOP_SERVICE_TRANSACTION, data, reply, 0);
25659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
25669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
25679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
25689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
25699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
25709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean stopServiceToken(ComponentName className, IBinder token,
25729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int startId) throws RemoteException {
25739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
25749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
25759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
25769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName.writeToParcel(className, data);
25779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
25789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(startId);
25799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(STOP_SERVICE_TOKEN_TRANSACTION, data, reply, 0);
25809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
25819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
25829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
25839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
25849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
25859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
25869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setServiceForeground(ComponentName className, IBinder token,
2587d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            int id, Notification notification, boolean removeNotification) throws RemoteException {
25889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
25899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
25909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
25919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName.writeToParcel(className, data);
25929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
2593d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn        data.writeInt(id);
2594d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn        if (notification != null) {
2595d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            data.writeInt(1);
2596d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            notification.writeToParcel(data, 0);
2597d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn        } else {
2598d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn            data.writeInt(0);
2599d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn        }
2600d8a43f61680bacf0d4b52a03ff3c7a07307377fcDianne Hackborn        data.writeInt(removeNotification ? 1 : 0);
26019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_SERVICE_FOREGROUND_TRANSACTION, data, reply, 0);
26029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
26039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
26049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
26059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int bindService(IApplicationThread caller, IBinder token,
26079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent service, String resolvedType, IServiceConnection connection,
260837ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani            int flags, int userId) throws RemoteException {
26099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
26109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
26119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
26129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
26139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
26149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        service.writeToParcel(data, 0);
26159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
26169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(connection.asBinder());
26179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
261837ce3a8af6faab675319d0803b288ab1dddc76beAmith Yamasani        data.writeInt(userId);
26199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(BIND_SERVICE_TRANSACTION, data, reply, 0);
26209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
26219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
26229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
26239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
26249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
26259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean unbindService(IServiceConnection connection) throws RemoteException
26279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
26289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
26299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
26309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
26319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(connection.asBinder());
26329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UNBIND_SERVICE_TRANSACTION, data, reply, 0);
26339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
26349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
26359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
26369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
26379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
26389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void publishService(IBinder token,
26419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent, IBinder service) 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(token);
26469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
26479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(service);
26489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(PUBLISH_SERVICE_TRANSACTION, data, reply, 0);
26499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
26509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
26519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
26529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void unbindFinished(IBinder token, Intent intent, boolean doRebind)
26559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
26569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
26579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
26589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
26599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
26609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
26619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(doRebind ? 1 : 0);
26629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UNBIND_FINISHED_TRANSACTION, data, reply, 0);
26639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
26649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
26659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
26669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2668f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn    public void serviceDoneExecuting(IBinder token, int type, int startId,
2669f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            int res) throws RemoteException {
26709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
26719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
26729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
26739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
2674f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn        data.writeInt(type);
2675f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn        data.writeInt(startId);
2676f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn        data.writeInt(res);
26779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SERVICE_DONE_EXECUTING_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
26789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
26799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
26809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
26819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public IBinder peekService(Intent service, String resolvedType) throws RemoteException {
26849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
26859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
26869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
26879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        service.writeToParcel(data, 0);
26889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resolvedType);
26899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(PEEK_SERVICE_TRANSACTION, data, reply, 0);
26909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
26919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        IBinder binder = reply.readStrongBinder();
26929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
26939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
26949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return binder;
26959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
26969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2697181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    public boolean bindBackupAgent(ApplicationInfo app, int backupRestoreMode)
2698181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            throws RemoteException {
2699181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel data = Parcel.obtain();
2700181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel reply = Parcel.obtain();
2701181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
2702181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        app.writeToParcel(data, 0);
2703181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInt(backupRestoreMode);
2704181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        mRemote.transact(START_BACKUP_AGENT_TRANSACTION, data, reply, 0);
2705181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        reply.readException();
2706181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        boolean success = reply.readInt() != 0;
2707181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        reply.recycle();
2708181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.recycle();
2709181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        return success;
2710181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    }
2711181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
2712181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    public void backupAgentCreated(String packageName, IBinder agent) throws RemoteException {
2713181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel data = Parcel.obtain();
2714181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel reply = Parcel.obtain();
2715181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
2716181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeString(packageName);
2717181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeStrongBinder(agent);
2718181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        mRemote.transact(BACKUP_AGENT_CREATED_TRANSACTION, data, reply, 0);
2719181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        reply.recycle();
2720181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.recycle();
2721181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    }
2722181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
2723181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    public void unbindBackupAgent(ApplicationInfo app) throws RemoteException {
2724181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel data = Parcel.obtain();
2725181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel reply = Parcel.obtain();
2726181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
2727181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        app.writeToParcel(data, 0);
2728181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        mRemote.transact(UNBIND_BACKUP_AGENT_TRANSACTION, data, reply, 0);
2729181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        reply.readException();
2730181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        reply.recycle();
2731181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.recycle();
2732181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    }
2733181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
27349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean startInstrumentation(ComponentName className, String profileFile,
27355e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn            int flags, Bundle arguments, IInstrumentationWatcher watcher, int userId)
27369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
27379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
27389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
27399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
27409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName.writeToParcel(className, data);
27419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(profileFile);
27429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
27439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(arguments);
27449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(watcher != null ? watcher.asBinder() : null);
27455e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInt(userId);
27469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(START_INSTRUMENTATION_TRANSACTION, data, reply, 0);
27479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
27489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
27499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
27509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
27519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
27529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
27549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void finishInstrumentation(IApplicationThread target,
27559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode, Bundle results) throws RemoteException {
27569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
27579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
27589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
27599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(target != null ? target.asBinder() : null);
27609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(resultCode);
27619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(results);
27629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(FINISH_INSTRUMENTATION_TRANSACTION, data, reply, 0);
27639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
27649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
27659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
27669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public Configuration getConfiguration() throws RemoteException
27689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
27699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
27709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
27719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
27729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_CONFIGURATION_TRANSACTION, data, reply, 0);
27739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
27749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Configuration res = Configuration.CREATOR.createFromParcel(reply);
27759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
27769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
27779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
27789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void updateConfiguration(Configuration values) throws RemoteException
27809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
27819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
27829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
27839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
27849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        values.writeToParcel(data, 0);
27859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UPDATE_CONFIGURATION_TRANSACTION, data, reply, 0);
27869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
27879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
27889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
27899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
27909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setRequestedOrientation(IBinder token, int requestedOrientation)
27919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
27929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
27939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
27949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
27959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
27969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(requestedOrientation);
27979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_REQUESTED_ORIENTATION_TRANSACTION, data, reply, 0);
27989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
27999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int getRequestedOrientation(IBinder token) throws RemoteException {
28039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
28079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_REQUESTED_ORIENTATION_TRANSACTION, data, reply, 0);
28089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
28109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
28139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ComponentName getActivityClassForToken(IBinder token)
28159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
28169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
28209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION, data, reply, 0);
28219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ComponentName res = ComponentName.readFromParcel(reply);
28239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
28269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getPackageForToken(IBinder token) throws RemoteException
28289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
28299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
28339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_PACKAGE_FOR_TOKEN_TRANSACTION, data, reply, 0);
28349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String res = reply.readString();
28369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
28399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public IIntentSender getIntentSender(int type,
28419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String packageName, IBinder token, String resultWho,
28427a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn            int requestCode, Intent[] intents, String[] resolvedTypes, int flags,
28434120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            Bundle options, int userId) throws RemoteException {
28449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(type);
28489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(packageName);
28499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
28509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultWho);
28519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(requestCode);
2852621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        if (intents != null) {
28539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(1);
2854621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            data.writeTypedArray(intents, 0);
2855621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn            data.writeStringArray(resolvedTypes);
28569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } else {
28579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(0);
28589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
28599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(flags);
28607a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn        if (options != null) {
28617a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn            data.writeInt(1);
28627a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn            options.writeToParcel(data, 0);
28637a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn        } else {
28647a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn            data.writeInt(0);
28657a2195cdd33f27c79eda343defc1f7ccf59cc8acDianne Hackborn        }
28664120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(userId);
28679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_INTENT_SENDER_TRANSACTION, data, reply, 0);
28689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        IIntentSender res = IIntentSender.Stub.asInterface(
28709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            reply.readStrongBinder());
28719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
28749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void cancelIntentSender(IIntentSender sender) throws RemoteException {
28769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(sender.asBinder());
28809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(CANCEL_INTENT_SENDER_TRANSACTION, data, reply, 0);
28819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
28859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getPackageForIntentSender(IIntentSender sender) throws RemoteException {
28869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
28879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
28889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
28899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(sender.asBinder());
28909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0);
28919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
28929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String res = reply.readString();
28939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
28949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
28959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
28969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2897c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate    public int getUidForIntentSender(IIntentSender sender) throws RemoteException {
2898c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        Parcel data = Parcel.obtain();
2899c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        Parcel reply = Parcel.obtain();
2900c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
2901c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        data.writeStrongBinder(sender.asBinder());
2902c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        mRemote.transact(GET_UID_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0);
2903c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        reply.readException();
2904c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        int res = reply.readInt();
2905c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        data.recycle();
2906c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        reply.recycle();
2907c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate        return res;
2908c4a07d1caa9befd4fa8165ff05fa5e92480d8e27Christopher Tate    }
29094120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn    public int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll,
29104120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn            boolean requireFull, String name, String callerPackage) throws RemoteException {
29114120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        Parcel data = Parcel.obtain();
29124120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        Parcel reply = Parcel.obtain();
29134120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
29144120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(callingPid);
29154120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(callingUid);
29164120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(userId);
29174120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(allowAll ? 1 : 0);
29184120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeInt(requireFull ? 1 : 0);
29194120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeString(name);
29204120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.writeString(callerPackage);
29214120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        mRemote.transact(HANDLE_INCOMING_USER_TRANSACTION, data, reply, 0);
29224120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        reply.readException();
29234120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        int res = reply.readInt();
29244120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        data.recycle();
29254120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        reply.recycle();
29264120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn        return res;
29274120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn    }
29289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setProcessLimit(int max) throws RemoteException
29299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
29309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
29319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
29329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
29339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(max);
29349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_PROCESS_LIMIT_TRANSACTION, data, reply, 0);
29359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
29369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
29379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
29389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int getProcessLimit() throws RemoteException
29409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
29419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
29429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
29439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
29449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_PROCESS_LIMIT_TRANSACTION, data, reply, 0);
29459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
29469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
29479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
29489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
29499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
29509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setProcessForeground(IBinder token, int pid,
29529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean isForeground) throws RemoteException {
29539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
29549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
29559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
29569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
29579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(pid);
29589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(isForeground ? 1 : 0);
29599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_PROCESS_FOREGROUND_TRANSACTION, data, reply, 0);
29609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
29619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
29629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
29639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int checkPermission(String permission, int pid, int uid)
29659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
29669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
29679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
29689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
29699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(permission);
29709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(pid);
29719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(uid);
29729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(CHECK_PERMISSION_TRANSACTION, data, reply, 0);
29739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
29749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
29759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
29769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
29779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
29789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean clearApplicationUserData(final String packageName,
2980742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani            final IPackageDataObserver observer, final int userId) throws RemoteException {
29819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
29829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
29839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
29849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(packageName);
29859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(observer.asBinder());
2986742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani        data.writeInt(userId);
29879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(CLEAR_APP_DATA_TRANSACTION, data, reply, 0);
29889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
29899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
29909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
29919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
29929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
29939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
29949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int checkUriPermission(Uri uri, int pid, int uid, int mode)
29959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
29969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
29979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
29989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
29999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        uri.writeToParcel(data, 0);
30009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(pid);
30019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(uid);
30029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(mode);
30039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(CHECK_URI_PERMISSION_TRANSACTION, data, reply, 0);
30049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int res = reply.readInt();
30069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
30099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void grantUriPermission(IApplicationThread caller, String targetPkg,
30119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Uri uri, int mode) throws RemoteException {
30129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller.asBinder());
30169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(targetPkg);
30179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        uri.writeToParcel(data, 0);
30189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(mode);
30199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0);
30209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void revokeUriPermission(IApplicationThread caller, Uri uri,
30259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int mode) throws RemoteException {
30269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(caller.asBinder());
30309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        uri.writeToParcel(data, 0);
30319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(mode);
30329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(REVOKE_URI_PERMISSION_TRANSACTION, data, reply, 0);
30339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void showWaitingForDebugger(IApplicationThread who, boolean waiting)
30389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
30399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(who.asBinder());
30439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(waiting ? 1 : 0);
30449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SHOW_WAITING_FOR_DEBUGGER_TRANSACTION, data, reply, 0);
30459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void getMemoryInfo(ActivityManager.MemoryInfo outInfo) throws RemoteException {
30509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_MEMORY_INFO_TRANSACTION, data, reply, 0);
30549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        outInfo.readFromParcel(reply);
30569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void unhandledBack() throws RemoteException
30609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
30619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UNHANDLED_BACK_TRANSACTION, data, reply, 0);
30659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ParcelFileDescriptor openContentUri(Uri uri) throws RemoteException
30709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
30719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(OPEN_CONTENT_URI_TRANSACTION, data, reply, 0);
30759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ParcelFileDescriptor pfd = null;
30779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (reply.readInt() != 0) {
30789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            pfd = ParcelFileDescriptor.CREATOR.createFromParcel(reply);
30799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
30809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return pfd;
30839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void goingToSleep() throws RemoteException
30859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
30869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GOING_TO_SLEEP_TRANSACTION, data, reply, 0);
30909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
30919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
30929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
30939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
30949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void wakingUp() throws RemoteException
30959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
30969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
30979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
30989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
30999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(WAKING_UP_TRANSACTION, data, reply, 0);
31009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
31019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
31039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3104ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn    public void setLockScreenShown(boolean shown) throws RemoteException
3105ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn    {
3106ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        Parcel data = Parcel.obtain();
3107ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        Parcel reply = Parcel.obtain();
3108ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3109ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        data.writeInt(shown ? 1 : 0);
3110ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        mRemote.transact(SET_LOCK_SCREEN_SHOWN_TRANSACTION, data, reply, 0);
3111ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        reply.readException();
3112ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        data.recycle();
3113ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn        reply.recycle();
3114ff5b158f69bf453cf1fdedd175a09482c65f2bf2Dianne Hackborn    }
31159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setDebugApp(
31169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String packageName, boolean waitForDebugger, boolean persistent)
31179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        throws RemoteException
31189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
31199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
31209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
31219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
31229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(packageName);
31239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(waitForDebugger ? 1 : 0);
31249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(persistent ? 1 : 0);
31259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_DEBUG_APP_TRANSACTION, data, reply, 0);
31269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
31279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
31299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setAlwaysFinish(boolean enabled) throws RemoteException
31319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
31329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
31339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
31349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
31359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(enabled ? 1 : 0);
31369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SET_ALWAYS_FINISH_TRANSACTION, data, reply, 0);
31379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
31389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
31409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3141b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn    public void setActivityController(IActivityController watcher) 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.writeStrongBinder(watcher != null ? watcher.asBinder() : null);
3147b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn        mRemote.transact(SET_ACTIVITY_CONTROLLER_TRANSACTION, data, reply, 0);
31489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
31499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
31519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void enterSafeMode() throws RemoteException {
31539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
31549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
31559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(ENTER_SAFE_MODE_TRANSACTION, data, null, 0);
31569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void noteWakeupAlarm(IIntentSender sender) throws RemoteException {
31599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
31609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(sender.asBinder());
31619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
31629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(NOTE_WAKEUP_ALARM_TRANSACTION, data, null, 0);
31639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3165648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn    public boolean killPids(int[] pids, String reason, boolean secure) throws RemoteException {
31669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
31679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
31689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
31699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeIntArray(pids);
3170e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu        data.writeString(reason);
3171648251710162cdaf7371012a1cbb79b9bc5bc0e4Dianne Hackborn        data.writeInt(secure ? 1 : 0);
3172e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu        mRemote.transact(KILL_PIDS_TRANSACTION, data, reply, 0);
31739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean res = reply.readInt() != 0;
31749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
31759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
31769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
3177b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey    }
3178b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey    @Override
3179b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey    public boolean killProcessesBelowForeground(String reason) throws RemoteException {
3180b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        Parcel data = Parcel.obtain();
3181b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        Parcel reply = Parcel.obtain();
3182b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        data.writeInterfaceToken(IActivityManager.descriptor);
3183b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        data.writeString(reason);
3184b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        mRemote.transact(KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION, data, reply, 0);
3185b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        boolean res = reply.readInt() != 0;
3186b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        data.recycle();
3187b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        reply.recycle();
3188b9a070189c2280a6356a8abb9483b517a41e14c3Jeff Sharkey        return res;
31899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
31909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void startRunning(String pkg, String cls, String action,
31919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String indata) throws RemoteException {
31929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
31939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
31949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
31959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(pkg);
31969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(cls);
31979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(action);
31989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(indata);
31999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(START_RUNNING_TRANSACTION, data, reply, 0);
32009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
32019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
32029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
32039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean testIsSystemReady()
32059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
32069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /* this base class version is never called */
32079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return true;
32089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
320960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor    public void handleApplicationCrash(IBinder app,
321060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException
321160d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor    {
321260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        Parcel data = Parcel.obtain();
321360d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        Parcel reply = Parcel.obtain();
321460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        data.writeInterfaceToken(IActivityManager.descriptor);
321560d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        data.writeStrongBinder(app);
321660d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        crashInfo.writeToParcel(data, 0);
321760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        mRemote.transact(HANDLE_APPLICATION_CRASH_TRANSACTION, data, reply, 0);
321860d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        reply.readException();
321960d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        reply.recycle();
322060d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        data.recycle();
322160d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor    }
3222438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick
322360d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor    public boolean handleApplicationWtf(IBinder app, String tag,
3224b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor            ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException
32259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
32269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
32279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
32289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
32299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(app);
32309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(tag);
3231b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor        crashInfo.writeToParcel(data, 0);
323260d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        mRemote.transact(HANDLE_APPLICATION_WTF_TRANSACTION, data, reply, 0);
32339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
323460d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        boolean res = reply.readInt() != 0;
32359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
32369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
323760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor        return res;
32389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3239b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor
3240438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick    public void handleApplicationStrictModeViolation(IBinder app,
324146d42387464a651268648659e91d022566d4844cBrad Fitzpatrick            int violationMask,
3242cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick            StrictMode.ViolationInfo info) throws RemoteException
3243438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick    {
3244438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        Parcel data = Parcel.obtain();
3245438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        Parcel reply = Parcel.obtain();
3246438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        data.writeInterfaceToken(IActivityManager.descriptor);
3247438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        data.writeStrongBinder(app);
324846d42387464a651268648659e91d022566d4844cBrad Fitzpatrick        data.writeInt(violationMask);
3249cb9ceb1029036363a81952d8ed5dfcbc83e6ff72Brad Fitzpatrick        info.writeToParcel(data, 0);
3250438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        mRemote.transact(HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION, data, reply, 0);
3251438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        reply.readException();
3252438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        reply.recycle();
3253438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick        data.recycle();
3254438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick    }
3255438d0595121a7a2cdf19741e76e3c0e21a5c173dBrad Fitzpatrick
32569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void signalPersistentProcesses(int sig) throws RemoteException {
32579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
32589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
32599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
32609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(sig);
32619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SIGNAL_PERSISTENT_PROCESSES_TRANSACTION, data, reply, 0);
32629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
32639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
32649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
32659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3266e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn
326703abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn    public void killBackgroundProcesses(String packageName) throws RemoteException {
326803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        Parcel data = Parcel.obtain();
326903abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        Parcel reply = Parcel.obtain();
327003abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
327103abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        data.writeString(packageName);
327203abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        mRemote.transact(KILL_BACKGROUND_PROCESSES_TRANSACTION, data, reply, 0);
327303abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        reply.readException();
327403abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        data.recycle();
327503abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        reply.recycle();
327603abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn    }
3277e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn
3278e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn    public void killAllBackgroundProcesses() throws RemoteException {
3279e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        Parcel data = Parcel.obtain();
3280e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        Parcel reply = Parcel.obtain();
3281e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3282e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        mRemote.transact(KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION, data, reply, 0);
3283e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        reply.readException();
3284e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        data.recycle();
3285e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn        reply.recycle();
3286e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn    }
3287e4d4fbc8c0257a79d9c6091cea2c264415bd2733Dianne Hackborn
328803abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn    public void forceStopPackage(String packageName) throws RemoteException {
32899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
32909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
32919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
32929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(packageName);
329303abb8179f0d912e6dabfc0e2b0f129d85066d17Dianne Hackborn        mRemote.transact(FORCE_STOP_PACKAGE_TRANSACTION, data, reply, 0);
32949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
32959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
32969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
32979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
32989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
329927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn    public void getMyMemoryState(ActivityManager.RunningAppProcessInfo outInfo)
330027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn            throws RemoteException
330127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn    {
330227ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        Parcel data = Parcel.obtain();
330327ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        Parcel reply = Parcel.obtain();
330427ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
330527ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        mRemote.transact(GET_MY_MEMORY_STATE_TRANSACTION, data, reply, 0);
330627ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        reply.readException();
330727ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        outInfo.readFromParcel(reply);
330827ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        reply.recycle();
330927ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn        data.recycle();
331027ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn    }
331127ff913d56de8400083a13fc572e2812b32c890cDianne Hackborn
33129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ConfigurationInfo getDeviceConfigurationInfo() throws RemoteException
33139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
33149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
33159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel reply = Parcel.obtain();
33169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
33179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(GET_DEVICE_CONFIGURATION_TRANSACTION, data, reply, 0);
33189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.readException();
33199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        ConfigurationInfo res = ConfigurationInfo.CREATOR.createFromParcel(reply);
33209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        reply.recycle();
33219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
33229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return res;
33239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3324f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project
3325f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project    public boolean profileControl(String process, boolean start,
33267eabe55db6b113f83c2cefcd06812648927de877Romain Guy            String path, ParcelFileDescriptor fd, int profileType) throws RemoteException
3327f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project    {
3328f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        Parcel data = Parcel.obtain();
3329f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        Parcel reply = Parcel.obtain();
3330f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.writeInterfaceToken(IActivityManager.descriptor);
3331f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.writeString(process);
3332f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.writeInt(start ? 1 : 0);
33339a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8Romain Guy        data.writeInt(profileType);
3334f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.writeString(path);
33359c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn        if (fd != null) {
33369c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn            data.writeInt(1);
33379c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn            fd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
33389c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn        } else {
33399c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn            data.writeInt(0);
33409c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn        }
3341f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        mRemote.transact(PROFILE_CONTROL_TRANSACTION, data, reply, 0);
3342f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        reply.readException();
3343f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        boolean res = reply.readInt() != 0;
3344f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        reply.recycle();
3345f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.recycle();
3346f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        return res;
3347f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project    }
3348f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project
334955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn    public boolean shutdown(int timeout) throws RemoteException
335055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn    {
335155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        Parcel data = Parcel.obtain();
335255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        Parcel reply = Parcel.obtain();
335355280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
335455280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        data.writeInt(timeout);
335555280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        mRemote.transact(SHUTDOWN_TRANSACTION, data, reply, 0);
335655280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        reply.readException();
335755280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        boolean res = reply.readInt() != 0;
335855280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        reply.recycle();
335955280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        data.recycle();
336055280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn        return res;
336155280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn    }
336255280a91884b9256e8db6af6a09f28b3feeaa9d8Dianne Hackborn
336395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn    public void stopAppSwitches() throws RemoteException {
336495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        Parcel data = Parcel.obtain();
336595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        Parcel reply = Parcel.obtain();
336695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
336795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        mRemote.transact(STOP_APP_SWITCHES_TRANSACTION, data, reply, 0);
336895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        reply.readException();
336995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        reply.recycle();
337095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        data.recycle();
337195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn    }
337295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn
337395fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn    public void resumeAppSwitches() throws RemoteException {
337495fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        Parcel data = Parcel.obtain();
337595fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        Parcel reply = Parcel.obtain();
337695fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
337795fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        mRemote.transact(RESUME_APP_SWITCHES_TRANSACTION, data, reply, 0);
337895fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        reply.readException();
337995fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        reply.recycle();
338095fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn        data.recycle();
338195fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn    }
338295fc68f24a2a93e5664e2234abcfe479d385cc05Dianne Hackborn
33835e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn    public void killApplicationWithAppId(String pkg, int appid) throws RemoteException {
3384261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        Parcel data = Parcel.obtain();
3385261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        Parcel reply = Parcel.obtain();
3386261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        data.writeInterfaceToken(IActivityManager.descriptor);
3387261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        data.writeString(pkg);
33885e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInt(appid);
33895e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        mRemote.transact(KILL_APPLICATION_WITH_APPID_TRANSACTION, data, reply, 0);
3390261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        reply.readException();
3391261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        data.recycle();
3392261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu        reply.recycle();
3393261e66acd1963d9c404fd2d3ddc6ef99ccd745cfSuchi Amalapurapu    }
3394a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn
3395a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn    public void closeSystemDialogs(String reason) throws RemoteException {
3396a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        Parcel data = Parcel.obtain();
3397a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        Parcel reply = Parcel.obtain();
3398a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3399a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        data.writeString(reason);
3400a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        mRemote.transact(CLOSE_SYSTEM_DIALOGS_TRANSACTION, data, reply, 0);
3401a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        reply.readException();
3402a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        data.recycle();
3403a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn        reply.recycle();
3404a6ddc8af22af6bce879c5bf906aad16c0b3d6b01Dianne Hackborn    }
34053025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn
34064f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn    public Debug.MemoryInfo[] getProcessMemoryInfo(int[] pids)
34073025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            throws RemoteException {
34083025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        Parcel data = Parcel.obtain();
34093025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        Parcel reply = Parcel.obtain();
34103025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
34114f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn        data.writeIntArray(pids);
34123025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        mRemote.transact(GET_PROCESS_MEMORY_INFO_TRANSACTION, data, reply, 0);
34133025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        reply.readException();
34144f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn        Debug.MemoryInfo[] res = reply.createTypedArray(Debug.MemoryInfo.CREATOR);
34153025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        data.recycle();
34163025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        reply.recycle();
34174f21c4cf077cfee5b35a56703618115614bc40f2Dianne Hackborn        return res;
34183025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn    }
34195e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate
34205e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate    public void killApplicationProcess(String processName, int uid) throws RemoteException {
34215e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        Parcel data = Parcel.obtain();
34225e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        Parcel reply = Parcel.obtain();
34235e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        data.writeInterfaceToken(IActivityManager.descriptor);
34245e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        data.writeString(processName);
34255e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        data.writeInt(uid);
34265e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        mRemote.transact(KILL_APPLICATION_PROCESS_TRANSACTION, data, reply, 0);
34275e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        reply.readException();
34285e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        data.recycle();
34295e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        reply.recycle();
34305e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate    }
34315e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate
34323b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn    public void overridePendingTransition(IBinder token, String packageName,
34333b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn            int enterAnim, int exitAnim) throws RemoteException {
34343b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        Parcel data = Parcel.obtain();
34353b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        Parcel reply = Parcel.obtain();
34363b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
34373b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.writeStrongBinder(token);
34383b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.writeString(packageName);
34393b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.writeInt(enterAnim);
34403b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.writeInt(exitAnim);
34413b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        mRemote.transact(OVERRIDE_PENDING_TRANSITION_TRANSACTION, data, reply, 0);
34423b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        reply.readException();
34433b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        data.recycle();
34443b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        reply.recycle();
34453b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn    }
34463b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn
34479327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn    public boolean isUserAMonkey() throws RemoteException {
34489327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        Parcel data = Parcel.obtain();
34499327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        Parcel reply = Parcel.obtain();
34509327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
34519327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        mRemote.transact(IS_USER_A_MONKEY_TRANSACTION, data, reply, 0);
34529327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        reply.readException();
34539327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        boolean res = reply.readInt() != 0;
34549327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        data.recycle();
34559327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        reply.recycle();
34569327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn        return res;
34579327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn    }
34589327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn
3459860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn    public void finishHeavyWeightApp() throws RemoteException {
3460860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        Parcel data = Parcel.obtain();
3461860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        Parcel reply = Parcel.obtain();
3462860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3463860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        mRemote.transact(FINISH_HEAVY_WEIGHT_APP_TRANSACTION, data, reply, 0);
3464860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        reply.readException();
3465860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        data.recycle();
3466860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn        reply.recycle();
3467860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn    }
3468860755faa6bdd3c2aeae49c05b87b5bc080ae60cDianne Hackborn
346969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    public void setImmersive(IBinder token, boolean immersive)
347069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            throws RemoteException {
347169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel data = Parcel.obtain();
347269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel reply = Parcel.obtain();
347369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeInterfaceToken(IActivityManager.descriptor);
347469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeStrongBinder(token);
347569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeInt(immersive ? 1 : 0);
347669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        mRemote.transact(SET_IMMERSIVE_TRANSACTION, data, reply, 0);
347769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.readException();
347869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.recycle();
347969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.recycle();
348069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    }
348169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
348269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    public boolean isImmersive(IBinder token)
348369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            throws RemoteException {
348469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel data = Parcel.obtain();
348569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel reply = Parcel.obtain();
348669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeInterfaceToken(IActivityManager.descriptor);
348769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeStrongBinder(token);
348869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        mRemote.transact(IS_IMMERSIVE_TRANSACTION, data, reply, 0);
348969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.readException();
34907e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        boolean res = reply.readInt() == 1;
349169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.recycle();
349269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.recycle();
349369a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        return res;
349469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    }
349569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
349669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    public boolean isTopActivityImmersive()
349769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler            throws RemoteException {
349869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel data = Parcel.obtain();
349969a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        Parcel reply = Parcel.obtain();
350069a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.writeInterfaceToken(IActivityManager.descriptor);
350169a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        mRemote.transact(IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION, data, reply, 0);
350269a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.readException();
35037e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        boolean res = reply.readInt() == 1;
350469a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        data.recycle();
350569a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        reply.recycle();
350669a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler        return res;
350769a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler    }
350869a4817e3e1e368e758ff8c238deb5ee26963c04Daniel Sandler
35099d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn    public void crashApplication(int uid, int initialPid, String packageName,
35109d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            String message) throws RemoteException {
35119d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        Parcel data = Parcel.obtain();
35129d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        Parcel reply = Parcel.obtain();
35139d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
35149d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeInt(uid);
35159d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeInt(initialPid);
35169d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeString(packageName);
35179d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeString(message);
35189d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        mRemote.transact(CRASH_APPLICATION_TRANSACTION, data, reply, 0);
35199d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        reply.readException();
35209d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.recycle();
35219d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        reply.recycle();
35229d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn    }
3523824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden
35245e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn    public String getProviderMimeType(Uri uri, int userId) throws RemoteException {
3525cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        Parcel data = Parcel.obtain();
3526cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        Parcel reply = Parcel.obtain();
3527cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3528cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        uri.writeToParcel(data, 0);
35295e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInt(userId);
3530cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        mRemote.transact(GET_PROVIDER_MIME_TYPE_TRANSACTION, data, reply, 0);
3531cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        reply.readException();
3532cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        String res = reply.readString();
3533cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        data.recycle();
3534cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        reply.recycle();
3535cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn        return res;
3536cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn    }
3537cca1f0e3476edd09cdd81b075a6b7780a2959b46Dianne Hackborn
35387e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    public IBinder newUriPermissionOwner(String name)
35397e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            throws RemoteException {
35407e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel data = Parcel.obtain();
35417e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel reply = Parcel.obtain();
35427e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
35437e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeString(name);
35447e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        mRemote.transact(NEW_URI_PERMISSION_OWNER_TRANSACTION, data, reply, 0);
35457e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.readException();
35467e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        IBinder res = reply.readStrongBinder();
35477e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.recycle();
35487e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.recycle();
35497e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        return res;
35507e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    }
35517e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn
35527e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    public void grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg,
35537e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            Uri uri, int mode) throws RemoteException {
35547e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel data = Parcel.obtain();
35557e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel reply = Parcel.obtain();
35567e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
35577e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeStrongBinder(owner);
35587e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInt(fromUid);
35597e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeString(targetPkg);
35607e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        uri.writeToParcel(data, 0);
35617e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInt(mode);
35627e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        mRemote.transact(GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0);
35637e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.readException();
35647e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.recycle();
35657e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.recycle();
35667e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    }
35677e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn
35687e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    public void revokeUriPermissionFromOwner(IBinder owner, Uri uri,
35697e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            int mode) throws RemoteException {
35707e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel data = Parcel.obtain();
35717e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        Parcel reply = Parcel.obtain();
35727e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
35737e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeStrongBinder(owner);
35747e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        if (uri != null) {
35757e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            data.writeInt(1);
35767e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            uri.writeToParcel(data, 0);
35777e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        } else {
35787e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn            data.writeInt(0);
35797e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        }
35807e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.writeInt(mode);
35817e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        mRemote.transact(REVOKE_URI_PERMISSION_TRANSACTION, data, reply, 0);
35827e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.readException();
35837e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        data.recycle();
35847e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn        reply.recycle();
35857e269644fcc319835f1e7f762f3cbd8087e3e22fDianne Hackborn    }
3586c8f8497b9cac63a923dbdb1c08e247ba32c19e5eDianne Hackborn
358790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn    public int checkGrantUriPermission(int callingUid, String targetPkg,
358890f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn            Uri uri, int modeFlags) throws RemoteException {
358990f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        Parcel data = Parcel.obtain();
359090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        Parcel reply = Parcel.obtain();
359190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
359290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        data.writeInt(callingUid);
359390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        data.writeString(targetPkg);
359490f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        uri.writeToParcel(data, 0);
359590f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        data.writeInt(modeFlags);
359690f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        mRemote.transact(CHECK_GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0);
359790f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        reply.readException();
359890f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        int res = reply.readInt();
359990f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        data.recycle();
360090f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        reply.recycle();
360190f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn        return res;
360290f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn    }
360390f4aafa336d9f2f07281ead3c846d323a710015Dianne Hackborn
3604824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden    public boolean dumpHeap(String process, boolean managed,
3605824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            String path, ParcelFileDescriptor fd) throws RemoteException {
3606824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        Parcel data = Parcel.obtain();
3607824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        Parcel reply = Parcel.obtain();
3608824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeInterfaceToken(IActivityManager.descriptor);
3609824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeString(process);
3610824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeInt(managed ? 1 : 0);
3611824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeString(path);
3612824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        if (fd != null) {
3613824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            data.writeInt(1);
3614824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            fd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
3615824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        } else {
3616824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            data.writeInt(0);
3617824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        }
3618824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        mRemote.transact(DUMP_HEAP_TRANSACTION, data, reply, 0);
3619824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        reply.readException();
3620824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        boolean res = reply.readInt() != 0;
3621824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        reply.recycle();
3622824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.recycle();
3623824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        return res;
3624824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden    }
36259d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn
3626621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn    public int startActivities(IApplicationThread caller,
3627a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Intent[] intents, String[] resolvedTypes, IBinder resultTo,
3628a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            Bundle options) throws RemoteException {
3629621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        Parcel data = Parcel.obtain();
3630621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        Parcel reply = Parcel.obtain();
3631621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3632621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeStrongBinder(caller != null ? caller.asBinder() : null);
3633621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeTypedArray(intents, 0);
3634621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeStringArray(resolvedTypes);
3635621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.writeStrongBinder(resultTo);
3636a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        if (options != null) {
3637a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(1);
3638a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            options.writeToParcel(data, 0);
3639a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        } else {
3640a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn            data.writeInt(0);
3641a4972e951bf2bdb7afdafee95b3ab0c15b8bacaeDianne Hackborn        }
3642621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        mRemote.transact(START_ACTIVITIES_TRANSACTION, data, reply, 0);
3643621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        reply.readException();
3644621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        int result = reply.readInt();
3645621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        reply.recycle();
3646621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        data.recycle();
3647621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn        return result;
3648621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn    }
3649621e17de87f18003aba2dedb719a2941020a7902Dianne Hackborn
36500f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    public int getFrontActivityScreenCompatMode() throws RemoteException {
36510f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel data = Parcel.obtain();
36520f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel reply = Parcel.obtain();
36530f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
36540f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        mRemote.transact(GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0);
36550f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.readException();
36560f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        int mode = reply.readInt();
36570f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.recycle();
36580f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.recycle();
36590f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        return mode;
36600f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    }
36610f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
36620f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    public void setFrontActivityScreenCompatMode(int mode) throws RemoteException {
36630f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel data = Parcel.obtain();
36640f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel reply = Parcel.obtain();
36650f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
36660f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.writeInt(mode);
36670f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        mRemote.transact(SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0);
36680f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.readException();
36690f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.recycle();
36700f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.recycle();
36710f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    }
36720f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
36730f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    public int getPackageScreenCompatMode(String packageName) throws RemoteException {
36740f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel data = Parcel.obtain();
36750f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        Parcel reply = Parcel.obtain();
36760f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
367736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeString(packageName);
367836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        mRemote.transact(GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0);
36790f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.readException();
36800f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        int mode = reply.readInt();
36810f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        reply.recycle();
36820f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.recycle();
36830f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        return mode;
36840f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    }
36850f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn
36860f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn    public void setPackageScreenCompatMode(String packageName, int mode)
3687e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            throws RemoteException {
3688e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        Parcel data = Parcel.obtain();
3689e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        Parcel reply = Parcel.obtain();
3690e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3691e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        data.writeString(packageName);
36920f1de9adde0b52d2a385a76232bd7ac30c3eeea2Dianne Hackborn        data.writeInt(mode);
3693e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        mRemote.transact(SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0);
3694e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        reply.readException();
3695e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        reply.recycle();
3696e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        data.recycle();
3697e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn    }
3698e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn
369936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn    public boolean getPackageAskScreenCompat(String packageName) throws RemoteException {
370036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        Parcel data = Parcel.obtain();
370136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        Parcel reply = Parcel.obtain();
370236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
370336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeString(packageName);
370436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        mRemote.transact(GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION, data, reply, 0);
370536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        reply.readException();
370636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        boolean ask = reply.readInt() != 0;
370736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        reply.recycle();
370836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.recycle();
370936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        return ask;
371036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn    }
371136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn
371236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn    public void setPackageAskScreenCompat(String packageName, boolean ask)
371336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn            throws RemoteException {
371436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        Parcel data = Parcel.obtain();
371536cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        Parcel reply = Parcel.obtain();
371636cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
371736cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeString(packageName);
371836cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.writeInt(ask ? 1 : 0);
371936cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        mRemote.transact(SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION, data, reply, 0);
372036cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        reply.readException();
372136cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        reply.recycle();
372236cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn        data.recycle();
372336cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn    }
372436cd41f8efa6f6a683d3353d309ff548295af9e9Dianne Hackborn
37254b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani    public boolean switchUser(int userid) throws RemoteException {
37264b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        Parcel data = Parcel.obtain();
37274b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        Parcel reply = Parcel.obtain();
37284b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        data.writeInterfaceToken(IActivityManager.descriptor);
37294b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        data.writeInt(userid);
37304b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        mRemote.transact(SWITCH_USER_TRANSACTION, data, reply, 0);
37314b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        reply.readException();
37324b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        boolean result = reply.readInt() != 0;
37334b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        reply.recycle();
37344b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        data.recycle();
37354b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani        return result;
37364b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani    }
373752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani
373880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn    public int stopUser(int userid, IStopUserCallback callback) throws RemoteException {
373980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        Parcel data = Parcel.obtain();
374080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        Parcel reply = Parcel.obtain();
374180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
374280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        data.writeInt(userid);
374380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        data.writeStrongInterface(callback);
374480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        mRemote.transact(STOP_USER_TRANSACTION, data, reply, 0);
374580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        reply.readException();
374680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        int result = reply.readInt();
374780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        reply.recycle();
374880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        data.recycle();
374980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        return result;
375080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn    }
375180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn
375252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani    public UserInfo getCurrentUser() throws RemoteException {
375352f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        Parcel data = Parcel.obtain();
375452f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        Parcel reply = Parcel.obtain();
375552f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        data.writeInterfaceToken(IActivityManager.descriptor);
375680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn        mRemote.transact(GET_CURRENT_USER_TRANSACTION, data, reply, 0);
375752f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        reply.readException();
375852f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        UserInfo userInfo = UserInfo.CREATOR.createFromParcel(reply);
375952f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        reply.recycle();
376052f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        data.recycle();
376152f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani        return userInfo;
376252f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani    }
376352f1d752f90579c9b57e3350393a029cf72138d0Amith Yamasani
37645e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn    public boolean isUserRunning(int userid) throws RemoteException {
37655e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        Parcel data = Parcel.obtain();
37665e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        Parcel reply = Parcel.obtain();
37675e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
37685e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.writeInt(userid);
37695e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        mRemote.transact(IS_USER_RUNNING_TRANSACTION, data, reply, 0);
37705e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        reply.readException();
37715e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        boolean result = reply.readInt() != 0;
37725e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        reply.recycle();
37735e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        data.recycle();
37745e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn        return result;
37755e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn    }
37765e03e2ca7d25b899b129baad2dd5eca6bf99d88aDianne Hackborn
37770c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn    public boolean removeSubTask(int taskId, int subTaskIndex) throws RemoteException {
37780c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        Parcel data = Parcel.obtain();
37790c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        Parcel reply = Parcel.obtain();
37800c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
37810c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.writeInt(taskId);
37820c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.writeInt(subTaskIndex);
37830c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        mRemote.transact(REMOVE_SUB_TASK_TRANSACTION, data, reply, 0);
37840c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        reply.readException();
37850c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        boolean result = reply.readInt() != 0;
37860c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        reply.recycle();
37870c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.recycle();
37880c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        return result;
37890c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn    }
37900c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn
37910c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn    public boolean removeTask(int taskId, int flags) throws RemoteException {
37920c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        Parcel data = Parcel.obtain();
37930c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        Parcel reply = Parcel.obtain();
37940c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
37950c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.writeInt(taskId);
37960c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.writeInt(flags);
37970c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        mRemote.transact(REMOVE_TASK_TRANSACTION, data, reply, 0);
37980c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        reply.readException();
37990c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        boolean result = reply.readInt() != 0;
38000c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        reply.recycle();
38010c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.recycle();
38020c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        return result;
38030c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn    }
38044b2e934928a2eb65927bd39197198c28c49efb94Amith Yamasani
3805a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey    public void registerProcessObserver(IProcessObserver observer) throws RemoteException {
3806a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        Parcel data = Parcel.obtain();
3807a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        Parcel reply = Parcel.obtain();
3808a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.writeInterfaceToken(IActivityManager.descriptor);
3809a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.writeStrongBinder(observer != null ? observer.asBinder() : null);
3810a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        mRemote.transact(REGISTER_PROCESS_OBSERVER_TRANSACTION, data, reply, 0);
3811a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        reply.readException();
3812a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.recycle();
3813a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        reply.recycle();
3814a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey    }
3815a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey
3816a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey    public void unregisterProcessObserver(IProcessObserver observer) throws RemoteException {
3817a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        Parcel data = Parcel.obtain();
3818a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        Parcel reply = Parcel.obtain();
3819a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.writeInterfaceToken(IActivityManager.descriptor);
3820a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.writeStrongBinder(observer != null ? observer.asBinder() : null);
3821a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        mRemote.transact(UNREGISTER_PROCESS_OBSERVER_TRANSACTION, data, reply, 0);
3822a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        reply.readException();
3823a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        data.recycle();
3824a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey        reply.recycle();
3825a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey    }
3826a4620793038b9a9163b26c6ece882cb454fcbf87Jeff Sharkey
38276c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn    public boolean isIntentSenderTargetedToPackage(IIntentSender sender) throws RemoteException {
38286c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        Parcel data = Parcel.obtain();
38296c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        Parcel reply = Parcel.obtain();
38306c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
38316c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        data.writeStrongBinder(sender.asBinder());
38326c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        mRemote.transact(IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION, data, reply, 0);
38336c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        reply.readException();
38346c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        boolean res = reply.readInt() != 0;
38356c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        data.recycle();
38366c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        reply.recycle();
38376c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn        return res;
38386c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn    }
38396c418d585e0a91054b168fde3130188afd006c98Dianne Hackborn
38401927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn    public boolean isIntentSenderAnActivity(IIntentSender sender) throws RemoteException {
38411927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        Parcel data = Parcel.obtain();
38421927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        Parcel reply = Parcel.obtain();
38431927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
38441927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        data.writeStrongBinder(sender.asBinder());
38451927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        mRemote.transact(IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION, data, reply, 0);
38461927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        reply.readException();
38471927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        boolean res = reply.readInt() != 0;
38481927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        data.recycle();
38491927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        reply.recycle();
38501927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn        return res;
38511927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn    }
38521927ae8a56a010919a7535231fa0f7db70f7e152Dianne Hackborn
385331ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn    public void updatePersistentConfiguration(Configuration values) throws RemoteException
385431ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn    {
385531ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        Parcel data = Parcel.obtain();
385631ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        Parcel reply = Parcel.obtain();
385731ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
385831ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        values.writeToParcel(data, 0);
385931ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        mRemote.transact(UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION, data, reply, 0);
386031ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        reply.readException();
386131ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        data.recycle();
386231ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn        reply.recycle();
386331ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn    }
386431ca854cdba31ec6ab089af743a8701a6192e07eDianne Hackborn
3865b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn    public long[] getProcessPss(int[] pids) throws RemoteException {
3866b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        Parcel data = Parcel.obtain();
3867b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        Parcel reply = Parcel.obtain();
3868b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3869b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        data.writeIntArray(pids);
3870b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        mRemote.transact(GET_PROCESS_PSS_TRANSACTION, data, reply, 0);
3871b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        reply.readException();
3872b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        long[] res = reply.createLongArray();
3873b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        data.recycle();
3874b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        reply.recycle();
3875b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        return res;
3876b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn    }
3877b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn
3878661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn    public void showBootMessage(CharSequence msg, boolean always) throws RemoteException {
3879661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        Parcel data = Parcel.obtain();
3880661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        Parcel reply = Parcel.obtain();
3881661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
3882661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        TextUtils.writeToParcel(msg, data, 0);
3883661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        data.writeInt(always ? 1 : 0);
3884661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        mRemote.transact(SHOW_BOOT_MESSAGE_TRANSACTION, data, reply, 0);
3885661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        reply.readException();
3886661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        data.recycle();
3887661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn        reply.recycle();
3888661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn    }
3889661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn
389090c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn    public void dismissKeyguardOnNextActivity() throws RemoteException {
389190c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        Parcel data = Parcel.obtain();
389290c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        Parcel reply = Parcel.obtain();
389390c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
389490c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        mRemote.transact(DISMISS_KEYGUARD_ON_NEXT_ACTIVITY_TRANSACTION, data, reply, 0);
389590c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        reply.readException();
389690c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        data.recycle();
389790c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn        reply.recycle();
389890c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn    }
389990c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn
3900dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell    public boolean targetTaskAffinityMatchesActivity(IBinder token, String destAffinity)
3901dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            throws RemoteException {
3902dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        Parcel data = Parcel.obtain();
3903dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        Parcel reply = Parcel.obtain();
3904dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeInterfaceToken(IActivityManager.descriptor);
3905dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeStrongBinder(token);
3906dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeString(destAffinity);
3907dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        mRemote.transact(TARGET_TASK_AFFINITY_MATCHES_ACTIVITY_TRANSACTION, data, reply, 0);
3908dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        reply.readException();
3909dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        boolean result = reply.readInt() != 0;
3910dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.recycle();
3911dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        reply.recycle();
3912dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        return result;
3913dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell    }
3914dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell
3915dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell    public boolean navigateUpTo(IBinder token, Intent target, int resultCode, Intent resultData)
3916dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            throws RemoteException {
3917dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        Parcel data = Parcel.obtain();
3918dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        Parcel reply = Parcel.obtain();
3919dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeInterfaceToken(IActivityManager.descriptor);
3920dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeStrongBinder(token);
3921dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        target.writeToParcel(data, 0);
3922dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.writeInt(resultCode);
3923dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        if (resultData != null) {
3924dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            data.writeInt(1);
3925dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            resultData.writeToParcel(data, 0);
3926dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        } else {
3927dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell            data.writeInt(0);
3928dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        }
3929dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        mRemote.transact(NAVIGATE_UP_TO_TRANSACTION, data, reply, 0);
3930dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        reply.readException();
3931dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        boolean result = reply.readInt() != 0;
3932dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        data.recycle();
3933dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        reply.recycle();
3934dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        return result;
3935dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell    }
3936dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell
39375320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn    public int getLaunchedFromUid(IBinder activityToken) throws RemoteException {
39385320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        Parcel data = Parcel.obtain();
39395320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        Parcel reply = Parcel.obtain();
39405320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        data.writeInterfaceToken(IActivityManager.descriptor);
39415320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        data.writeStrongBinder(activityToken);
39425320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        mRemote.transact(GET_LAUNCHED_FROM_UID_TRANSACTION, data, reply, 0);
39435320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        reply.readException();
39445320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        int result = reply.readInt();
39455320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        data.recycle();
39465320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        reply.recycle();
39475320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn        return result;
39485320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn    }
39495320eb8938098c9824093f7f842a0a97bbc190a4Dianne Hackborn
39509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private IBinder mRemote;
39519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
3952