Loading api/current.txt +6 −1 Original line number Diff line number Diff line Loading @@ -3449,6 +3449,7 @@ package android.app { method public boolean onPreparePanel(int, android.view.View, android.view.Menu); method public void onProvideAssistContent(android.app.assist.AssistContent); method public void onProvideAssistData(android.os.Bundle); method public android.net.Uri onProvideReferrer(); method public void onRequestPermissionsResult(int, java.lang.String[], int[]); method protected void onRestart(); method protected void onRestoreInstanceState(android.os.Bundle); Loading Loading @@ -5489,8 +5490,11 @@ package android.app { field public static final int MODE_NIGHT_YES = 2; // 0x2 } public class VoiceInteractor { public final class VoiceInteractor { method public android.app.VoiceInteractor.Request getActiveRequest(java.lang.String); method public android.app.VoiceInteractor.Request[] getActiveRequests(); method public boolean submitRequest(android.app.VoiceInteractor.Request); method public boolean submitRequest(android.app.VoiceInteractor.Request, java.lang.String); method public boolean[] supportsCommands(java.lang.String[]); } Loading Loading @@ -5553,6 +5557,7 @@ package android.app { method public void cancel(); method public android.app.Activity getActivity(); method public android.content.Context getContext(); method public java.lang.String getName(); method public void onAttached(android.app.Activity); method public void onCancel(); method public void onDetached(); api/system-current.txt +6 −1 Original line number Diff line number Diff line Loading @@ -3535,6 +3535,7 @@ package android.app { method public boolean onPreparePanel(int, android.view.View, android.view.Menu); method public void onProvideAssistContent(android.app.assist.AssistContent); method public void onProvideAssistData(android.os.Bundle); method public android.net.Uri onProvideReferrer(); method public void onRequestPermissionsResult(int, java.lang.String[], int[]); method protected void onRestart(); method protected void onRestoreInstanceState(android.os.Bundle); Loading Loading @@ -5585,8 +5586,11 @@ package android.app { field public static final int MODE_NIGHT_YES = 2; // 0x2 } public class VoiceInteractor { public final class VoiceInteractor { method public android.app.VoiceInteractor.Request getActiveRequest(java.lang.String); method public android.app.VoiceInteractor.Request[] getActiveRequests(); method public boolean submitRequest(android.app.VoiceInteractor.Request); method public boolean submitRequest(android.app.VoiceInteractor.Request, java.lang.String); method public boolean[] supportsCommands(java.lang.String[]); } Loading Loading @@ -5649,6 +5653,7 @@ package android.app { method public void cancel(); method public android.app.Activity getActivity(); method public android.content.Context getContext(); method public java.lang.String getName(); method public void onAttached(android.app.Activity); method public void onCancel(); method public void onDetached(); core/java/android/app/Activity.java +18 −0 Original line number Diff line number Diff line Loading @@ -4279,6 +4279,10 @@ public class Activity extends ContextThemeWrapper if (mParent == null) { int result = ActivityManager.START_RETURN_INTENT_TO_CALLER; try { Uri referrer = onProvideReferrer(); if (referrer != null) { intent.putExtra(Intent.EXTRA_REFERRER, referrer); } intent.migrateExtraStreamToClipData(); intent.prepareToLeaveProcess(); result = ActivityManagerNative.getDefault() Loading Loading @@ -4463,6 +4467,10 @@ public class Activity extends ContextThemeWrapper @Override public void startActivityForResult( String who, Intent intent, int requestCode, @Nullable Bundle options) { Uri referrer = onProvideReferrer(); if (referrer != null) { intent.putExtra(Intent.EXTRA_REFERRER, referrer); } Instrumentation.ActivityResult ar = mInstrumentation.execStartActivity( this, mMainThread.getApplicationThread(), mToken, who, Loading Loading @@ -4615,6 +4623,16 @@ public class Activity extends ContextThemeWrapper return null; } /** * Override to generate the desired referrer for the content currently being shown * by the app. The default implementation returns null, meaning the referrer will simply * be the android-app: of the package name of this activity. Return a non-null Uri to * have that supplied as the {@link Intent#EXTRA_REFERRER} of any activities started from it. */ public Uri onProvideReferrer() { return null; } /** * Return the name of the package that invoked this activity. This is who * the data in {@link #setResult setResult()} will be sent to. You can Loading core/java/android/app/ActivityManagerNative.java +9 −2 Original line number Diff line number Diff line Loading @@ -2197,7 +2197,8 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM Bundle extras = data.readBundle(); AssistStructure structure = AssistStructure.CREATOR.createFromParcel(data); AssistContent content = AssistContent.CREATOR.createFromParcel(data); reportAssistContextExtras(token, extras, structure, content); Uri referrer = data.readInt() != 0 ? Uri.CREATOR.createFromParcel(data) : null; reportAssistContextExtras(token, extras, structure, content, referrer); reply.writeNoException(); return true; } Loading Loading @@ -5367,7 +5368,7 @@ class ActivityManagerProxy implements IActivityManager } public void reportAssistContextExtras(IBinder token, Bundle extras, AssistStructure structure, AssistContent content) throws RemoteException { AssistContent content, Uri referrer) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); Loading @@ -5375,6 +5376,12 @@ class ActivityManagerProxy implements IActivityManager data.writeBundle(extras); structure.writeToParcel(data, 0); content.writeToParcel(data, 0); if (referrer != null) { data.writeInt(1); referrer.writeToParcel(data, 0); } else { data.writeInt(0); } mRemote.transact(REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0); reply.readException(); data.recycle(); Loading core/java/android/app/ActivityThread.java +3 −1 Original line number Diff line number Diff line Loading @@ -2572,9 +2572,11 @@ public final class ActivityThread { AssistStructure structure = null; AssistContent content = new AssistContent(); ActivityClientRecord r = mActivities.get(cmd.activityToken); Uri referrer = null; if (r != null) { r.activity.getApplication().dispatchOnProvideAssistData(r.activity, data); r.activity.onProvideAssistData(data); referrer = r.activity.onProvideReferrer(); if (cmd.requestType == ActivityManager.ASSIST_CONTEXT_FULL) { structure = new AssistStructure(r.activity); Intent activityIntent = r.activity.getIntent(); Loading @@ -2597,7 +2599,7 @@ public final class ActivityThread { } IActivityManager mgr = ActivityManagerNative.getDefault(); try { mgr.reportAssistContextExtras(cmd.requestToken, data, structure, content); mgr.reportAssistContextExtras(cmd.requestToken, data, structure, content, referrer); } catch (RemoteException e) { } } Loading Loading
api/current.txt +6 −1 Original line number Diff line number Diff line Loading @@ -3449,6 +3449,7 @@ package android.app { method public boolean onPreparePanel(int, android.view.View, android.view.Menu); method public void onProvideAssistContent(android.app.assist.AssistContent); method public void onProvideAssistData(android.os.Bundle); method public android.net.Uri onProvideReferrer(); method public void onRequestPermissionsResult(int, java.lang.String[], int[]); method protected void onRestart(); method protected void onRestoreInstanceState(android.os.Bundle); Loading Loading @@ -5489,8 +5490,11 @@ package android.app { field public static final int MODE_NIGHT_YES = 2; // 0x2 } public class VoiceInteractor { public final class VoiceInteractor { method public android.app.VoiceInteractor.Request getActiveRequest(java.lang.String); method public android.app.VoiceInteractor.Request[] getActiveRequests(); method public boolean submitRequest(android.app.VoiceInteractor.Request); method public boolean submitRequest(android.app.VoiceInteractor.Request, java.lang.String); method public boolean[] supportsCommands(java.lang.String[]); } Loading Loading @@ -5553,6 +5557,7 @@ package android.app { method public void cancel(); method public android.app.Activity getActivity(); method public android.content.Context getContext(); method public java.lang.String getName(); method public void onAttached(android.app.Activity); method public void onCancel(); method public void onDetached();
api/system-current.txt +6 −1 Original line number Diff line number Diff line Loading @@ -3535,6 +3535,7 @@ package android.app { method public boolean onPreparePanel(int, android.view.View, android.view.Menu); method public void onProvideAssistContent(android.app.assist.AssistContent); method public void onProvideAssistData(android.os.Bundle); method public android.net.Uri onProvideReferrer(); method public void onRequestPermissionsResult(int, java.lang.String[], int[]); method protected void onRestart(); method protected void onRestoreInstanceState(android.os.Bundle); Loading Loading @@ -5585,8 +5586,11 @@ package android.app { field public static final int MODE_NIGHT_YES = 2; // 0x2 } public class VoiceInteractor { public final class VoiceInteractor { method public android.app.VoiceInteractor.Request getActiveRequest(java.lang.String); method public android.app.VoiceInteractor.Request[] getActiveRequests(); method public boolean submitRequest(android.app.VoiceInteractor.Request); method public boolean submitRequest(android.app.VoiceInteractor.Request, java.lang.String); method public boolean[] supportsCommands(java.lang.String[]); } Loading Loading @@ -5649,6 +5653,7 @@ package android.app { method public void cancel(); method public android.app.Activity getActivity(); method public android.content.Context getContext(); method public java.lang.String getName(); method public void onAttached(android.app.Activity); method public void onCancel(); method public void onDetached();
core/java/android/app/Activity.java +18 −0 Original line number Diff line number Diff line Loading @@ -4279,6 +4279,10 @@ public class Activity extends ContextThemeWrapper if (mParent == null) { int result = ActivityManager.START_RETURN_INTENT_TO_CALLER; try { Uri referrer = onProvideReferrer(); if (referrer != null) { intent.putExtra(Intent.EXTRA_REFERRER, referrer); } intent.migrateExtraStreamToClipData(); intent.prepareToLeaveProcess(); result = ActivityManagerNative.getDefault() Loading Loading @@ -4463,6 +4467,10 @@ public class Activity extends ContextThemeWrapper @Override public void startActivityForResult( String who, Intent intent, int requestCode, @Nullable Bundle options) { Uri referrer = onProvideReferrer(); if (referrer != null) { intent.putExtra(Intent.EXTRA_REFERRER, referrer); } Instrumentation.ActivityResult ar = mInstrumentation.execStartActivity( this, mMainThread.getApplicationThread(), mToken, who, Loading Loading @@ -4615,6 +4623,16 @@ public class Activity extends ContextThemeWrapper return null; } /** * Override to generate the desired referrer for the content currently being shown * by the app. The default implementation returns null, meaning the referrer will simply * be the android-app: of the package name of this activity. Return a non-null Uri to * have that supplied as the {@link Intent#EXTRA_REFERRER} of any activities started from it. */ public Uri onProvideReferrer() { return null; } /** * Return the name of the package that invoked this activity. This is who * the data in {@link #setResult setResult()} will be sent to. You can Loading
core/java/android/app/ActivityManagerNative.java +9 −2 Original line number Diff line number Diff line Loading @@ -2197,7 +2197,8 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM Bundle extras = data.readBundle(); AssistStructure structure = AssistStructure.CREATOR.createFromParcel(data); AssistContent content = AssistContent.CREATOR.createFromParcel(data); reportAssistContextExtras(token, extras, structure, content); Uri referrer = data.readInt() != 0 ? Uri.CREATOR.createFromParcel(data) : null; reportAssistContextExtras(token, extras, structure, content, referrer); reply.writeNoException(); return true; } Loading Loading @@ -5367,7 +5368,7 @@ class ActivityManagerProxy implements IActivityManager } public void reportAssistContextExtras(IBinder token, Bundle extras, AssistStructure structure, AssistContent content) throws RemoteException { AssistContent content, Uri referrer) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); Loading @@ -5375,6 +5376,12 @@ class ActivityManagerProxy implements IActivityManager data.writeBundle(extras); structure.writeToParcel(data, 0); content.writeToParcel(data, 0); if (referrer != null) { data.writeInt(1); referrer.writeToParcel(data, 0); } else { data.writeInt(0); } mRemote.transact(REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0); reply.readException(); data.recycle(); Loading
core/java/android/app/ActivityThread.java +3 −1 Original line number Diff line number Diff line Loading @@ -2572,9 +2572,11 @@ public final class ActivityThread { AssistStructure structure = null; AssistContent content = new AssistContent(); ActivityClientRecord r = mActivities.get(cmd.activityToken); Uri referrer = null; if (r != null) { r.activity.getApplication().dispatchOnProvideAssistData(r.activity, data); r.activity.onProvideAssistData(data); referrer = r.activity.onProvideReferrer(); if (cmd.requestType == ActivityManager.ASSIST_CONTEXT_FULL) { structure = new AssistStructure(r.activity); Intent activityIntent = r.activity.getIntent(); Loading @@ -2597,7 +2599,7 @@ public final class ActivityThread { } IActivityManager mgr = ActivityManagerNative.getDefault(); try { mgr.reportAssistContextExtras(cmd.requestToken, data, structure, content); mgr.reportAssistContextExtras(cmd.requestToken, data, structure, content, referrer); } catch (RemoteException e) { } } Loading