Merge "Defer FGS notifications from legacy apps by default"
This commit is contained in:
committed by
Android (Google) Code Review
commit
1124d6541d
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user