Loading services/core/java/com/android/server/am/ActiveServices.java +7 −1 Original line number Diff line number Diff line Loading @@ -1700,12 +1700,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? Loading Loading @@ -1760,6 +1761,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); } Loading services/core/java/com/android/server/am/ActivityManagerConstants.java +4 −4 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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() { Loading Loading
services/core/java/com/android/server/am/ActiveServices.java +7 −1 Original line number Diff line number Diff line Loading @@ -1700,12 +1700,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? Loading Loading @@ -1760,6 +1761,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); } Loading
services/core/java/com/android/server/am/ActivityManagerConstants.java +4 −4 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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() { Loading