diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 7d6e54243d89c..a2b6304f5f0a1 100644 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -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); } diff --git a/services/core/java/com/android/server/am/ActivityManagerConstants.java b/services/core/java/com/android/server/am/ActivityManagerConstants.java index b0f296f68a471..6892ef770901d 100644 --- a/services/core/java/com/android/server/am/ActivityManagerConstants.java +++ b/services/core/java/com/android/server/am/ActivityManagerConstants.java @@ -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() {