summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2011-03-01 11:02:34 -0800
committerMike Lockwood <lockwood@android.com>2011-03-01 11:03:19 -0800
commit31ad11eb44a1c5316ffb478314f4e5c55bf09d13 (patch)
tree56769fe93132706911c9b320e01905281141662f /services
parent7a976a43700a17a29a0671c8456e41ec0a1086b9 (diff)
downloadframeworks_base-31ad11eb44a1c5316ffb478314f4e5c55bf09d13.zip
frameworks_base-31ad11eb44a1c5316ffb478314f4e5c55bf09d13.tar.gz
frameworks_base-31ad11eb44a1c5316ffb478314f4e5c55bf09d13.tar.bz2
UsbDeviceSettingsManager: don't write settings file when not necessary
Change-Id: I48772f71822e3489f9e6c640985055569a656124 Signed-off-by: Mike Lockwood <lockwood@android.com>
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();
}
}