Merge "Always reload print services" into nyc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
fd28d8ebd1
@@ -764,9 +764,8 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks,
|
||||
|
||||
public void updateIfNeededLocked() {
|
||||
throwIfDestroyedLocked();
|
||||
if (readConfigurationLocked()) {
|
||||
onConfigurationChangedLocked();
|
||||
}
|
||||
readConfigurationLocked();
|
||||
onConfigurationChangedLocked();
|
||||
}
|
||||
|
||||
public void destroyLocked() {
|
||||
@@ -841,14 +840,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()
|
||||
@@ -872,39 +869,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;
|
||||
mInstalledServices.clear();
|
||||
mInstalledServices.addAll(tempPrintServices);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -944,16 +910,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,
|
||||
|
||||
Reference in New Issue
Block a user