Loading services/midi/java/com/android/server/midi/MidiService.java +9 −7 Original line number Diff line number Diff line Loading @@ -126,8 +126,8 @@ public class MidiService extends IMidiManager.Stub { // This client's PID private final int mPid; // List of all receivers for this client private final ArrayList<IMidiDeviceListener> mListeners = new ArrayList<IMidiDeviceListener>(); private final HashMap<IBinder, IMidiDeviceListener> mListeners = new HashMap<IBinder, IMidiDeviceListener>(); // List of all device connections for this client private final HashMap<IBinder, DeviceConnection> mDeviceConnections = new HashMap<IBinder, DeviceConnection>(); Loading @@ -143,11 +143,13 @@ public class MidiService extends IMidiManager.Stub { } public void addListener(IMidiDeviceListener listener) { mListeners.add(listener); // Use asBinder() so that we can match it in removeListener(). // The listener proxy objects themselves do not match. mListeners.put(listener.asBinder(), listener); } public void removeListener(IMidiDeviceListener listener) { mListeners.remove(listener); mListeners.remove(listener.asBinder()); if (mListeners.size() == 0 && mDeviceConnections.size() == 0) { close(); } Loading Loading @@ -184,7 +186,7 @@ public class MidiService extends IMidiManager.Stub { MidiDeviceInfo deviceInfo = device.getDeviceInfo(); try { for (IMidiDeviceListener listener : mListeners) { for (IMidiDeviceListener listener : mListeners.values()) { listener.onDeviceAdded(deviceInfo); } } catch (RemoteException e) { Loading @@ -198,7 +200,7 @@ public class MidiService extends IMidiManager.Stub { MidiDeviceInfo deviceInfo = device.getDeviceInfo(); try { for (IMidiDeviceListener listener : mListeners) { for (IMidiDeviceListener listener : mListeners.values()) { listener.onDeviceRemoved(deviceInfo); } } catch (RemoteException e) { Loading @@ -211,7 +213,7 @@ public class MidiService extends IMidiManager.Stub { if (!device.isUidAllowed(mUid)) return; try { for (IMidiDeviceListener listener : mListeners) { for (IMidiDeviceListener listener : mListeners.values()) { listener.onDeviceStatusChanged(status); } } catch (RemoteException e) { Loading Loading
services/midi/java/com/android/server/midi/MidiService.java +9 −7 Original line number Diff line number Diff line Loading @@ -126,8 +126,8 @@ public class MidiService extends IMidiManager.Stub { // This client's PID private final int mPid; // List of all receivers for this client private final ArrayList<IMidiDeviceListener> mListeners = new ArrayList<IMidiDeviceListener>(); private final HashMap<IBinder, IMidiDeviceListener> mListeners = new HashMap<IBinder, IMidiDeviceListener>(); // List of all device connections for this client private final HashMap<IBinder, DeviceConnection> mDeviceConnections = new HashMap<IBinder, DeviceConnection>(); Loading @@ -143,11 +143,13 @@ public class MidiService extends IMidiManager.Stub { } public void addListener(IMidiDeviceListener listener) { mListeners.add(listener); // Use asBinder() so that we can match it in removeListener(). // The listener proxy objects themselves do not match. mListeners.put(listener.asBinder(), listener); } public void removeListener(IMidiDeviceListener listener) { mListeners.remove(listener); mListeners.remove(listener.asBinder()); if (mListeners.size() == 0 && mDeviceConnections.size() == 0) { close(); } Loading Loading @@ -184,7 +186,7 @@ public class MidiService extends IMidiManager.Stub { MidiDeviceInfo deviceInfo = device.getDeviceInfo(); try { for (IMidiDeviceListener listener : mListeners) { for (IMidiDeviceListener listener : mListeners.values()) { listener.onDeviceAdded(deviceInfo); } } catch (RemoteException e) { Loading @@ -198,7 +200,7 @@ public class MidiService extends IMidiManager.Stub { MidiDeviceInfo deviceInfo = device.getDeviceInfo(); try { for (IMidiDeviceListener listener : mListeners) { for (IMidiDeviceListener listener : mListeners.values()) { listener.onDeviceRemoved(deviceInfo); } } catch (RemoteException e) { Loading @@ -211,7 +213,7 @@ public class MidiService extends IMidiManager.Stub { if (!device.isUidAllowed(mUid)) return; try { for (IMidiDeviceListener listener : mListeners) { for (IMidiDeviceListener listener : mListeners.values()) { listener.onDeviceStatusChanged(status); } } catch (RemoteException e) { Loading