diff options
author | Mike Lockwood <lockwood@android.com> | 2011-03-01 11:02:34 -0800 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2011-03-01 11:03:19 -0800 |
commit | 31ad11eb44a1c5316ffb478314f4e5c55bf09d13 (patch) | |
tree | 56769fe93132706911c9b320e01905281141662f /services | |
parent | 7a976a43700a17a29a0671c8456e41ec0a1086b9 (diff) | |
download | frameworks_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.java | 26 |
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(); } } |