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;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent;
211ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapuimport android.content.IIntentReceiver;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ActivityInfo;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ApplicationInfo;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ProviderInfo;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ServiceInfo;
26e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackbornimport android.content.res.CompatibilityInfo;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.Configuration;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Binder;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle;
303025ef332c29e255388f74b2afefe05f64bce07cDianne Hackbornimport android.os.Debug;
319c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackbornimport android.os.Parcelable;
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.RemoteException;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder;
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel;
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ParcelFileDescriptor;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.FileDescriptor;
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.IOException;
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.HashMap;
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.List;
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Map;
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** {@hide} */
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic abstract class ApplicationThreadNative extends Binder
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        implements IApplicationThread {
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Cast a Binder object into an application thread interface, generating
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a proxy if needed.
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static public IApplicationThread asInterface(IBinder obj) {
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (obj == null) {
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return null;
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        IApplicationThread in =
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            (IApplicationThread)obj.queryLocalInterface(descriptor);
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (in != null) {
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return in;
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return new ApplicationThreadProxy(obj);
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ApplicationThreadNative() {
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        attachInterface(this, descriptor);
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean onTransact(int code, Parcel data, Parcel reply, int flags)
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        switch (code) {
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_PAUSE_ACTIVITY_TRANSACTION:
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean finished = data.readInt() != 0;
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean userLeaving = data.readInt() != 0;
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int configChanges = data.readInt();
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            schedulePauseActivity(b, finished, userLeaving, configChanges);
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_STOP_ACTIVITY_TRANSACTION:
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean show = data.readInt() != 0;
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int configChanges = data.readInt();
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleStopActivity(b, show, configChanges);
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_WINDOW_VISIBILITY_TRANSACTION:
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean show = data.readInt() != 0;
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleWindowVisibility(b, show);
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1014eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        case SCHEDULE_SLEEPING_TRANSACTION:
1024eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        {
1034eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
1044eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            IBinder b = data.readStrongBinder();
1054eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            boolean sleeping = data.readInt() != 0;
1064eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            scheduleSleeping(b, sleeping);
1074eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            return true;
1084eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        }
1094eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_RESUME_ACTIVITY_TRANSACTION:
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean isForward = data.readInt() != 0;
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleResumeActivity(b, isForward);
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_SEND_RESULT_TRANSACTION:
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ResultInfo> ri = data.createTypedArrayList(ResultInfo.CREATOR);
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleSendResult(b, ri);
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_LAUNCH_ACTIVITY_TRANSACTION:
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
133b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn            int ident = data.readInt();
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ActivityInfo info = ActivityInfo.CREATOR.createFromParcel(data);
13558f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn            Configuration curConfig = Configuration.CREATOR.createFromParcel(data);
136e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compatInfo = CompatibilityInfo.CREATOR.createFromParcel(data);
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle state = data.readBundle();
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ResultInfo> ri = data.createTypedArrayList(ResultInfo.CREATOR);
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<Intent> pi = data.createTypedArrayList(Intent.CREATOR);
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean notResumed = data.readInt() != 0;
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean isForward = data.readInt() != 0;
14262f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            String profileName = data.readString();
14362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            ParcelFileDescriptor profileFd = data.readInt() != 0
14462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn                    ? data.readFileDescriptor() : null;
14562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            boolean autoStopProfiler = data.readInt() != 0;
14658f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn            scheduleLaunchActivity(intent, b, ident, info, curConfig, compatInfo, state, ri, pi,
14762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn                    notResumed, isForward, profileName, profileFd, autoStopProfiler);
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_RELAUNCH_ACTIVITY_TRANSACTION:
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ResultInfo> ri = data.createTypedArrayList(ResultInfo.CREATOR);
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<Intent> pi = data.createTypedArrayList(Intent.CREATOR);
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int configChanges = data.readInt();
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean notResumed = data.readInt() != 0;
159871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn            Configuration config = null;
160871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn            if (data.readInt() != 0) {
161871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn                config = Configuration.CREATOR.createFromParcel(data);
162871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn            }
163871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn            scheduleRelaunchActivity(b, ri, pi, configChanges, notResumed, config);
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_NEW_INTENT_TRANSACTION:
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<Intent> pi = data.createTypedArrayList(Intent.CREATOR);
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleNewIntent(pi, b);
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_FINISH_ACTIVITY_TRANSACTION:
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean finishing = data.readInt() != 0;
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int configChanges = data.readInt();
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleDestroyActivity(b, finishing, configChanges);
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_RECEIVER_TRANSACTION:
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ActivityInfo info = ActivityInfo.CREATOR.createFromParcel(data);
191e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compatInfo = CompatibilityInfo.CREATOR.createFromParcel(data);
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode = data.readInt();
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resultData = data.readString();
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle resultExtras = data.readBundle();
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean sync = data.readInt() != 0;
19620e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            int sendingUser = data.readInt();
197e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            scheduleReceiver(intent, info, compatInfo, resultCode, resultData,
19820e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn                    resultExtras, sync, sendingUser);
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_CREATE_SERVICE_TRANSACTION: {
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ServiceInfo info = ServiceInfo.CREATOR.createFromParcel(data);
206e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compatInfo = CompatibilityInfo.CREATOR.createFromParcel(data);
207e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            scheduleCreateService(token, info, compatInfo);
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_BIND_SERVICE_TRANSACTION: {
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean rebind = data.readInt() != 0;
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleBindService(token, intent, rebind);
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_UNBIND_SERVICE_TRANSACTION: {
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleUnbindService(token, intent);
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_SERVICE_ARGS_TRANSACTION:
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
2320c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            boolean taskRemoved = data.readInt() != 0;
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int startId = data.readInt();
234f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            int fl = data.readInt();
235f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            Intent args;
236f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            if (data.readInt() != 0) {
237f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn                args = Intent.CREATOR.createFromParcel(data);
238f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            } else {
239f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn                args = null;
240f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            }
2410c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn            scheduleServiceArgs(token, taskRemoved, startId, fl, args);
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_STOP_SERVICE_TRANSACTION:
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token = data.readStrongBinder();
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleStopService(token);
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case BIND_APPLICATION_TRANSACTION:
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String packageName = data.readString();
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ApplicationInfo info =
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ApplicationInfo.CREATOR.createFromParcel(data);
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ProviderInfo> providers =
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                data.createTypedArrayList(ProviderInfo.CREATOR);
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ComponentName testName = (data.readInt() != 0)
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ? new ComponentName(data) : null;
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String profileName = data.readString();
26462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            ParcelFileDescriptor profileFd = data.readInt() != 0
26562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn                    ? data.readFileDescriptor() : null;
26662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            boolean autoStopProfiler = data.readInt() != 0;
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle testArgs = data.readBundle();
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder binder = data.readStrongBinder();
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IInstrumentationWatcher testWatcher = IInstrumentationWatcher.Stub.asInterface(binder);
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int testMode = data.readInt();
27192a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy            boolean openGlTrace = data.readInt() != 0;
272181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            boolean restrictedBackupMode = (data.readInt() != 0);
2735d927c2d8e832fcfcb0154c8741f896001141ef4Dianne Hackborn            boolean persistent = (data.readInt() != 0);
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Configuration config = Configuration.CREATOR.createFromParcel(data);
275e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compatInfo = CompatibilityInfo.CREATOR.createFromParcel(data);
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            HashMap<String, IBinder> services = data.readHashMap(null);
27754d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov            Bundle coreSettings = data.readBundle();
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            bindApplication(packageName, info,
27962f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn                            providers, testName, profileName, profileFd, autoStopProfiler,
28092a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy                            testArgs, testWatcher, testMode, openGlTrace, restrictedBackupMode,
28192a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy                            persistent, config, compatInfo, services, coreSettings);
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
28492a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_EXIT_TRANSACTION:
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleExit();
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2925e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        case SCHEDULE_SUICIDE_TRANSACTION:
2935e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        {
2945e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            data.enforceInterface(IApplicationThread.descriptor);
2955e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            scheduleSuicide();
2965e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate            return true;
2975e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        }
2985e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case REQUEST_THUMBNAIL_TRANSACTION:
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            requestThumbnail(b);
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
306434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_CONFIGURATION_CHANGED_TRANSACTION:
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Configuration config = Configuration.CREATOR.createFromParcel(data);
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleConfigurationChanged(config);
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case UPDATE_TIME_ZONE_TRANSACTION: {
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            updateTimeZone();
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
32103595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt        case CLEAR_DNS_CACHE_TRANSACTION: {
32203595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt            data.enforceInterface(IApplicationThread.descriptor);
32303595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt            clearDnsCache();
32403595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt            return true;
32503595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt        }
32603595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt
327434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt        case SET_HTTP_PROXY_TRANSACTION: {
328434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt            data.enforceInterface(IApplicationThread.descriptor);
329434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt            final String proxy = data.readString();
330434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt            final String port = data.readString();
331434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt            final String exclList = data.readString();
332434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt            setHttpProxy(proxy, port, exclList);
333434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt            return true;
334434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt        }
335434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case PROCESS_IN_BACKGROUND_TRANSACTION: {
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            processInBackground();
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
341434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case DUMP_SERVICE_TRANSACTION: {
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ParcelFileDescriptor fd = data.readFileDescriptor();
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            final IBinder service = data.readStrongBinder();
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            final String[] args = data.readStringArray();
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (fd != null) {
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                dumpService(fd.getFileDescriptor(), service, args);
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                try {
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    fd.close();
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                } catch (IOException e) {
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35718cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen        case DUMP_PROVIDER_TRANSACTION: {
35818cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen            data.enforceInterface(IApplicationThread.descriptor);
35918cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen            ParcelFileDescriptor fd = data.readFileDescriptor();
36018cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen            final IBinder service = data.readStrongBinder();
36118cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen            final String[] args = data.readStringArray();
36218cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen            if (fd != null) {
36318cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen                dumpProvider(fd.getFileDescriptor(), service, args);
36418cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen                try {
36518cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen                    fd.close();
36618cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen                } catch (IOException e) {
36718cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen                }
36818cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen            }
36918cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen            return true;
37018cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen        }
37118cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_REGISTERED_RECEIVER_TRANSACTION: {
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IIntentReceiver receiver = IIntentReceiver.Stub.asInterface(
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    data.readStrongBinder());
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Intent intent = Intent.CREATOR.createFromParcel(data);
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int resultCode = data.readInt();
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String dataStr = data.readString();
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Bundle extras = data.readBundle();
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean ordered = data.readInt() != 0;
38168d881cf2d2b252f6f795cd64d43e316a1d736e5Dianne Hackborn            boolean sticky = data.readInt() != 0;
38220e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            int sendingUser = data.readInt();
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleRegisteredReceiver(receiver, intent,
38420e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn                    resultCode, dataStr, extras, ordered, sticky, sendingUser);
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_LOW_MEMORY_TRANSACTION:
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
390e94a3e7f84c4e47f013be07901f8f1ceeedefb6eVairavan Srinivasan            data.enforceInterface(IApplicationThread.descriptor);
3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleLowMemory();
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        case SCHEDULE_ACTIVITY_CONFIGURATION_CHANGED_TRANSACTION:
3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder b = data.readStrongBinder();
3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            scheduleActivityConfigurationChanged(b);
4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
403f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        case PROFILER_CONTROL_TRANSACTION:
404f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        {
405f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            data.enforceInterface(IApplicationThread.descriptor);
406f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            boolean start = data.readInt() != 0;
4079a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8Romain Guy            int profileType = data.readInt();
408f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            String path = data.readString();
4099c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn            ParcelFileDescriptor fd = data.readInt() != 0
4109c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn                    ? data.readFileDescriptor() : null;
4117eabe55db6b113f83c2cefcd06812648927de877Romain Guy            profilerControl(start, path, fd, profileType);
412f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project            return true;
413f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        }
41406de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn
41506de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn        case SET_SCHEDULING_GROUP_TRANSACTION:
41606de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn        {
41706de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
41806de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn            int group = data.readInt();
41906de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn            setSchedulingGroup(group);
42006de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn            return true;
42106de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn        }
422181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
423181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        case SCHEDULE_CREATE_BACKUP_AGENT_TRANSACTION:
424181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        {
425181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            data.enforceInterface(IApplicationThread.descriptor);
426181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            ApplicationInfo appInfo = ApplicationInfo.CREATOR.createFromParcel(data);
427e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compatInfo = CompatibilityInfo.CREATOR.createFromParcel(data);
428181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            int backupMode = data.readInt();
429e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            scheduleCreateBackupAgent(appInfo, compatInfo, backupMode);
430181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate            return true;
431181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        }
4321885b37913181230c36d6485bdd389f89fa90f43Christopher Tate
4331885b37913181230c36d6485bdd389f89fa90f43Christopher Tate        case SCHEDULE_DESTROY_BACKUP_AGENT_TRANSACTION:
4341885b37913181230c36d6485bdd389f89fa90f43Christopher Tate        {
4351885b37913181230c36d6485bdd389f89fa90f43Christopher Tate            data.enforceInterface(IApplicationThread.descriptor);
4361885b37913181230c36d6485bdd389f89fa90f43Christopher Tate            ApplicationInfo appInfo = ApplicationInfo.CREATOR.createFromParcel(data);
437e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compatInfo = CompatibilityInfo.CREATOR.createFromParcel(data);
438e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            scheduleDestroyBackupAgent(appInfo, compatInfo);
4391885b37913181230c36d6485bdd389f89fa90f43Christopher Tate            return true;
4401885b37913181230c36d6485bdd389f89fa90f43Christopher Tate        }
4413025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn
4423025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        case GET_MEMORY_INFO_TRANSACTION:
4433025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        {
4443025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
4453025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            Debug.MemoryInfo mi = new Debug.MemoryInfo();
4463025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            getMemoryInfo(mi);
4473025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            reply.writeNoException();
4483025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            mi.writeToParcel(reply, 0);
4493025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn            return true;
4503025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        }
4514416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn
4524416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn        case DISPATCH_PACKAGE_BROADCAST_TRANSACTION:
4534416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn        {
4544416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
4554416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn            int cmd = data.readInt();
4564416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn            String[] packages = data.readStringArray();
4574416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn            dispatchPackageBroadcast(cmd, packages);
4584416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn            return true;
4594416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn        }
4609d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn
4619d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        case SCHEDULE_CRASH_TRANSACTION:
4629d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        {
4639d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
4649d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            String msg = data.readString();
4659d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            scheduleCrash(msg);
4669d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn            return true;
4679d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        }
468824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden
469824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        case DUMP_HEAP_TRANSACTION:
470824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        {
471824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            data.enforceInterface(IApplicationThread.descriptor);
472824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            boolean managed = data.readInt() != 0;
473824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            String path = data.readString();
474824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            ParcelFileDescriptor fd = data.readInt() != 0
475824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden                    ? data.readFileDescriptor() : null;
476824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            dumpHeap(managed, path, fd);
477824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            return true;
478824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        }
479625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn
480625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn        case DUMP_ACTIVITY_TRANSACTION: {
481625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
482625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn            ParcelFileDescriptor fd = data.readFileDescriptor();
483625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn            final IBinder activity = data.readStrongBinder();
48430d7189067524000c738c188c4ff91f84f474d25Dianne Hackborn            final String prefix = data.readString();
485625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn            final String[] args = data.readStringArray();
486625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn            if (fd != null) {
48730d7189067524000c738c188c4ff91f84f474d25Dianne Hackborn                dumpActivity(fd.getFileDescriptor(), activity, prefix, args);
488625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn                try {
489625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn                    fd.close();
490625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn                } catch (IOException e) {
491625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn                }
492625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn            }
493625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn            return true;
494625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn        }
49554d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov
496e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        case SET_CORE_SETTINGS_TRANSACTION: {
49754d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov            data.enforceInterface(IApplicationThread.descriptor);
49854d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov            Bundle settings = data.readBundle();
49954d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov            setCoreSettings(settings);
50054d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov            return true;
50154d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov        }
502e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn
503e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        case UPDATE_PACKAGE_COMPATIBILITY_INFO_TRANSACTION: {
504e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
505e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            String pkg = data.readString();
506e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compat = CompatibilityInfo.CREATOR.createFromParcel(data);
507e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            updatePackageCompatibilityInfo(pkg, compat);
508e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            return true;
509e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        }
510ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn
511ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn        case SCHEDULE_TRIM_MEMORY_TRANSACTION: {
512ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
513ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn            int level = data.readInt();
514ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn            scheduleTrimMemory(level);
515ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn            return true;
516ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn        }
5170e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn
5180e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        case DUMP_MEM_INFO_TRANSACTION:
5190e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        {
5200e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
5210e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            ParcelFileDescriptor fd = data.readFileDescriptor();
522b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            boolean checkin = data.readInt() != 0;
523b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            boolean all = data.readInt() != 0;
5240e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            String[] args = data.readStringArray();
5250e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            Debug.MemoryInfo mi = null;
5260e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            if (fd != null) {
5270e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                try {
528b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn                    mi = dumpMemInfo(fd.getFileDescriptor(), checkin, all, args);
5290e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                } finally {
5300e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                    try {
5310e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                        fd.close();
5320e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                    } catch (IOException e) {
5330e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                        // swallowed, not propagated back to the caller
5340e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                    }
5350e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                }
5360e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            }
5370e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            reply.writeNoException();
5380e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            mi.writeToParcel(reply, 0);
5390e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            return true;
5400e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        }
5410e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn
5420e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        case DUMP_GFX_INFO_TRANSACTION:
5430e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        {
5440e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
5450e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            ParcelFileDescriptor fd = data.readFileDescriptor();
5460e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            String[] args = data.readStringArray();
5470e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            if (fd != null) {
5480e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                try {
5490e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                    dumpGfxInfo(fd.getFileDescriptor(), args);
5500e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                } finally {
5510e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                    try {
5520e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                        fd.close();
5530e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                    } catch (IOException e) {
5540e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                        // swallowed, not propagated back to the caller
5550e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                    }
5560e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn                }
5570e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            }
5580e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            reply.writeNoException();
5590e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn            return true;
5600e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        }
5616754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown
5626754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown        case DUMP_DB_INFO_TRANSACTION:
5636754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown        {
5646754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown            data.enforceInterface(IApplicationThread.descriptor);
5656754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown            ParcelFileDescriptor fd = data.readFileDescriptor();
5666754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown            String[] args = data.readStringArray();
5676754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown            if (fd != null) {
5686754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown                try {
5696754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown                    dumpDbInfo(fd.getFileDescriptor(), args);
5706754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown                } finally {
5716754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown                    try {
5726754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown                        fd.close();
5736754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown                    } catch (IOException e) {
5746754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown                        // swallowed, not propagated back to the caller
5756754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown                    }
5766754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown                }
5776754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown            }
5786754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown            reply.writeNoException();
5796754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown            return true;
5806754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown        }
5816ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn
5826ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        case UNSTABLE_PROVIDER_DIED_TRANSACTION:
5836ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        {
5846ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            data.enforceInterface(IApplicationThread.descriptor);
5856ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            IBinder provider = data.readStrongBinder();
5866ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            unstableProviderDied(provider);
5876ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            reply.writeNoException();
5886ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn            return true;
5896ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        }
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return super.onTransact(code, data, reply, flags);
5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public IBinder asBinder()
5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return this;
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass ApplicationThreadProxy implements IApplicationThread {
6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private final IBinder mRemote;
6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ApplicationThreadProxy(IBinder remote) {
6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote = remote;
6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final IBinder asBinder() {
6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mRemote;
6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void schedulePauseActivity(IBinder token, boolean finished,
6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean userLeaving, int configChanges) throws RemoteException {
6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(finished ? 1 : 0);
6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(userLeaving ? 1 :0);
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(configChanges);
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_PAUSE_ACTIVITY_TRANSACTION, data, null,
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleStopActivity(IBinder token, boolean showWindow,
6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int configChanges) throws RemoteException {
6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(showWindow ? 1 : 0);
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(configChanges);
6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_STOP_ACTIVITY_TRANSACTION, data, null,
6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleWindowVisibility(IBinder token,
6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean showWindow) throws RemoteException {
6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(showWindow ? 1 : 0);
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_WINDOW_VISIBILITY_TRANSACTION, data, null,
6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6484eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn    public final void scheduleSleeping(IBinder token,
6494eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn            boolean sleeping) throws RemoteException {
6504eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        Parcel data = Parcel.obtain();
6514eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
6524eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        data.writeStrongBinder(token);
6534eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        data.writeInt(sleeping ? 1 : 0);
6544eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        mRemote.transact(SCHEDULE_SLEEPING_TRANSACTION, data, null,
6554eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn                IBinder.FLAG_ONEWAY);
6564eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn        data.recycle();
6574eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn    }
6584eba96bb314d8ff773ea33d6cb3179f25751ecceDianne Hackborn
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleResumeActivity(IBinder token, boolean isForward)
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(isForward ? 1 : 0);
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_RESUME_ACTIVITY_TRANSACTION, data, null,
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleSendResult(IBinder token, List<ResultInfo> results)
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    		throws RemoteException {
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeTypedList(results);
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_SEND_RESULT_TRANSACTION, data, null,
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
681b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn    public final void scheduleLaunchActivity(Intent intent, IBinder token, int ident,
68258f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn            ActivityInfo info, Configuration curConfig, CompatibilityInfo compatInfo,
68358f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn            Bundle state, List<ResultInfo> pendingResults,
68458f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn    		List<Intent> pendingNewIntents, boolean notResumed, boolean isForward,
68558f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn    		String profileName, ParcelFileDescriptor profileFd, boolean autoStopProfiler)
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    		throws RemoteException {
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
691b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn        data.writeInt(ident);
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        info.writeToParcel(data, 0);
69358f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn        curConfig.writeToParcel(data, 0);
694e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        compatInfo.writeToParcel(data, 0);
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(state);
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeTypedList(pendingResults);
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeTypedList(pendingNewIntents);
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(notResumed ? 1 : 0);
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(isForward ? 1 : 0);
70062f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        data.writeString(profileName);
70162f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        if (profileFd != null) {
70262f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(1);
70362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            profileFd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
70462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        } else {
70562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(0);
70662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        }
70762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        data.writeInt(autoStopProfiler ? 1 : 0);
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_LAUNCH_ACTIVITY_TRANSACTION, data, null,
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleRelaunchActivity(IBinder token,
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            List<ResultInfo> pendingResults, List<Intent> pendingNewIntents,
715871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn            int configChanges, boolean notResumed, Configuration config)
716871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn            throws RemoteException {
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeTypedList(pendingResults);
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeTypedList(pendingNewIntents);
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(configChanges);
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(notResumed ? 1 : 0);
724871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn        if (config != null) {
725871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn            data.writeInt(1);
726871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn            config.writeToParcel(data, 0);
727871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn        } else {
728871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn            data.writeInt(0);
729871ecdce67fb59a2603c1b93db657fe8b65695bdDianne Hackborn        }
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_RELAUNCH_ACTIVITY_TRANSACTION, data, null,
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void scheduleNewIntent(List<Intent> intents, IBinder token)
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeTypedList(intents);
7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_NEW_INTENT_TRANSACTION, data, null,
7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleDestroyActivity(IBinder token, boolean finishing,
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int configChanges) throws RemoteException {
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(finishing ? 1 : 0);
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(configChanges);
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_FINISH_ACTIVITY_TRANSACTION, data, null,
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleReceiver(Intent intent, ActivityInfo info,
759e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compatInfo, int resultCode, String resultData,
76020e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            Bundle map, boolean sync, int sendingUser) throws RemoteException {
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        info.writeToParcel(data, 0);
765e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        compatInfo.writeToParcel(data, 0);
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(resultCode);
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(resultData);
7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(map);
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(sync ? 1 : 0);
77020e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn        data.writeInt(sendingUser);
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_RECEIVER_TRANSACTION, data, null,
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
776e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn    public final void scheduleCreateBackupAgent(ApplicationInfo app,
777e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compatInfo, int backupMode) throws RemoteException {
778181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel data = Parcel.obtain();
779181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInterfaceToken(IApplicationThread.descriptor);
780181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        app.writeToParcel(data, 0);
781e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        compatInfo.writeToParcel(data, 0);
782181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInt(backupMode);
783d884f43ffa47f1966e9c63d1ac4722994e037c0bChristopher Tate        mRemote.transact(SCHEDULE_CREATE_BACKUP_AGENT_TRANSACTION, data, null,
784d884f43ffa47f1966e9c63d1ac4722994e037c0bChristopher Tate                IBinder.FLAG_ONEWAY);
785181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.recycle();
786181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    }
787181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
788e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn    public final void scheduleDestroyBackupAgent(ApplicationInfo app,
789e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compatInfo) throws RemoteException {
790181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        Parcel data = Parcel.obtain();
791181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInterfaceToken(IApplicationThread.descriptor);
792181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        app.writeToParcel(data, 0);
793e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        compatInfo.writeToParcel(data, 0);
794d884f43ffa47f1966e9c63d1ac4722994e037c0bChristopher Tate        mRemote.transact(SCHEDULE_DESTROY_BACKUP_AGENT_TRANSACTION, data, null,
795d884f43ffa47f1966e9c63d1ac4722994e037c0bChristopher Tate                IBinder.FLAG_ONEWAY);
796181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.recycle();
797181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate    }
798181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate
799e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn    public final void scheduleCreateService(IBinder token, ServiceInfo info,
800e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            CompatibilityInfo compatInfo) throws RemoteException {
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        info.writeToParcel(data, 0);
805e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        compatInfo.writeToParcel(data, 0);
8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_CREATE_SERVICE_TRANSACTION, data, null,
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleBindService(IBinder token, Intent intent, boolean rebind)
8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(rebind ? 1 : 0);
8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_BIND_SERVICE_TRANSACTION, data, null,
8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleUnbindService(IBinder token, Intent intent)
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_UNBIND_SERVICE_TRANSACTION, data, null,
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8340c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn    public final void scheduleServiceArgs(IBinder token, boolean taskRemoved, int startId,
835f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn	    int flags, Intent args) throws RemoteException {
8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
8390c5001d776d56bae02a5cc2663286a125d99bc5eDianne Hackborn        data.writeInt(taskRemoved ? 1 : 0);
8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(startId);
841f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn        data.writeInt(flags);
842f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn        if (args != null) {
843f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            data.writeInt(1);
844f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            args.writeToParcel(data, 0);
845f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn        } else {
846f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn            data.writeInt(0);
847f6f9f2d0256930ce0bb4913b2260b8480914edc2Dianne Hackborn        }
8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_SERVICE_ARGS_TRANSACTION, data, null,
8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleStopService(IBinder token)
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_STOP_SERVICE_TRANSACTION, data, null,
8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void bindApplication(String packageName, ApplicationInfo info,
86462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            List<ProviderInfo> providers, ComponentName testName, String profileName,
86562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            ParcelFileDescriptor profileFd, boolean autoStopProfiler, Bundle testArgs,
86692a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy            IInstrumentationWatcher testWatcher, int debugMode, boolean openGlTrace,
86792a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy            boolean restrictedBackupMode, boolean persistent,
86892a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy            Configuration config, CompatibilityInfo compatInfo,
86954d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov            Map<String, IBinder> services, Bundle coreSettings) throws RemoteException {
8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(packageName);
8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        info.writeToParcel(data, 0);
8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeTypedList(providers);
8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (testName == null) {
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(0);
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } else {
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            data.writeInt(1);
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            testName.writeToParcel(data, 0);
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(profileName);
88262f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        if (profileFd != null) {
88362f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(1);
88462f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            profileFd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
88562f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        } else {
88662f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn            data.writeInt(0);
88762f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        }
88862f20ecf492d2b29881bba307c79ff55e68760e6Dianne Hackborn        data.writeInt(autoStopProfiler ? 1 : 0);
8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(testArgs);
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongInterface(testWatcher);
8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(debugMode);
89292a8b22e7410e74e1cba1b856333116652af8a5cSiva Velusamy        data.writeInt(openGlTrace ? 1 : 0);
893181fafaf48208978b8ba2022683ffa78aaeddde1Christopher Tate        data.writeInt(restrictedBackupMode ? 1 : 0);
8945d927c2d8e832fcfcb0154c8741f896001141ef4Dianne Hackborn        data.writeInt(persistent ? 1 : 0);
8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        config.writeToParcel(data, 0);
896e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        compatInfo.writeToParcel(data, 0);
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeMap(services);
89854d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov        data.writeBundle(coreSettings);
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(BIND_APPLICATION_TRANSACTION, data, null,
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleExit() throws RemoteException {
9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_EXIT_TRANSACTION, data, null,
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9115e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate
9125e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate    public final void scheduleSuicide() throws RemoteException {
9135e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        Parcel data = Parcel.obtain();
9145e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        data.writeInterfaceToken(IApplicationThread.descriptor);
9155e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        mRemote.transact(SCHEDULE_SUICIDE_TRANSACTION, data, null,
9165e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate                IBinder.FLAG_ONEWAY);
9175e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate        data.recycle();
9185e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate    }
9195e1ab335e6e8fbfa19c64d53880a22f472010953Christopher Tate
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void requestThumbnail(IBinder token)
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(REQUEST_THUMBNAIL_TRANSACTION, data, null,
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleConfigurationChanged(Configuration config)
9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        config.writeToParcel(data, 0);
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_CONFIGURATION_CHANGED_TRANSACTION, data, null,
9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void updateTimeZone() throws RemoteException {
9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(UPDATE_TIME_ZONE_TRANSACTION, data, null,
9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
94803595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt    public void clearDnsCache() throws RemoteException {
94903595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt        Parcel data = Parcel.obtain();
95003595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt        data.writeInterfaceToken(IApplicationThread.descriptor);
95103595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt        mRemote.transact(CLEAR_DNS_CACHE_TRANSACTION, data, null,
95203595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt                IBinder.FLAG_ONEWAY);
95303595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt        data.recycle();
95403595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt    }
95503595d01188d88c169e8c9dd51b357fd545e69ccRobert Greenwalt
956434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt    public void setHttpProxy(String proxy, String port, String exclList) throws RemoteException {
957434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt        Parcel data = Parcel.obtain();
958434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt        data.writeInterfaceToken(IApplicationThread.descriptor);
959434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt        data.writeString(proxy);
960434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt        data.writeString(port);
961434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt        data.writeString(exclList);
962434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt        mRemote.transact(SET_HTTP_PROXY_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
963434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt        data.recycle();
964434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt    }
965434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt
9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void processInBackground() throws RemoteException {
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(PROCESS_IN_BACKGROUND_TRANSACTION, data, null,
9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void dumpService(FileDescriptor fd, IBinder token, String[] args)
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            throws RemoteException {
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeFileDescriptor(fd);
9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStringArray(args);
981e17aeb31030cfeed339a39a107912ad5e9178390Dianne Hackborn        mRemote.transact(DUMP_SERVICE_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
98518cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen    public void dumpProvider(FileDescriptor fd, IBinder token, String[] args)
98618cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen            throws RemoteException {
98718cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen        Parcel data = Parcel.obtain();
98818cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen        data.writeInterfaceToken(IApplicationThread.descriptor);
98918cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen        data.writeFileDescriptor(fd);
99018cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen        data.writeStrongBinder(token);
99118cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen        data.writeStringArray(args);
99218cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen        mRemote.transact(DUMP_PROVIDER_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
99318cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen        data.recycle();
99418cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen    }
99518cb28756caf02bf2b2f5e67c68451edaf719b47Marco Nelissen
9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void scheduleRegisteredReceiver(IIntentReceiver receiver, Intent intent,
99720e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            int resultCode, String dataStr, Bundle extras, boolean ordered,
99820e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn            boolean sticky, int sendingUser) throws RemoteException {
9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(receiver.asBinder());
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        intent.writeToParcel(data, 0);
10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(resultCode);
10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeString(dataStr);
10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeBundle(extras);
10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInt(ordered ? 1 : 0);
100768d881cf2d2b252f6f795cd64d43e316a1d736e5Dianne Hackborn        data.writeInt(sticky ? 1 : 0);
100820e809870d8ac1e5b848f2daf51b2272ef89bdfcDianne Hackborn        data.writeInt(sendingUser);
10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_REGISTERED_RECEIVER_TRANSACTION, data, null,
10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleLowMemory() throws RemoteException {
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_LOW_MEMORY_TRANSACTION, data, null,
10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final void scheduleActivityConfigurationChanged(
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            IBinder token) throws RemoteException {
10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Parcel data = Parcel.obtain();
10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.writeStrongBinder(token);
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mRemote.transact(SCHEDULE_ACTIVITY_CONFIGURATION_CHANGED_TRANSACTION, data, null,
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                IBinder.FLAG_ONEWAY);
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        data.recycle();
10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10329c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn    public void profilerControl(boolean start, String path,
10337eabe55db6b113f83c2cefcd06812648927de877Romain Guy            ParcelFileDescriptor fd, int profileType) throws RemoteException {
1034f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        Parcel data = Parcel.obtain();
1035f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.writeInterfaceToken(IApplicationThread.descriptor);
1036f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.writeInt(start ? 1 : 0);
10379a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8Romain Guy        data.writeInt(profileType);
1038f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.writeString(path);
10399c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn        if (fd != null) {
10409c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn            data.writeInt(1);
10419c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn            fd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
10429c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn        } else {
10439c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn            data.writeInt(0);
10449c8dd55a9d829c29a3feee9469d8c2f27a9f5516Dianne Hackborn        }
1045f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        mRemote.transact(PROFILER_CONTROL_TRANSACTION, data, null,
1046f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project                IBinder.FLAG_ONEWAY);
1047f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project        data.recycle();
1048f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2The Android Open Source Project    }
104906de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn
105006de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn    public void setSchedulingGroup(int group) throws RemoteException {
105106de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn        Parcel data = Parcel.obtain();
105206de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
105306de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn        data.writeInt(group);
105406de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn        mRemote.transact(SET_SCHEDULING_GROUP_TRANSACTION, data, null,
105506de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn                IBinder.FLAG_ONEWAY);
105606de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn        data.recycle();
105706de2ea752171f52a4e6e6872cb3a0689e591dcbDianne Hackborn    }
10583025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn
10593025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn    public void getMemoryInfo(Debug.MemoryInfo outInfo) throws RemoteException {
10603025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        Parcel data = Parcel.obtain();
10613025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        Parcel reply = Parcel.obtain();
10623025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
10633025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        mRemote.transact(GET_MEMORY_INFO_TRANSACTION, data, reply, 0);
10643025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        reply.readException();
10653025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        outInfo.readFromParcel(reply);
10663025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        data.recycle();
10673025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn        reply.recycle();
10683025ef332c29e255388f74b2afefe05f64bce07cDianne Hackborn    }
10694416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn
10704416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn    public void dispatchPackageBroadcast(int cmd, String[] packages) throws RemoteException {
10714416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn        Parcel data = Parcel.obtain();
10724416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
10734416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn        data.writeInt(cmd);
10744416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn        data.writeStringArray(packages);
10754416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn        mRemote.transact(DISPATCH_PACKAGE_BROADCAST_TRANSACTION, data, null,
10764416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn                IBinder.FLAG_ONEWAY);
10774416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn        data.recycle();
10784416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn
10794416c3d6e4becd9ed39b89a03db0239c8225a135Dianne Hackborn    }
10809d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn
10819d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn    public void scheduleCrash(String msg) throws RemoteException {
10829d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        Parcel data = Parcel.obtain();
10839d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
10849d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.writeString(msg);
10859d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        mRemote.transact(SCHEDULE_CRASH_TRANSACTION, data, null,
10869d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn                IBinder.FLAG_ONEWAY);
10879d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn        data.recycle();
10889d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn
10899d39d0cb361c5d3bba04a6bacf299be2162a6e92Dianne Hackborn    }
1090824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden
1091824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden    public void dumpHeap(boolean managed, String path,
1092824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            ParcelFileDescriptor fd) throws RemoteException {
1093824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        Parcel data = Parcel.obtain();
1094824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeInterfaceToken(IApplicationThread.descriptor);
1095824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeInt(managed ? 1 : 0);
1096824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.writeString(path);
1097824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        if (fd != null) {
1098824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            data.writeInt(1);
1099824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            fd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
1100824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        } else {
1101824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden            data.writeInt(0);
1102824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        }
1103824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        mRemote.transact(DUMP_HEAP_TRANSACTION, data, null,
1104824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden                IBinder.FLAG_ONEWAY);
1105824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden        data.recycle();
1106824c510752fd6a30cdba5ed7324cb80a5043ce26Andy McFadden    }
1107625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn
110830d7189067524000c738c188c4ff91f84f474d25Dianne Hackborn    public void dumpActivity(FileDescriptor fd, IBinder token, String prefix, String[] args)
1109625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn            throws RemoteException {
1110625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn        Parcel data = Parcel.obtain();
1111625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
1112625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn        data.writeFileDescriptor(fd);
1113625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn        data.writeStrongBinder(token);
111430d7189067524000c738c188c4ff91f84f474d25Dianne Hackborn        data.writeString(prefix);
1115625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn        data.writeStringArray(args);
1116e17aeb31030cfeed339a39a107912ad5e9178390Dianne Hackborn        mRemote.transact(DUMP_ACTIVITY_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
1117625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn        data.recycle();
1118625ac271f80777668f832a344486a6fcdc06d0aeDianne Hackborn    }
111954d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov
112054d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov    public void setCoreSettings(Bundle coreSettings) throws RemoteException {
112154d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov        Parcel data = Parcel.obtain();
112254d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov        data.writeInterfaceToken(IApplicationThread.descriptor);
112354d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov        data.writeBundle(coreSettings);
1124e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        mRemote.transact(SET_CORE_SETTINGS_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
1125e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn    }
1126e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn
1127e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn    public void updatePackageCompatibilityInfo(String pkg, CompatibilityInfo info)
1128e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn            throws RemoteException {
1129e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        Parcel data = Parcel.obtain();
1130e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
1131e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        data.writeString(pkg);
1132e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        info.writeToParcel(data, 0);
1133e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn        mRemote.transact(UPDATE_PACKAGE_COMPATIBILITY_INFO_TRANSACTION, data, null,
1134e2515eebf42c763c0a2d9f873a153711778cfc17Dianne Hackborn                IBinder.FLAG_ONEWAY);
113554d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov    }
1136ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn
1137ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn    public void scheduleTrimMemory(int level) throws RemoteException {
1138ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn        Parcel data = Parcel.obtain();
1139ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
1140ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn        data.writeInt(level);
1141ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn        mRemote.transact(SCHEDULE_TRIM_MEMORY_TRANSACTION, data, null,
1142ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn                IBinder.FLAG_ONEWAY);
1143ce86ba86df61de8b34b226a4eb6c23ec33e866e0Dianne Hackborn    }
11440e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn
1145b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn    public Debug.MemoryInfo dumpMemInfo(FileDescriptor fd, boolean checkin, boolean all,
1146b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn            String[] args) throws RemoteException {
11470e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        Parcel data = Parcel.obtain();
11480e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        Parcel reply = Parcel.obtain();
11490e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
11500e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        data.writeFileDescriptor(fd);
1151b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        data.writeInt(checkin ? 1 : 0);
1152b437e090ec03a2bab10bdfcb9484577a7f34e157Dianne Hackborn        data.writeInt(all ? 1 : 0);
11530e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        data.writeStringArray(args);
11540e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        mRemote.transact(DUMP_MEM_INFO_TRANSACTION, data, reply, 0);
11550e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        reply.readException();
11560e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        Debug.MemoryInfo info = new Debug.MemoryInfo();
11570e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        info.readFromParcel(reply);
11580e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        data.recycle();
11590e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        reply.recycle();
11600e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        return info;
11610e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn    }
11620e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn
11630e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn    public void dumpGfxInfo(FileDescriptor fd, String[] args) throws RemoteException {
11640e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        Parcel data = Parcel.obtain();
11650e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
11660e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        data.writeFileDescriptor(fd);
11670e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        data.writeStringArray(args);
11680e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        mRemote.transact(DUMP_GFX_INFO_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
11690e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn        data.recycle();
11700e3328fbdd3845b0e2bec364e951498eaee6b079Dianne Hackborn    }
11716754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown
11726754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown    public void dumpDbInfo(FileDescriptor fd, String[] args) throws RemoteException {
11736754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown        Parcel data = Parcel.obtain();
11746754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown        data.writeInterfaceToken(IApplicationThread.descriptor);
11756754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown        data.writeFileDescriptor(fd);
11766754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown        data.writeStringArray(args);
11776754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown        mRemote.transact(DUMP_DB_INFO_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
11786754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown        data.recycle();
11796754ba24f12a54b97b3ca1c5d29fc23c15980abeJeff Brown    }
11806ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn
11816ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    public void unstableProviderDied(IBinder provider) throws RemoteException {
11826ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        Parcel data = Parcel.obtain();
11836ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeInterfaceToken(IApplicationThread.descriptor);
11846ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.writeStrongBinder(provider);
11856ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        mRemote.transact(UNSTABLE_PROVIDER_DIED_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
11866ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn        data.recycle();
11876ae8d1821822296df0606c9cd1c46708cc21cb58Dianne Hackborn    }
11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1189