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

Commit df4a7ad5 authored by Philip P. Moltmann's avatar Philip P. Moltmann Committed by android-build-merger
Browse files

Merge \\"Always reload print services\\" into nyc-mr1-dev am: fd28d8eb

am: 14a4ec65

Change-Id: I4d6afaca275e5596d601c707eeea928d4f089932
parents b657b9b7 14a4ec65
Loading
Loading
Loading
Loading
+9 −45
Original line number Diff line number Diff line
@@ -779,10 +779,9 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks,

    public void updateIfNeededLocked() {
        throwIfDestroyedLocked();
        if (readConfigurationLocked()) {
        readConfigurationLocked();
        onConfigurationChangedLocked();
    }
    }

    public void destroyLocked() {
        throwIfDestroyedLocked();
@@ -856,14 +855,12 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks,
        pw.println();
    }

    private boolean readConfigurationLocked() {
        boolean somethingChanged = false;
        somethingChanged |= readInstalledPrintServicesLocked();
        somethingChanged |= readDisabledPrintServicesLocked();
        return somethingChanged;
    private void readConfigurationLocked() {
        readInstalledPrintServicesLocked();
        readDisabledPrintServicesLocked();
    }

    private boolean readInstalledPrintServicesLocked() {
    private void readInstalledPrintServicesLocked() {
        Set<PrintServiceInfo> tempPrintServices = new HashSet<PrintServiceInfo>();

        List<ResolveInfo> installedServices = mContext.getPackageManager()
@@ -887,39 +884,8 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks,
            tempPrintServices.add(PrintServiceInfo.create(installedService, mContext));
        }

        boolean someServiceChanged = false;

        if (tempPrintServices.size() != mInstalledServices.size()) {
            someServiceChanged = true;
        } else {
            for (PrintServiceInfo newService: tempPrintServices) {
                final int oldServiceIndex = mInstalledServices.indexOf(newService);
                if (oldServiceIndex < 0) {
                    someServiceChanged = true;
                    break;
                }
                // PrintServiceInfo#equals compares only the id not all members,
                // so we are also comparing the members coming from meta-data.
                PrintServiceInfo oldService = mInstalledServices.get(oldServiceIndex);
                if (!TextUtils.equals(oldService.getAddPrintersActivityName(),
                            newService.getAddPrintersActivityName())
                        || !TextUtils.equals(oldService.getAdvancedOptionsActivityName(),
                                newService.getAdvancedOptionsActivityName())
                        || !TextUtils.equals(oldService.getSettingsActivityName(),
                                newService.getSettingsActivityName())) {
                    someServiceChanged = true;
                    break;
                }
            }
        }

        if (someServiceChanged) {
        mInstalledServices.clear();
        mInstalledServices.addAll(tempPrintServices);
            return true;
        }

        return false;
    }

    /**
@@ -959,16 +925,14 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks,
     *
     * @return true if the state changed.
     */
    private boolean readDisabledPrintServicesLocked() {
    private void readDisabledPrintServicesLocked() {
        Set<ComponentName> tempDisabledServiceNameSet = new HashSet<ComponentName>();
        readPrintServicesFromSettingLocked(Settings.Secure.DISABLED_PRINT_SERVICES,
                tempDisabledServiceNameSet);
        if (!tempDisabledServiceNameSet.equals(mDisabledServices)) {
            mDisabledServices.clear();
            mDisabledServices.addAll(tempDisabledServiceNameSet);
            return true;
        }
        return false;
    }

    private void readPrintServicesFromSettingLocked(String setting,