Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c18bc28 authored by Matt Casey's avatar Matt Casey Committed by Android Git Automerger
Browse files

am 77ece7b1: Merge "Extend assist context to foreground services"

* commit '77ece7b1':
  Extend assist context to foreground services
parents 38cfa935 77ece7b1
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4228,6 +4228,7 @@ package android.app {
    method public void onCreate();
    method public void onDestroy();
    method public void onLowMemory();
    method public void onProvideAssistData(android.os.Bundle);
    method public void onRebind(android.content.Intent);
    method public deprecated void onStart(android.content.Intent, int);
    method public int onStartCommand(android.content.Intent, int, int);
@@ -6273,6 +6274,8 @@ package android.content {
    field public static final deprecated java.lang.String EXTRA_ALLOW_REPLACE = "android.intent.extra.ALLOW_REPLACE";
    field public static final java.lang.String EXTRA_ASSIST_CONTEXT = "android.intent.extra.ASSIST_CONTEXT";
    field public static final java.lang.String EXTRA_ASSIST_PACKAGE = "android.intent.extra.ASSIST_PACKAGE";
    field public static final java.lang.String EXTRA_ASSIST_SERVICES_CONTEXTS = "android.intent.extra.ASSIST_SERVICES_CONTEXTS";
    field public static final java.lang.String EXTRA_ASSIST_SERVICES_PACKAGES = "android.intent.extra.ASSIST_SERVICES_PACKAGES";
    field public static final java.lang.String EXTRA_BCC = "android.intent.extra.BCC";
    field public static final java.lang.String EXTRA_BUG_REPORT = "android.intent.extra.BUG_REPORT";
    field public static final java.lang.String EXTRA_CC = "android.intent.extra.CC";
@@ -7337,6 +7340,7 @@ package android.content.pm {
    method public void dump(android.util.Printer, java.lang.String);
    field public static final android.os.Parcelable.Creator CREATOR;
    field public static final int FLAG_ISOLATED_PROCESS = 2; // 0x2
    field public static final int FLAG_PROVIDE_ASSIST_DATA = 4; // 0x4
    field public static final int FLAG_SINGLE_USER = 1073741824; // 0x40000000
    field public static final int FLAG_STOP_WITH_TASK = 1; // 0x1
    field public int flags;
+11 −8
Original line number Diff line number Diff line
@@ -1921,20 +1921,21 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
            return true;
        }

        case GET_TOP_ACTIVITY_EXTRAS_TRANSACTION: {
        case GET_ASSIST_CONTEXT_EXTRAS_TRANSACTION: {
            data.enforceInterface(IActivityManager.descriptor);
            int requestType = data.readInt();
            Bundle res = getTopActivityExtras(requestType);
            Bundle res = getAssistContextExtras(requestType);
            reply.writeNoException();
            reply.writeBundle(res);
            return true;
        }

        case REPORT_TOP_ACTIVITY_EXTRAS_TRANSACTION: {
        case REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION: {
            data.enforceInterface(IActivityManager.descriptor);
            IBinder token = data.readStrongBinder();
            Bundle extras = data.readBundle();
            reportTopActivityExtras(token, extras);
            int index = data.readInt();
            reportAssistContextExtras(token, extras, index);
            reply.writeNoException();
            return true;
        }
@@ -4456,12 +4457,12 @@ class ActivityManagerProxy implements IActivityManager
        return res;
    }

    public Bundle getTopActivityExtras(int requestType) throws RemoteException {
    public Bundle getAssistContextExtras(int requestType) throws RemoteException {
        Parcel data = Parcel.obtain();
        Parcel reply = Parcel.obtain();
        data.writeInterfaceToken(IActivityManager.descriptor);
        data.writeInt(requestType);
        mRemote.transact(GET_TOP_ACTIVITY_EXTRAS_TRANSACTION, data, reply, 0);
        mRemote.transact(GET_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0);
        reply.readException();
        Bundle res = reply.readBundle();
        data.recycle();
@@ -4469,13 +4470,15 @@ class ActivityManagerProxy implements IActivityManager
        return res;
    }

    public void reportTopActivityExtras(IBinder token, Bundle extras) throws RemoteException {
    public void reportAssistContextExtras(IBinder token, Bundle extras, int index)
            throws RemoteException {
        Parcel data = Parcel.obtain();
        Parcel reply = Parcel.obtain();
        data.writeInterfaceToken(IActivityManager.descriptor);
        data.writeStrongBinder(token);
        data.writeBundle(extras);
        mRemote.transact(REPORT_TOP_ACTIVITY_EXTRAS_TRANSACTION, data, reply, 0);
        data.writeInt(index);
        mRemote.transact(REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0);
        reply.readException();
        data.recycle();
        reply.recycle();
+18 −11
Original line number Diff line number Diff line
@@ -529,10 +529,11 @@ public final class ActivityThread {
        CompatibilityInfo info;
    }

    static final class RequestActivityExtras {
    static final class RequestAssistContextExtras {
        IBinder activityToken;
        IBinder requestToken;
        int requestType;
        int index;
    }

    private native void dumpGraphicsInfo(FileDescriptor fd);
@@ -1197,13 +1198,14 @@ public final class ActivityThread {
        }

        @Override
        public void requestActivityExtras(IBinder activityToken, IBinder requestToken,
                int requestType) {
            RequestActivityExtras cmd = new RequestActivityExtras();
        public void requestAssistContextExtras(IBinder activityToken, IBinder requestToken,
                int requestType, int index) {
            RequestAssistContextExtras cmd = new RequestAssistContextExtras();
            cmd.activityToken = activityToken;
            cmd.requestToken = requestToken;
            cmd.requestType = requestType;
            queueOrSendMessage(H.REQUEST_ACTIVITY_EXTRAS, cmd);
            cmd.index = index;
            queueOrSendMessage(H.REQUEST_ASSIST_CONTEXT_EXTRAS, cmd);
        }

        private void printRow(PrintWriter pw, String format, Object...objs) {
@@ -1292,7 +1294,7 @@ public final class ActivityThread {
        public static final int TRIM_MEMORY             = 140;
        public static final int DUMP_PROVIDER           = 141;
        public static final int UNSTABLE_PROVIDER_DIED  = 142;
        public static final int REQUEST_ACTIVITY_EXTRAS = 143;
        public static final int REQUEST_ASSIST_CONTEXT_EXTRAS = 143;
        public static final int TRANSLUCENT_CONVERSION_COMPLETE = 144;
        String codeToString(int code) {
            if (DEBUG_MESSAGES) {
@@ -1340,7 +1342,7 @@ public final class ActivityThread {
                    case TRIM_MEMORY: return "TRIM_MEMORY";
                    case DUMP_PROVIDER: return "DUMP_PROVIDER";
                    case UNSTABLE_PROVIDER_DIED: return "UNSTABLE_PROVIDER_DIED";
                    case REQUEST_ACTIVITY_EXTRAS: return "REQUEST_ACTIVITY_EXTRAS";
                    case REQUEST_ASSIST_CONTEXT_EXTRAS: return "REQUEST_ASSIST_CONTEXT_EXTRAS";
                    case TRANSLUCENT_CONVERSION_COMPLETE: return "TRANSLUCENT_CONVERSION_COMPLETE";
                }
            }
@@ -1553,8 +1555,8 @@ public final class ActivityThread {
                case UNSTABLE_PROVIDER_DIED:
                    handleUnstableProviderDied((IBinder)msg.obj, false);
                    break;
                case REQUEST_ACTIVITY_EXTRAS:
                    handleRequestActivityExtras((RequestActivityExtras)msg.obj);
                case REQUEST_ASSIST_CONTEXT_EXTRAS:
                    handleRequestAssistContextExtras((RequestAssistContextExtras)msg.obj);
                    break;
                case TRANSLUCENT_CONVERSION_COMPLETE:
                    handleTranslucentConversionComplete((IBinder)msg.obj, msg.arg1 == 1);
@@ -2275,19 +2277,24 @@ public final class ActivityThread {
        performNewIntents(data.token, data.intents);
    }

    public void handleRequestActivityExtras(RequestActivityExtras cmd) {
    public void handleRequestAssistContextExtras(RequestAssistContextExtras cmd) {
        Bundle data = new Bundle();
        ActivityClientRecord r = mActivities.get(cmd.activityToken);
        if (r != null) {
            r.activity.getApplication().dispatchOnProvideAssistData(r.activity, data);
            r.activity.onProvideAssistData(data);
        } else {
            Service service = mServices.get(cmd.activityToken);
            if (service != null) {
                service.onProvideAssistData(data);
            }
        }
        if (data.isEmpty()) {
            data = null;
        }
        IActivityManager mgr = ActivityManagerNative.getDefault();
        try {
            mgr.reportTopActivityExtras(cmd.requestToken, data);
            mgr.reportAssistContextExtras(cmd.requestToken, data, cmd.index);
        } catch (RemoteException e) {
        }
    }
+8 −5
Original line number Diff line number Diff line
@@ -600,13 +600,14 @@ public abstract class ApplicationThreadNative extends Binder
            return true;
        }

        case REQUEST_ACTIVITY_EXTRAS_TRANSACTION:
        case REQUEST_ASSIST_CONTEXT_EXTRAS_TRANSACTION:
        {
            data.enforceInterface(IApplicationThread.descriptor);
            IBinder activityToken = data.readStrongBinder();
            IBinder requestToken = data.readStrongBinder();
            int requestType = data.readInt();
            requestActivityExtras(activityToken, requestToken, requestType);
            int index = data.readInt();
            requestAssistContextExtras(activityToken, requestToken, requestType, index);
            reply.writeNoException();
            return true;
        }
@@ -1241,14 +1242,16 @@ class ApplicationThreadProxy implements IApplicationThread {
    }

    @Override
    public void requestActivityExtras(IBinder activityToken, IBinder requestToken, int requestType)
            throws RemoteException {
    public void requestAssistContextExtras(IBinder activityToken, IBinder requestToken,
            int requestType, int index) throws RemoteException {
        Parcel data = Parcel.obtain();
        data.writeInterfaceToken(IApplicationThread.descriptor);
        data.writeStrongBinder(activityToken);
        data.writeStrongBinder(requestToken);
        data.writeInt(requestType);
        mRemote.transact(REQUEST_ACTIVITY_EXTRAS_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
        data.writeInt(index);
        mRemote.transact(REQUEST_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, null,
                IBinder.FLAG_ONEWAY);
        data.recycle();
    }

+5 −4
Original line number Diff line number Diff line
@@ -386,9 +386,10 @@ public interface IActivityManager extends IInterface {

    public long inputDispatchingTimedOut(int pid, boolean aboveSystem) throws RemoteException;

    public Bundle getTopActivityExtras(int requestType) throws RemoteException;
    public Bundle getAssistContextExtras(int requestType) throws RemoteException;

    public void reportTopActivityExtras(IBinder token, Bundle extras) throws RemoteException;
    public void reportAssistContextExtras(IBinder token, Bundle extras, int index)
            throws RemoteException;

    public void killUid(int uid, String reason) throws RemoteException;

@@ -662,8 +663,8 @@ public interface IActivityManager extends IInterface {
    int INPUT_DISPATCHING_TIMED_OUT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+158;
    int CLEAR_PENDING_BACKUP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+159;
    int GET_INTENT_FOR_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+160;
    int GET_TOP_ACTIVITY_EXTRAS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+161;
    int REPORT_TOP_ACTIVITY_EXTRAS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+162;
    int GET_ASSIST_CONTEXT_EXTRAS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+161;
    int REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+162;
    int GET_LAUNCHED_FROM_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+163;
    int KILL_UID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+164;
    int SET_USER_IS_MONKEY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+165;
Loading