summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2011-03-01 12:00:09 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-03-01 12:00:09 -0800
commit6ebc6bde63d3d1591a1fea72e56487388c827aa6 (patch)
tree4ede99f62f7528f561ebda1503f2666cf4a82f2b /services
parentb4948d4d3ff9e4fa42fbfcfa1d11ce08d42eec31 (diff)
parent31ad11eb44a1c5316ffb478314f4e5c55bf09d13 (diff)
downloadframeworks_base-6ebc6bde63d3d1591a1fea72e56487388c827aa6.zip
frameworks_base-6ebc6bde63d3d1591a1fea72e56487388c827aa6.tar.gz
frameworks_base-6ebc6bde63d3d1591a1fea72e56487388c827aa6.tar.bz2
Merge "UsbDeviceSettingsManager: don't write settings file when not necessary"
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/usb/UsbDeviceSettingsManager.java26
1 files changed, 18 insertions, 8 deletions
diff --git a/services/java/com/android/server/usb/UsbDeviceSettingsManager.java b/services/java/com/android/server/usb/UsbDeviceSettingsManager.java
index 55138a7..9a96e7f 100644
--- a/services/java/com/android/server/usb/UsbDeviceSettingsManager.java
+++ b/services/java/com/android/server/usb/UsbDeviceSettingsManager.java
@@ -741,27 +741,37 @@ class UsbDeviceSettingsManager {
public void setDevicePackage(UsbDevice device, String packageName) {
DeviceFilter filter = new DeviceFilter(device);
+ boolean changed = false;
synchronized (mLock) {
if (packageName == null) {
- mDevicePreferenceMap.remove(filter);
+ changed = (mDevicePreferenceMap.remove(filter) != null);
} else {
- mDevicePreferenceMap.put(filter, packageName);
+ changed = !packageName.equals(mDevicePreferenceMap.get(filter));
+ if (changed) {
+ mDevicePreferenceMap.put(filter, packageName);
+ }
+ }
+ if (changed) {
+ writeSettingsLocked();
}
- // FIXME - only if changed
- writeSettingsLocked();
}
}
public void setAccessoryPackage(UsbAccessory accessory, String packageName) {
AccessoryFilter filter = new AccessoryFilter(accessory);
+ boolean changed = false;
synchronized (mLock) {
if (packageName == null) {
- mAccessoryPreferenceMap.remove(filter);
+ changed = (mAccessoryPreferenceMap.remove(filter) != null);
} else {
- mAccessoryPreferenceMap.put(filter, packageName);
+ changed = !packageName.equals(mAccessoryPreferenceMap.get(filter));
+ if (changed) {
+ mAccessoryPreferenceMap.put(filter, packageName);
+ }
+ }
+ if (changed) {
+ writeSettingsLocked();
}
- // FIXME - only if changed
- writeSettingsLocked();
}
}