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

Commit ffc7647e authored by Julia Reynolds's avatar Julia Reynolds Committed by Android (Google) Code Review
Browse files

Merge "Get rid of unnecessary policy file saves" into qt-dev

parents a105253e 996c7c13
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1281,7 +1281,6 @@ public class NotificationManagerService extends SystemService {
                }

                mHandler.scheduleOnPackageChanged(removingPackage, changeUserId, pkgList, uidList);
                handleSavePolicyFile();
            }
        }
    };
@@ -6264,13 +6263,16 @@ public class NotificationManagerService extends SystemService {

    private void handleOnPackageChanged(boolean removingPackage, int changeUserId,
            String[] pkgList, int[] uidList) {
        boolean preferencesChanged = removingPackage;
        mListeners.onPackagesChanged(removingPackage, pkgList, uidList);
        mAssistants.onPackagesChanged(removingPackage, pkgList, uidList);
        mConditionProviders.onPackagesChanged(removingPackage, pkgList, uidList);
        mPreferencesHelper.onPackagesChanged(
        preferencesChanged |= mPreferencesHelper.onPackagesChanged(
                removingPackage, changeUserId, pkgList, uidList);
        if (preferencesChanged) {
            handleSavePolicyFile();
        }
    }

    protected class WorkerHandler extends Handler
    {
+15 −10
Original line number Diff line number Diff line
@@ -334,33 +334,35 @@ public class PreferencesHelper implements RankingConfig {
        return true;
    }

    private void deleteDefaultChannelIfNeededLocked(PackagePreferences r) throws
    private boolean deleteDefaultChannelIfNeededLocked(PackagePreferences r) throws
            PackageManager.NameNotFoundException {
        if (!r.channels.containsKey(NotificationChannel.DEFAULT_CHANNEL_ID)) {
            // Not present
            return;
            return false;
        }

        if (shouldHaveDefaultChannel(r)) {
            // Keep the default channel until upgraded.
            return;
            return false;
        }

        // Remove Default Channel.
        r.channels.remove(NotificationChannel.DEFAULT_CHANNEL_ID);

        return true;
    }

    private void createDefaultChannelIfNeededLocked(PackagePreferences r) throws
    private boolean createDefaultChannelIfNeededLocked(PackagePreferences r) throws
            PackageManager.NameNotFoundException {
        if (r.channels.containsKey(NotificationChannel.DEFAULT_CHANNEL_ID)) {
            r.channels.get(NotificationChannel.DEFAULT_CHANNEL_ID).setName(mContext.getString(
                    com.android.internal.R.string.default_notification_channel_label));
            return;
            return false;
        }

        if (!shouldHaveDefaultChannel(r)) {
            // Keep the default channel until upgraded.
            return;
            return false;
        }

        // Create Default Channel
@@ -381,6 +383,8 @@ public class PreferencesHelper implements RankingConfig {
            channel.lockFields(NotificationChannel.USER_LOCKED_VISIBILITY);
        }
        r.channels.put(channel.getId(), channel);

        return true;
    }

    public void writeXml(XmlSerializer out, boolean forBackup, int userId) throws IOException {
@@ -1687,10 +1691,10 @@ public class PreferencesHelper implements RankingConfig {
        }
    }

    public void onPackagesChanged(boolean removingPackage, int changeUserId, String[] pkgList,
    public boolean onPackagesChanged(boolean removingPackage, int changeUserId, String[] pkgList,
            int[] uidList) {
        if (pkgList == null || pkgList.length == 0) {
            return; // nothing to do
            return false; // nothing to do
        }
        boolean updated = false;
        if (removingPackage) {
@@ -1727,8 +1731,8 @@ public class PreferencesHelper implements RankingConfig {
                        PackagePreferences fullPackagePreferences = getPackagePreferencesLocked(pkg,
                                mPm.getPackageUidAsUser(pkg, changeUserId));
                        if (fullPackagePreferences != null) {
                            createDefaultChannelIfNeededLocked(fullPackagePreferences);
                            deleteDefaultChannelIfNeededLocked(fullPackagePreferences);
                            updated |= createDefaultChannelIfNeededLocked(fullPackagePreferences);
                            updated |= deleteDefaultChannelIfNeededLocked(fullPackagePreferences);
                        }
                    }
                } catch (PackageManager.NameNotFoundException e) {
@@ -1739,6 +1743,7 @@ public class PreferencesHelper implements RankingConfig {
        if (updated) {
            updateConfig();
        }
        return updated;
    }

    public void clearData(String pkg, int uid) {