diff options
14 files changed, 49 insertions, 57 deletions
diff --git a/core/api/test-current.txt b/core/api/test-current.txt index b8c32a4aa7ef..caddf5aea324 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -317,9 +317,6 @@ package android.app { } public class ComponentOptions { - field public static final int MODE_BACKGROUND_ACTIVITY_START_ALLOWED = 1; // 0x1 - field public static final int MODE_BACKGROUND_ACTIVITY_START_DENIED = 2; // 0x2 - field public static final int MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED = 0; // 0x0 } public class DownloadManager { diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java index 2a2c5f05f122..e094ac61b500 100644 --- a/core/java/android/app/ActivityOptions.java +++ b/core/java/android/app/ActivityOptions.java @@ -93,15 +93,30 @@ public class ActivityOptions extends ComponentOptions { */ public static final String EXTRA_USAGE_TIME_REPORT_PACKAGES = "android.usage_time_packages"; - /** No explicit value chosen. The system will decide whether to grant privileges. */ - public static final int MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED = - ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED; - /** Allow the {@link PendingIntent} to use the background activity start privileges. */ - public static final int MODE_BACKGROUND_ACTIVITY_START_ALLOWED = - ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED; - /** Deny the {@link PendingIntent} to use the background activity start privileges. */ - public static final int MODE_BACKGROUND_ACTIVITY_START_DENIED = - ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_DENIED; + /** Enumeration of background activity start modes. + * + * These define if an app wants to grant it's background activity start privileges to a + * {@link PendingIntent}. + * @hide + */ + @Retention(RetentionPolicy.SOURCE) + @IntDef(prefix = {"MODE_BACKGROUND_ACTIVITY_START_"}, value = { + MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED, + MODE_BACKGROUND_ACTIVITY_START_ALLOWED, + MODE_BACKGROUND_ACTIVITY_START_DENIED}) + public @interface BackgroundActivityStartMode {} + /** + * No explicit value chosen. The system will decide whether to grant privileges. + */ + public static final int MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED = 0; + /** + * Allow the {@link PendingIntent} to use the background activity start privileges. + */ + public static final int MODE_BACKGROUND_ACTIVITY_START_ALLOWED = 1; + /** + * Deny the {@link PendingIntent} to use the background activity start privileges. + */ + public static final int MODE_BACKGROUND_ACTIVITY_START_DENIED = 2; /** * The package name that created the options. diff --git a/core/java/android/app/BroadcastOptions.java b/core/java/android/app/BroadcastOptions.java index 1b5b0fc5d917..60d622dd78c6 100644 --- a/core/java/android/app/BroadcastOptions.java +++ b/core/java/android/app/BroadcastOptions.java @@ -16,6 +16,8 @@ package android.app; +import static android.app.ActivityOptions.BackgroundActivityStartMode; + import android.annotation.CurrentTimeMillisLong; import android.annotation.FlaggedApi; import android.annotation.IntDef; @@ -1132,7 +1134,8 @@ public class BroadcastOptions extends ComponentOptions { @SystemApi @NonNull @Override // to narrow down the return type - public BroadcastOptions setPendingIntentBackgroundActivityStartMode(int state) { + public BroadcastOptions setPendingIntentBackgroundActivityStartMode( + @BackgroundActivityStartMode int state) { super.setPendingIntentBackgroundActivityStartMode(state); return this; } diff --git a/core/java/android/app/ComponentOptions.java b/core/java/android/app/ComponentOptions.java index ce16ddf5c05f..397477d72a9a 100644 --- a/core/java/android/app/ComponentOptions.java +++ b/core/java/android/app/ComponentOptions.java @@ -16,16 +16,17 @@ package android.app; -import android.annotation.IntDef; +import static android.app.ActivityOptions.BackgroundActivityStartMode; +import static android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED; +import static android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_DENIED; +import static android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED; + import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.annotation.TestApi; import android.os.Bundle; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - /** * Base class for {@link ActivityOptions} and {@link BroadcastOptions}. * @hide @@ -56,32 +57,6 @@ public class ComponentOptions { private @Nullable Boolean mPendingIntentBalAllowed = null; private boolean mPendingIntentBalAllowedByPermission = false; - /** @hide */ - @Retention(RetentionPolicy.SOURCE) - @IntDef(prefix = {"MODE_BACKGROUND_ACTIVITY_START_"}, value = { - MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED, - MODE_BACKGROUND_ACTIVITY_START_ALLOWED, - MODE_BACKGROUND_ACTIVITY_START_DENIED}) - public @interface BackgroundActivityStartMode {} - /** - * No explicit value chosen. The system will decide whether to grant privileges. - * @hide - */ - @TestApi - public static final int MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED = 0; - /** - * Allow the {@link PendingIntent} to use the background activity start privileges. - * @hide - */ - @TestApi - public static final int MODE_BACKGROUND_ACTIVITY_START_ALLOWED = 1; - /** - * Deny the {@link PendingIntent} to use the background activity start privileges. - * @hide - */ - @TestApi - public static final int MODE_BACKGROUND_ACTIVITY_START_DENIED = 2; - ComponentOptions() { } diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt index e8a84449566d..7f8103e63684 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/DetailDialog.kt @@ -18,7 +18,7 @@ package com.android.systemui.controls.ui import android.app.Activity import android.app.ActivityOptions -import android.app.ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED +import android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED import android.app.Dialog import android.app.PendingIntent import android.content.ComponentName diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataManager.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataManager.kt index 6fc22ea60a9e..865c49e1d817 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataManager.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataManager.kt @@ -17,6 +17,7 @@ package com.android.systemui.media.controls.domain.pipeline import android.annotation.SuppressLint +import android.app.ActivityOptions import android.app.BroadcastOptions import android.app.Notification import android.app.Notification.EXTRA_SUBSTITUTE_APP_NAME @@ -1272,7 +1273,7 @@ class MediaDataManager( val options = BroadcastOptions.makeBasic() options.setInteractive(true) options.setPendingIntentBackgroundActivityStartMode( - BroadcastOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED + ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED ) intent.send(options.toBundle()) true diff --git a/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/view/MediaProjectionRecentsViewController.kt b/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/view/MediaProjectionRecentsViewController.kt index a811065fdc65..e1741c73d453 100644 --- a/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/view/MediaProjectionRecentsViewController.kt +++ b/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/view/MediaProjectionRecentsViewController.kt @@ -18,7 +18,7 @@ package com.android.systemui.mediaprojection.appselector.view import android.app.ActivityOptions import android.app.ActivityOptions.LaunchCookie -import android.app.ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED +import android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED import android.app.IActivityTaskManager import android.graphics.Rect import android.view.LayoutInflater diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/OverlayActionChip.java b/packages/SystemUI/src/com/android/systemui/screenshot/OverlayActionChip.java index 0588fe2bba82..30f5e8b50bf4 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/OverlayActionChip.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/OverlayActionChip.java @@ -18,6 +18,7 @@ package com.android.systemui.screenshot; import static java.util.Objects.requireNonNull; +import android.app.ActivityOptions; import android.app.BroadcastOptions; import android.app.PendingIntent; import android.content.Context; @@ -100,7 +101,7 @@ public class OverlayActionChip extends FrameLayout { BroadcastOptions options = BroadcastOptions.makeBasic(); options.setInteractive(true); options.setPendingIntentBackgroundActivityStartMode( - BroadcastOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED); + ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED); intent.send(options.toBundle()); finisher.run(); } catch (PendingIntent.CanceledException e) { diff --git a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java index f498520f219b..1a399341f12c 100644 --- a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java +++ b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java @@ -20,6 +20,7 @@ import static com.android.systemui.wallet.ui.WalletCardCarousel.CARD_ANIM_ALPHA_ import static com.android.systemui.wallet.ui.WalletCardCarousel.CARD_ANIM_ALPHA_DURATION; import android.annotation.Nullable; +import android.app.ActivityOptions; import android.app.BroadcastOptions; import android.app.PendingIntent; import android.content.Context; @@ -40,8 +41,8 @@ import android.widget.TextView; import com.android.internal.annotations.VisibleForTesting; import com.android.settingslib.Utils; -import com.android.systemui.res.R; import com.android.systemui.classifier.FalsingCollector; +import com.android.systemui.res.R; import java.util.List; @@ -308,7 +309,7 @@ public class WalletView extends FrameLayout implements WalletCardCarousel.OnCard BroadcastOptions options = BroadcastOptions.makeBasic(); options.setInteractive(true); options.setPendingIntentBackgroundActivityStartMode( - BroadcastOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED); + ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED); walletCard.getPendingIntent().send(options.toBundle()); } catch (PendingIntent.CanceledException e) { Log.w(TAG, "Error sending pending intent for wallet card."); diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java index 3f9e989a5bba..9b0fec2c757b 100644 --- a/services/core/java/com/android/server/pm/LauncherAppsService.java +++ b/services/core/java/com/android/server/pm/LauncherAppsService.java @@ -22,8 +22,8 @@ import static android.app.AppOpsManager.MODE_ALLOWED; import static android.app.AppOpsManager.MODE_IGNORED; import static android.app.AppOpsManager.OP_ARCHIVE_ICON_OVERLAY; import static android.app.AppOpsManager.OP_UNARCHIVAL_CONFIRMATION; -import static android.app.ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED; -import static android.app.ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED; +import static android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED; +import static android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED; import static android.app.PendingIntent.FLAG_IMMUTABLE; import static android.app.PendingIntent.FLAG_MUTABLE; import static android.app.PendingIntent.FLAG_UPDATE_CURRENT; diff --git a/services/core/java/com/android/server/pm/PackageArchiver.java b/services/core/java/com/android/server/pm/PackageArchiver.java index 2b20bfd7a7c2..ef8453dcee67 100644 --- a/services/core/java/com/android/server/pm/PackageArchiver.java +++ b/services/core/java/com/android/server/pm/PackageArchiver.java @@ -21,7 +21,7 @@ import static android.app.ActivityManager.START_CLASS_NOT_FOUND; import static android.app.ActivityManager.START_PERMISSION_DENIED; import static android.app.AppOpsManager.MODE_ALLOWED; import static android.app.AppOpsManager.MODE_IGNORED; -import static android.app.ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_DENIED; +import static android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_DENIED; import static android.content.pm.ArchivedActivityInfo.bytesFromBitmap; import static android.content.pm.ArchivedActivityInfo.drawableToBitmap; import static android.content.pm.PackageInstaller.EXTRA_UNARCHIVE_STATUS; diff --git a/services/core/java/com/android/server/wearable/WearableSensingManagerService.java b/services/core/java/com/android/server/wearable/WearableSensingManagerService.java index 5f6ffd988c84..8742ab1dd95b 100644 --- a/services/core/java/com/android/server/wearable/WearableSensingManagerService.java +++ b/services/core/java/com/android/server/wearable/WearableSensingManagerService.java @@ -21,8 +21,8 @@ import static android.provider.DeviceConfig.NAMESPACE_WEARABLE_SENSING; import android.Manifest; import android.annotation.NonNull; import android.annotation.UserIdInt; +import android.app.ActivityOptions; import android.app.BroadcastOptions; -import android.app.ComponentOptions; import android.app.PendingIntent; import android.app.ambientcontext.AmbientContextEvent; import android.app.wearable.IWearableSensingManager; @@ -353,7 +353,7 @@ public class WearableSensingManagerService extends dataRequest); BroadcastOptions options = BroadcastOptions.makeBasic(); options.setPendingIntentBackgroundActivityStartMode( - ComponentOptions.MODE_BACKGROUND_ACTIVITY_START_DENIED); + ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_DENIED); mDataRequestRateLimiter.noteEvent( userId, RATE_LIMITER_PACKAGE_NAME, RATE_LIMITER_TAG); final long previousCallingIdentity = Binder.clearCallingIdentity(); diff --git a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java index fdae53f59ad4..4e28384c20be 100644 --- a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java +++ b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java @@ -21,7 +21,7 @@ import static android.app.ActivityManager.PROCESS_STATE_NONEXISTENT; import static android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED; import static android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_DENIED; import static android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_SYSTEM_DEFINED; -import static android.app.ComponentOptions.BackgroundActivityStartMode; +import static android.app.ActivityOptions.BackgroundActivityStartMode; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE; diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java index 6132ee3c89c4..173a1b693d87 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java @@ -74,7 +74,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; @@ -86,9 +85,9 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.notNull; import android.app.ActivityOptions; +import android.app.ActivityOptions.BackgroundActivityStartMode; import android.app.AppOpsManager; import android.app.BackgroundStartPrivileges; -import android.app.ComponentOptions.BackgroundActivityStartMode; import android.app.IApplicationThread; import android.app.PictureInPictureParams; import android.content.ComponentName; |