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