Loading core/java/android/app/ActivityManagerNative.java +4 −2 Original line number Diff line number Diff line Loading @@ -2418,8 +2418,9 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM Bundle receiverExtras = data.readBundle(); IBinder activityToken = data.readStrongBinder(); boolean focused = data.readInt() == 1; boolean newSessionId = data.readInt() == 1; boolean res = requestAssistContextExtras(requestType, receiver, receiverExtras, activityToken, focused); activityToken, focused, newSessionId); reply.writeNoException(); reply.writeInt(res ? 1 : 0); return true; Loading Loading @@ -6104,7 +6105,7 @@ class ActivityManagerProxy implements IActivityManager public boolean requestAssistContextExtras(int requestType, IResultReceiver receiver, Bundle receiverExtras, IBinder activityToken, boolean focused) throws RemoteException { IBinder activityToken, boolean focused, boolean newSessionId) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); Loading @@ -6113,6 +6114,7 @@ class ActivityManagerProxy implements IActivityManager data.writeBundle(receiverExtras); data.writeStrongBinder(activityToken); data.writeInt(focused ? 1 : 0); data.writeInt(newSessionId ? 1 : 0); mRemote.transact(REQUEST_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0); reply.readException(); boolean res = reply.readInt() != 0; Loading core/java/android/app/ActivityThread.java +16 −7 Original line number Diff line number Diff line Loading @@ -206,7 +206,8 @@ public final class ActivityThread { ActivityClientRecord mNewActivities = null; // Number of activities that are currently visible on-screen. int mNumVisibleActivities = 0; WeakReference<AssistStructure> mLastAssistStructure; ArrayList<WeakReference<AssistStructure>> mLastAssistStructures = new ArrayList<>(); private int mLastSessionId; final ArrayMap<IBinder, Service> mServices = new ArrayMap<>(); AppBindData mBoundApplication; Profiler mProfiler; Loading Loading @@ -622,6 +623,7 @@ public final class ActivityThread { IBinder activityToken; IBinder requestToken; int requestType; int sessionId; } static final class ActivityConfigChangeData { Loading Loading @@ -1183,11 +1185,12 @@ public final class ActivityThread { @Override public void requestAssistContextExtras(IBinder activityToken, IBinder requestToken, int requestType) { int requestType, int sessionId) { RequestAssistContextExtras cmd = new RequestAssistContextExtras(); cmd.activityToken = activityToken; cmd.requestToken = requestToken; cmd.requestType = requestType; cmd.sessionId = sessionId; sendMessage(H.REQUEST_ASSIST_CONTEXT_EXTRAS, cmd); } Loading Loading @@ -1804,6 +1807,7 @@ public final class ActivityThread { } private Configuration mMainThreadConfig = new Configuration(); Configuration applyConfigCompatMainThread(int displayDensity, Configuration config, CompatibilityInfo compat) { if (config == null) { Loading Loading @@ -2785,11 +2789,16 @@ public final class ActivityThread { } public void handleRequestAssistContextExtras(RequestAssistContextExtras cmd) { if (mLastAssistStructure != null) { AssistStructure structure = mLastAssistStructure.get(); if (mLastSessionId != cmd.sessionId) { // Clear the existing structures mLastSessionId = cmd.sessionId; for (int i = mLastAssistStructures.size() - 1; i >= 0; i--) { AssistStructure structure = mLastAssistStructures.get(i).get(); if (structure != null) { structure.clearSendChannel(); } mLastAssistStructures.remove(i); } } Bundle data = new Bundle(); AssistStructure structure = null; Loading Loading @@ -2820,7 +2829,7 @@ public final class ActivityThread { if (structure == null) { structure = new AssistStructure(); } mLastAssistStructure = new WeakReference<>(structure); mLastAssistStructures.add(new WeakReference<>(structure)); IActivityManager mgr = ActivityManagerNative.getDefault(); try { mgr.reportAssistContextExtras(cmd.requestToken, data, structure, content, referrer); Loading core/java/android/app/ApplicationThreadNative.java +4 −2 Original line number Diff line number Diff line Loading @@ -621,7 +621,8 @@ public abstract class ApplicationThreadNative extends Binder IBinder activityToken = data.readStrongBinder(); IBinder requestToken = data.readStrongBinder(); int requestType = data.readInt(); requestAssistContextExtras(activityToken, requestToken, requestType); int sessionId = data.readInt(); requestAssistContextExtras(activityToken, requestToken, requestType, sessionId); reply.writeNoException(); return true; } Loading Loading @@ -1377,12 +1378,13 @@ class ApplicationThreadProxy implements IApplicationThread { @Override public void requestAssistContextExtras(IBinder activityToken, IBinder requestToken, int requestType) throws RemoteException { int requestType, int sessionId) throws RemoteException { Parcel data = Parcel.obtain(); data.writeInterfaceToken(IApplicationThread.descriptor); data.writeStrongBinder(activityToken); data.writeStrongBinder(requestToken); data.writeInt(requestType); data.writeInt(sessionId); mRemote.transact(REQUEST_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); data.recycle(); Loading core/java/android/app/IActivityManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -524,7 +524,7 @@ public interface IActivityManager extends IInterface { public boolean requestAssistContextExtras(int requestType, IResultReceiver receiver, Bundle receiverExtras, IBinder activityToken, boolean focused) throws RemoteException; IBinder activityToken, boolean focused, boolean newSessionId) throws RemoteException; public void reportAssistContextExtras(IBinder token, Bundle extras, AssistStructure structure, AssistContent content, Uri referrer) throws RemoteException; Loading core/java/android/app/IApplicationThread.java +2 −2 Original line number Diff line number Diff line Loading @@ -143,8 +143,8 @@ public interface IApplicationThread extends IInterface { void dumpGfxInfo(FileDescriptor fd, String[] args) throws RemoteException; void dumpDbInfo(FileDescriptor fd, String[] args) throws RemoteException; void unstableProviderDied(IBinder provider) throws RemoteException; void requestAssistContextExtras(IBinder activityToken, IBinder requestToken, int requestType) throws RemoteException; void requestAssistContextExtras(IBinder activityToken, IBinder requestToken, int requestType, int sessionId) throws RemoteException; void scheduleTranslucentConversionComplete(IBinder token, boolean timeout) throws RemoteException; void scheduleOnNewActivityOptions(IBinder token, ActivityOptions options) Loading Loading
core/java/android/app/ActivityManagerNative.java +4 −2 Original line number Diff line number Diff line Loading @@ -2418,8 +2418,9 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM Bundle receiverExtras = data.readBundle(); IBinder activityToken = data.readStrongBinder(); boolean focused = data.readInt() == 1; boolean newSessionId = data.readInt() == 1; boolean res = requestAssistContextExtras(requestType, receiver, receiverExtras, activityToken, focused); activityToken, focused, newSessionId); reply.writeNoException(); reply.writeInt(res ? 1 : 0); return true; Loading Loading @@ -6104,7 +6105,7 @@ class ActivityManagerProxy implements IActivityManager public boolean requestAssistContextExtras(int requestType, IResultReceiver receiver, Bundle receiverExtras, IBinder activityToken, boolean focused) throws RemoteException { IBinder activityToken, boolean focused, boolean newSessionId) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); Loading @@ -6113,6 +6114,7 @@ class ActivityManagerProxy implements IActivityManager data.writeBundle(receiverExtras); data.writeStrongBinder(activityToken); data.writeInt(focused ? 1 : 0); data.writeInt(newSessionId ? 1 : 0); mRemote.transact(REQUEST_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0); reply.readException(); boolean res = reply.readInt() != 0; Loading
core/java/android/app/ActivityThread.java +16 −7 Original line number Diff line number Diff line Loading @@ -206,7 +206,8 @@ public final class ActivityThread { ActivityClientRecord mNewActivities = null; // Number of activities that are currently visible on-screen. int mNumVisibleActivities = 0; WeakReference<AssistStructure> mLastAssistStructure; ArrayList<WeakReference<AssistStructure>> mLastAssistStructures = new ArrayList<>(); private int mLastSessionId; final ArrayMap<IBinder, Service> mServices = new ArrayMap<>(); AppBindData mBoundApplication; Profiler mProfiler; Loading Loading @@ -622,6 +623,7 @@ public final class ActivityThread { IBinder activityToken; IBinder requestToken; int requestType; int sessionId; } static final class ActivityConfigChangeData { Loading Loading @@ -1183,11 +1185,12 @@ public final class ActivityThread { @Override public void requestAssistContextExtras(IBinder activityToken, IBinder requestToken, int requestType) { int requestType, int sessionId) { RequestAssistContextExtras cmd = new RequestAssistContextExtras(); cmd.activityToken = activityToken; cmd.requestToken = requestToken; cmd.requestType = requestType; cmd.sessionId = sessionId; sendMessage(H.REQUEST_ASSIST_CONTEXT_EXTRAS, cmd); } Loading Loading @@ -1804,6 +1807,7 @@ public final class ActivityThread { } private Configuration mMainThreadConfig = new Configuration(); Configuration applyConfigCompatMainThread(int displayDensity, Configuration config, CompatibilityInfo compat) { if (config == null) { Loading Loading @@ -2785,11 +2789,16 @@ public final class ActivityThread { } public void handleRequestAssistContextExtras(RequestAssistContextExtras cmd) { if (mLastAssistStructure != null) { AssistStructure structure = mLastAssistStructure.get(); if (mLastSessionId != cmd.sessionId) { // Clear the existing structures mLastSessionId = cmd.sessionId; for (int i = mLastAssistStructures.size() - 1; i >= 0; i--) { AssistStructure structure = mLastAssistStructures.get(i).get(); if (structure != null) { structure.clearSendChannel(); } mLastAssistStructures.remove(i); } } Bundle data = new Bundle(); AssistStructure structure = null; Loading Loading @@ -2820,7 +2829,7 @@ public final class ActivityThread { if (structure == null) { structure = new AssistStructure(); } mLastAssistStructure = new WeakReference<>(structure); mLastAssistStructures.add(new WeakReference<>(structure)); IActivityManager mgr = ActivityManagerNative.getDefault(); try { mgr.reportAssistContextExtras(cmd.requestToken, data, structure, content, referrer); Loading
core/java/android/app/ApplicationThreadNative.java +4 −2 Original line number Diff line number Diff line Loading @@ -621,7 +621,8 @@ public abstract class ApplicationThreadNative extends Binder IBinder activityToken = data.readStrongBinder(); IBinder requestToken = data.readStrongBinder(); int requestType = data.readInt(); requestAssistContextExtras(activityToken, requestToken, requestType); int sessionId = data.readInt(); requestAssistContextExtras(activityToken, requestToken, requestType, sessionId); reply.writeNoException(); return true; } Loading Loading @@ -1377,12 +1378,13 @@ class ApplicationThreadProxy implements IApplicationThread { @Override public void requestAssistContextExtras(IBinder activityToken, IBinder requestToken, int requestType) throws RemoteException { int requestType, int sessionId) throws RemoteException { Parcel data = Parcel.obtain(); data.writeInterfaceToken(IApplicationThread.descriptor); data.writeStrongBinder(activityToken); data.writeStrongBinder(requestToken); data.writeInt(requestType); data.writeInt(sessionId); mRemote.transact(REQUEST_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); data.recycle(); Loading
core/java/android/app/IActivityManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -524,7 +524,7 @@ public interface IActivityManager extends IInterface { public boolean requestAssistContextExtras(int requestType, IResultReceiver receiver, Bundle receiverExtras, IBinder activityToken, boolean focused) throws RemoteException; IBinder activityToken, boolean focused, boolean newSessionId) throws RemoteException; public void reportAssistContextExtras(IBinder token, Bundle extras, AssistStructure structure, AssistContent content, Uri referrer) throws RemoteException; Loading
core/java/android/app/IApplicationThread.java +2 −2 Original line number Diff line number Diff line Loading @@ -143,8 +143,8 @@ public interface IApplicationThread extends IInterface { void dumpGfxInfo(FileDescriptor fd, String[] args) throws RemoteException; void dumpDbInfo(FileDescriptor fd, String[] args) throws RemoteException; void unstableProviderDied(IBinder provider) throws RemoteException; void requestAssistContextExtras(IBinder activityToken, IBinder requestToken, int requestType) throws RemoteException; void requestAssistContextExtras(IBinder activityToken, IBinder requestToken, int requestType, int sessionId) throws RemoteException; void scheduleTranslucentConversionComplete(IBinder token, boolean timeout) throws RemoteException; void scheduleOnNewActivityOptions(IBinder token, ActivityOptions options) Loading