diff options
-rw-r--r-- | service/java/com/android/server/wifi/HalDeviceManager.java | 28 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiVendorHal.java | 3 |
2 files changed, 22 insertions, 9 deletions
diff --git a/service/java/com/android/server/wifi/HalDeviceManager.java b/service/java/com/android/server/wifi/HalDeviceManager.java index e58efd751..0042f6a8a 100644 --- a/service/java/com/android/server/wifi/HalDeviceManager.java +++ b/service/java/com/android/server/wifi/HalDeviceManager.java @@ -303,9 +303,13 @@ public class HalDeviceManager { */ public void registerInterfaceAvailableForRequestListener(int ifaceType, InterfaceAvailableForRequestListener listener, Looper looper) { - mInterfaceAvailableForRequestListeners.get(ifaceType).add( - new InterfaceAvailableForRequestListenerProxy(listener, - looper == null ? Looper.myLooper() : looper)); + if (DBG) Log.d(TAG, "registerInterfaceAvailableForRequestListener: ifaceType=" + ifaceType); + + synchronized (mLock) { + mInterfaceAvailableForRequestListeners.get(ifaceType).add( + new InterfaceAvailableForRequestListenerProxy(listener, + looper == null ? Looper.myLooper() : looper)); + } WifiChipInfo[] chipInfos = getAllChipInfo(); if (chipInfos == null) { @@ -323,12 +327,18 @@ public class HalDeviceManager { public void unregisterInterfaceAvailableForRequestListener( int ifaceType, InterfaceAvailableForRequestListener listener) { - Iterator<InterfaceAvailableForRequestListenerProxy> it = - mInterfaceAvailableForRequestListeners.get(ifaceType).iterator(); - while (it.hasNext()) { - if (it.next().mListener == listener) { - it.remove(); - return; + if (DBG) { + Log.d(TAG, "unregisterInterfaceAvailableForRequestListener: ifaceType=" + ifaceType); + } + + synchronized (mLock) { + Iterator<InterfaceAvailableForRequestListenerProxy> it = + mInterfaceAvailableForRequestListeners.get(ifaceType).iterator(); + while (it.hasNext()) { + if (it.next().mListener == listener) { + it.remove(); + return; + } } } } diff --git a/service/java/com/android/server/wifi/WifiVendorHal.java b/service/java/com/android/server/wifi/WifiVendorHal.java index 9c1ae94b5..3da5ef979 100644 --- a/service/java/com/android/server/wifi/WifiVendorHal.java +++ b/service/java/com/android/server/wifi/WifiVendorHal.java @@ -840,6 +840,9 @@ public class WifiVendorHal { */ public int getSupportedFeatureSet() { int featureSet = 0; + if (!mHalDeviceManager.isStarted()) { + return featureSet; // TODO: can't get capabilities with Wi-Fi down + } try { final MutableInt feat = new MutableInt(0); synchronized (sLock) { |