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

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

Merge "Prevent whitelisted apps from blocking and silencing"

parents 15e53a3f dcee38d0
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ public class AppNotificationSettings extends NotificationSettingsBase {
    }

    private void setupBlock() {
        if (mAppRow.systemApp) {
        if (mAppRow.systemApp && !mAppRow.banned) {
            setVisible(mBlock, false);
        } else {
            mBlock.setDisabledByAdmin(mSuspendedAppsAdmin);
@@ -243,6 +243,9 @@ public class AppNotificationSettings extends NotificationSettingsBase {
            setVisible(category, !banned);
        }
        setVisible(mBadge, !banned);
        if (mAppRow.systemApp && !mAppRow.banned) {
            setVisible(mBlock, false);
        }
    }

    private Comparator<NotificationChannel> mChannelComparator =
+40 −29
Original line number Diff line number Diff line
@@ -134,7 +134,9 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
        }
        mLights.setDisabledByAdmin(mSuspendedAppsAdmin);
        mVibrate.setDisabledByAdmin(mSuspendedAppsAdmin);
        if (mImportance.isEnabled()) {
            mImportance.setDisabledByAdmin(mSuspendedAppsAdmin);
        }
        mPriority.setDisabledByAdmin(mSuspendedAppsAdmin);
        mVisibilityOverride.setDisabledByAdmin(mSuspendedAppsAdmin);
    }
@@ -185,6 +187,10 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
    }

    protected void setupBlockAndImportance() {
        if (mAppRow.systemApp && mChannel.getImportance() != NotificationManager.IMPORTANCE_NONE) {
            setVisible(mBlock, false);
        } else {
            mBlock.setEnabled(mAppRow.systemApp);
            mBlock.setDisabledByAdmin(mSuspendedAppsAdmin);
            mBlock.setChecked(mChannel.getImportance() == NotificationManager.IMPORTANCE_NONE);
            mBlock.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@@ -200,6 +206,7 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
                    return true;
                }
            });
        }
        mBadge.setDisabledByAdmin(mSuspendedAppsAdmin);
        mBadge.setEnabled(mAppRow.showBadge);
        mBadge.setChecked(mChannel.canShowBadge());
@@ -217,7 +224,8 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
        mImportance.setDisabledByAdmin(mSuspendedAppsAdmin);
        final int numImportances = IMPORTANCE_HIGH - IMPORTANCE_MIN + 1;
        List<String> summaries = new ArrayList<>();
        List<String> values = new ArrayList<>();;
        List<String> values = new ArrayList<>();
        ;
        for (int i = 0; i < numImportances; i++) {
            int importance = i + 1;
            summaries.add(getImportanceSummary(importance));
@@ -232,7 +240,9 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
        mImportance.setEntries(summaries.toArray(new String[0]));
        mImportance.setValue(String.valueOf(mChannel.getImportance()));
        mImportance.setSummary("%s");

        if (mAppRow.lockedImportance) {
            mImportance.setEnabled(false);
        } else {
            mImportance.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -245,6 +255,7 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
                }
            });
        }
    }

    protected void setupPriorityPref(boolean priority) {
        mPriority.setDisabledByAdmin(mSuspendedAppsAdmin);
+2 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ public class NotificationBackend {
            int N = nonBlockablePkgs.length;
            for (int i = 0; i < N; i++) {
                if (app.packageName.equals(nonBlockablePkgs[i])) {
                    row.systemApp = true;
                    row.systemApp = row.lockedImportance = true;
                }
            }
        }
@@ -152,6 +152,7 @@ public class NotificationBackend {
        public boolean banned;
        public boolean first;  // first app in section
        public boolean systemApp;
        public boolean lockedImportance;
        public boolean showBadge;
        public int userId;
    }
+3 −1
Original line number Diff line number Diff line
@@ -148,7 +148,9 @@ abstract public class NotificationSettingsBase extends SettingsPreferenceFragmen
        }
        mSuspendedAppsAdmin = RestrictedLockUtils.checkIfApplicationIsSuspended(
                mContext, mPkg, mUserId);
        if (mBlock.isEnabled()) {
            mBlock.setDisabledByAdmin(mSuspendedAppsAdmin);
        }
        mBadge.setDisabledByAdmin(mSuspendedAppsAdmin);
    }