From e210468aa0adfdd1937b7d5cd424d9c50e69d933 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Wed, 8 Nov 2017 17:31:14 -0800 Subject: [PATCH] Move assist data receiver interface to accessible namespace - Also adding bundle options to pass to the recents component that is launched through startRecentsActivity() Bug: 67864419 Test: Everything builds, existing tests pass Test: go/wm-smoke Change-Id: Ie9ee472efb132add69b8bc10798dc5214d1fa1e2 --- Android.mk | 2 +- core/java/android/app/IActivityManager.aidl | 4 ++-- .../internal => android}/app/IAssistDataReceiver.aidl | 2 +- core/java/android/view/IWindowManager.aidl | 2 +- .../java/com/android/server/autofill/Session.java | 2 +- .../com/android/server/am/ActivityManagerService.java | 9 +++++---- .../com/android/server/am/AssistDataReceiverProxy.java | 2 +- .../java/com/android/server/am/AssistDataRequester.java | 2 +- .../java/com/android/server/wm/WindowManagerService.java | 2 +- .../src/com/android/server/am/RecentTasksTest.java | 3 ++- 10 files changed, 16 insertions(+), 14 deletions(-) rename core/java/{com/android/internal => android}/app/IAssistDataReceiver.aidl (96%) diff --git a/Android.mk b/Android.mk index b84742501eb6a..7d0559acbe45e 100644 --- a/Android.mk +++ b/Android.mk @@ -79,6 +79,7 @@ LOCAL_SRC_FILES += \ core/java/android/app/IAlarmManager.aidl \ core/java/android/app/IAppTask.aidl \ core/java/android/app/IApplicationThread.aidl \ + core/java/android/app/IAssistDataReceiver.aidl \ core/java/android/app/ITaskStackListener.aidl \ core/java/android/app/IBackupAgent.aidl \ core/java/android/app/IEphemeralResolver.aidl \ @@ -383,7 +384,6 @@ LOCAL_SRC_FILES += \ core/java/android/speech/tts/ITextToSpeechService.aidl \ core/java/com/android/internal/app/IAppOpsCallback.aidl \ core/java/com/android/internal/app/IAppOpsService.aidl \ - core/java/com/android/internal/app/IAssistDataReceiver.aidl \ core/java/com/android/internal/app/IBatteryStats.aidl \ core/java/com/android/internal/app/ISoundTriggerService.aidl \ core/java/com/android/internal/app/IVoiceInteractionManagerService.aidl \ diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl index bbc90c81fae8e..4fc649e0443e1 100644 --- a/core/java/android/app/IActivityManager.aidl +++ b/core/java/android/app/IActivityManager.aidl @@ -22,6 +22,7 @@ import android.app.ContentProviderHolder; import android.app.IApplicationThread; import android.app.IActivityController; import android.app.IAppTask; +import android.app.IAssistDataReceiver; import android.app.IInstrumentationWatcher; import android.app.IProcessObserver; import android.app.IServiceConnection; @@ -63,7 +64,6 @@ import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; import android.os.StrictMode; import android.service.voice.IVoiceInteractionSession; -import com.android.internal.app.IAssistDataReceiver; import com.android.internal.app.IVoiceInteractor; import com.android.internal.os.IResultReceiver; import com.android.internal.policy.IKeyguardDismissCallback; @@ -423,7 +423,7 @@ interface IActivityManager { int startAssistantActivity(in String callingPackage, int callingPid, int callingUid, in Intent intent, in String resolvedType, in Bundle options, int userId); int startRecentsActivity(in IAssistDataReceiver assistDataReceiver, in Bundle options, - int userId); + in Bundle activityOptions, int userId); int startActivityFromRecents(int taskId, in Bundle options); Bundle getActivityOptions(in IBinder token); List getAppTasks(in String callingPackage); diff --git a/core/java/com/android/internal/app/IAssistDataReceiver.aidl b/core/java/android/app/IAssistDataReceiver.aidl similarity index 96% rename from core/java/com/android/internal/app/IAssistDataReceiver.aidl rename to core/java/android/app/IAssistDataReceiver.aidl index 9c9ffef0066ff..2d5daf97a1c46 100644 --- a/core/java/com/android/internal/app/IAssistDataReceiver.aidl +++ b/core/java/android/app/IAssistDataReceiver.aidl @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.internal.app; +package android.app; import android.graphics.Bitmap; import android.os.Bundle; diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl index 65bde49520d3b..29032a7bbc736 100644 --- a/core/java/android/view/IWindowManager.aidl +++ b/core/java/android/view/IWindowManager.aidl @@ -16,13 +16,13 @@ package android.view; -import com.android.internal.app.IAssistDataReceiver; import com.android.internal.os.IResultReceiver; import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethodClient; import com.android.internal.policy.IKeyguardDismissCallback; import com.android.internal.policy.IShortcutService; +import android.app.IAssistDataReceiver; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.graphics.Bitmap; diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java index 5823ab107adc0..af4668a63c031 100644 --- a/services/autofill/java/com/android/server/autofill/Session.java +++ b/services/autofill/java/com/android/server/autofill/Session.java @@ -36,6 +36,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.app.Activity; import android.app.ActivityManager; +import android.app.IAssistDataReceiver; import android.app.assist.AssistStructure; import android.app.assist.AssistStructure.AutofillOverlay; import android.app.assist.AssistStructure.ViewNode; @@ -76,7 +77,6 @@ import android.view.autofill.IAutoFillManagerClient; import android.view.autofill.IAutofillWindowPresenter; import com.android.internal.R; -import com.android.internal.app.IAssistDataReceiver; import com.android.internal.annotations.GuardedBy; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 5bef8cbc08177..3356fd136fc13 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -222,6 +222,7 @@ import android.app.Dialog; import android.app.IActivityController; import android.app.IActivityManager; import android.app.IApplicationThread; +import android.app.IAssistDataReceiver; import android.app.IInstrumentationWatcher; import android.app.INotificationManager; import android.app.IProcessObserver; @@ -373,7 +374,6 @@ import com.android.internal.app.AssistUtils; import com.android.internal.app.DumpHeapActivity; import com.android.internal.app.IAppOpsCallback; import com.android.internal.app.IAppOpsService; -import com.android.internal.app.IAssistDataReceiver; import com.android.internal.app.IVoiceInteractor; import com.android.internal.app.ProcessMap; import com.android.internal.app.SystemUserHomeActivity; @@ -4710,8 +4710,8 @@ public class ActivityManagerService extends IActivityManager.Stub } @Override - public int startRecentsActivity(IAssistDataReceiver assistDataReceiver, Bundle bOptions, - int userId) { + public int startRecentsActivity(IAssistDataReceiver assistDataReceiver, Bundle options, + Bundle activityOptions, int userId) { if (!mRecentTasks.isCallerRecents(Binder.getCallingUid())) { String msg = "Permission Denial: startRecentsActivity() from pid=" + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid() @@ -4745,8 +4745,9 @@ public class ActivityManagerService extends IActivityManager.Stub final Intent intent = new Intent(); intent.setFlags(FLAG_ACTIVITY_NEW_TASK); intent.setComponent(recentsComponent); + intent.putExtras(options); return mActivityStarter.startActivityMayWait(null, recentsUid, recentsPackage, - intent, null, null, null, null, null, 0, 0, null, null, null, bOptions, + intent, null, null, null, null, null, 0, 0, null, null, null, activityOptions, false, userId, null, "startRecentsActivity"); } } finally { diff --git a/services/core/java/com/android/server/am/AssistDataReceiverProxy.java b/services/core/java/com/android/server/am/AssistDataReceiverProxy.java index f22fe37c51ca2..9991ce174e073 100644 --- a/services/core/java/com/android/server/am/AssistDataReceiverProxy.java +++ b/services/core/java/com/android/server/am/AssistDataReceiverProxy.java @@ -19,13 +19,13 @@ package com.android.server.am; import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM; import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME; +import android.app.IAssistDataReceiver; import android.graphics.Bitmap; import android.os.Binder; import android.os.Bundle; import android.os.RemoteException; import android.util.Log; -import com.android.internal.app.IAssistDataReceiver; import com.android.server.am.AssistDataRequester.AssistDataRequesterCallbacks; /** diff --git a/services/core/java/com/android/server/am/AssistDataRequester.java b/services/core/java/com/android/server/am/AssistDataRequester.java index a8f829f395354..9f7621f2e78e5 100644 --- a/services/core/java/com/android/server/am/AssistDataRequester.java +++ b/services/core/java/com/android/server/am/AssistDataRequester.java @@ -23,6 +23,7 @@ import static android.app.AppOpsManager.OP_NONE; import android.app.AppOpsManager; import android.app.IActivityManager; +import android.app.IAssistDataReceiver; import android.content.Context; import android.graphics.Bitmap; import android.os.Bundle; @@ -31,7 +32,6 @@ import android.os.RemoteException; import android.view.IWindowManager; import com.android.internal.annotations.GuardedBy; -import com.android.internal.app.IAssistDataReceiver; import com.android.internal.logging.MetricsLogger; import java.io.PrintWriter; diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index df51be18936dc..449741f657cef 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -124,6 +124,7 @@ import android.app.ActivityManagerInternal; import android.app.ActivityThread; import android.app.AppOpsManager; import android.app.IActivityManager; +import android.app.IAssistDataReceiver; import android.content.BroadcastReceiver; import android.content.ClipData; import android.content.ContentResolver; @@ -226,7 +227,6 @@ import android.view.animation.Animation; import android.view.inputmethod.InputMethodManagerInternal; import com.android.internal.R; -import com.android.internal.app.IAssistDataReceiver; import com.android.internal.graphics.SfVsyncFrameCallbackProvider; import com.android.internal.os.IResultReceiver; import com.android.internal.policy.IKeyguardDismissCallback; diff --git a/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java b/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java index f5ea60ff5929a..d1d5c07eadbc7 100644 --- a/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java +++ b/services/tests/servicestests/src/com/android/server/am/RecentTasksTest.java @@ -428,7 +428,8 @@ public class RecentTasksTest extends ActivityTestsBase { assertSecurityException(expectCallable, () -> mService.getTaskDescription(0)); assertSecurityException(expectCallable, () -> mService.cancelTaskWindowTransition(0)); assertSecurityException(expectCallable, () -> mService.cancelTaskThumbnailTransition(0)); - assertSecurityException(expectCallable, () -> mService.startRecentsActivity(null, null, 0)); + assertSecurityException(expectCallable, () -> mService.startRecentsActivity(null, null, + null, 0)); } private void testGetTasksApis(boolean expectCallable) {