Cleanup background activity starts for release.
This removes the parts of the feature that were only needed in beta
releases:
- Toast when a start is or would be blocked.
- Configurable whitelist of exempt apps.
- Global setting to disable.
Not to be submitted until after beta 5 is cut.
Bug: 131747138
Test: atest BackgroundActivityLaunchTest
Test: atest RootWindowContainerTests
Test: atest WmTests:ActivityStarterTests
Test: atest CtsWindowManagerDeviceTestCases:ActivityStarterTests
Test: atest CtsAppTestCases:.ServiceTest
Change-Id: I3d8b9c72c8fac86b93ac57a8a1988f4133043af8
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java
index fb18569..9873a95 100644
--- a/services/core/java/com/android/server/wm/ActivityStarter.java
+++ b/services/core/java/com/android/server/wm/ActivityStarter.java
@@ -101,7 +101,6 @@
import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.content.res.Configuration;
-import android.content.res.Resources;
import android.graphics.Rect;
import android.os.Binder;
import android.os.Bundle;
@@ -118,9 +117,7 @@
import android.util.EventLog;
import android.util.Pools.SynchronizedPool;
import android.util.Slog;
-import android.widget.Toast;
-import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.HeavyWeightSwitcherActivity;
import com.android.internal.app.IVoiceInteractor;
@@ -1087,12 +1084,6 @@
+ " allowed because SYSTEM_ALERT_WINDOW permission is granted.");
return false;
}
- // don't abort if the callingPackage is temporarily whitelisted
- if (mService.isPackageNameWhitelistedForBgActivityStarts(callingPackage)) {
- Slog.w(TAG, "Background activity start for " + callingPackage
- + " temporarily whitelisted. This will not be supported in future Q builds.");
- return false;
- }
// anything that has fallen through would currently be aborted
Slog.w(TAG, "Background activity start [callingPackage: " + callingPackage
+ "; callingUid: " + callingUid
@@ -1117,18 +1108,6 @@
return true;
}
- // TODO: remove this toast after feature development is done
- void showBackgroundActivityBlockedToast(boolean abort, String callingPackage) {
- final Resources res = mService.mContext.getResources();
- final String toastMsg = res.getString(abort
- ? R.string.activity_starter_block_bg_activity_starts_enforcing
- : R.string.activity_starter_block_bg_activity_starts_permissive,
- callingPackage);
- mService.mUiHandler.post(() -> {
- Toast.makeText(mService.mContext, toastMsg, Toast.LENGTH_LONG).show();
- });
- }
-
/**
* Creates a launch intent for the given auxiliary resolution data.
*/
@@ -1509,7 +1488,6 @@
private boolean handleBackgroundActivityAbort(ActivityRecord r) {
// TODO(b/131747138): Remove toast and refactor related code in Q release.
boolean abort = !mService.isBackgroundActivityStartsEnabled();
- showBackgroundActivityBlockedToast(abort, r.launchedFromPackage);
if (!abort) {
return false;
}
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 7863756..ea86f29 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -2393,9 +2393,7 @@
null /* intent */, "moveTaskToFront");
if (starter.shouldAbortBackgroundActivityStart(callingUid, callingPid, callingPackage, -1,
-1, callerApp, null, false, null)) {
- boolean abort = !isBackgroundActivityStartsEnabled();
- starter.showBackgroundActivityBlockedToast(abort, callingPackage);
- if (abort) {
+ if (!isBackgroundActivityStartsEnabled()) {
return;
}
}
@@ -5426,13 +5424,6 @@
return mAmInternal.isBackgroundActivityStartsEnabled();
}
- boolean isPackageNameWhitelistedForBgActivityStarts(@Nullable String packageName) {
- if (packageName == null) {
- return false;
- }
- return mAmInternal.isPackageNameWhitelistedForBgActivityStarts(packageName);
- }
-
void enableScreenAfterBoot(boolean booted) {
EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_ENABLE_SCREEN,
SystemClock.uptimeMillis());
diff --git a/services/core/java/com/android/server/wm/AppTaskImpl.java b/services/core/java/com/android/server/wm/AppTaskImpl.java
index 78f1e69..1eb7455 100644
--- a/services/core/java/com/android/server/wm/AppTaskImpl.java
+++ b/services/core/java/com/android/server/wm/AppTaskImpl.java
@@ -118,9 +118,7 @@
null /* intent */, "moveToFront");
if (starter.shouldAbortBackgroundActivityStart(callingUid, callingPid,
callingPackage, -1, -1, callerApp, null, false, null)) {
- boolean abort = !mService.isBackgroundActivityStartsEnabled();
- starter.showBackgroundActivityBlockedToast(abort, callingPackage);
- if (abort) {
+ if (!mService.isBackgroundActivityStartsEnabled()) {
return;
}
}