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

Commit 31ad11eb authored by Mike Lockwood's avatar Mike Lockwood
Browse files

UsbDeviceSettingsManager: don't write settings file when not necessary



Change-Id: I48772f71822e3489f9e6c640985055569a656124
Signed-off-by: default avatarMike Lockwood <lockwood@android.com>
parent 7a976a43
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -741,29 +741,39 @@ 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 {
                changed = !packageName.equals(mDevicePreferenceMap.get(filter));
                if (changed) {
                    mDevicePreferenceMap.put(filter, packageName);
                }
           // FIXME - only if changed
            }
            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 {
                changed = !packageName.equals(mAccessoryPreferenceMap.get(filter));
                if (changed) {
                    mAccessoryPreferenceMap.put(filter, packageName);
                }
            // FIXME - only if changed
            }
            if (changed) {
                writeSettingsLocked();
            }
        }
    }

    public void grantDevicePermission(UsbDevice device, int uid) {
        synchronized (mLock) {