Merge "Defer FGS notifications from legacy apps by default"

This commit is contained in:
TreeHugger Robot
2020-12-15 19:58:45 +00:00
committed by Android (Google) Code Review
2 changed files with 11 additions and 5 deletions

View File

@@ -1672,12 +1672,13 @@ public final class ActiveServices {
// TODO: remove as part of fixing b/173627642
@SuppressWarnings("AndroidFrameworkCompatChange")
private void postFgsNotificationLocked(ServiceRecord r) {
final boolean isLegacyApp = (r.appInfo.targetSdkVersion < Build.VERSION_CODES.S);
boolean showNow = !mAm.mConstants.mFlagFgsNotificationDeferralEnabled;
if (!showNow) {
// Legacy apps' FGS notifications are not deferred unless the relevant
// DeviceConfig element has been set
showNow = mAm.mConstants.mFlagFgsNotificationDeferralApiGated
&& r.appInfo.targetSdkVersion < Build.VERSION_CODES.S;
&& isLegacyApp;
}
if (!showNow) {
// is the notification such that it should show right away?
@@ -1732,6 +1733,11 @@ public final class ActiveServices {
Slog.d(TAG_SERVICE, "FGS " + r
+ " notification in " + (when - now) + " ms");
}
if (isLegacyApp) {
Slog.i(TAG_SERVICE, "Deferring FGS notification in legacy app "
+ r.appInfo.packageName + "/" + UserHandle.formatUid(r.appInfo.uid)
+ " : " + r.foregroundNoti);
}
mAm.mHandler.postAtTime(mPostDeferredFGSNotifications, when);
}

View File

@@ -370,9 +370,9 @@ final class ActivityManagerConstants extends ContentObserver {
volatile boolean mFlagFgsNotificationDeferralEnabled = true;
// Restrict FGS notification deferral policy to only those apps that target
// API version S or higher. Enabled by default; set to "false" to defer FGS
// notifications from legacy apps as well.
volatile boolean mFlagFgsNotificationDeferralApiGated = true;
// API version S or higher. Disabled by default; set to "true" to force
// legacy app FGS notifications to display immediately in all cases.
volatile boolean mFlagFgsNotificationDeferralApiGated = false;
// Time in milliseconds to defer FGS notifications after their transition to
// the foreground state.
@@ -806,7 +806,7 @@ final class ActivityManagerConstants extends ContentObserver {
mFlagFgsNotificationDeferralApiGated = DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
KEY_DEFERRED_FGS_NOTIFICATIONS_API_GATED,
/*default value*/ true);
/*default value*/ false);
}
private void updateFgsNotificationDeferralInterval() {