Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c788541f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "Revert "Defer FGS notifications from legacy apps by default"""

parents 8ce762dd 145b0157
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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?
@@ -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);
    }

+4 −4
Original line number Diff line number Diff line
@@ -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() {