summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/java/com/android/server/wifi/HalDeviceManager.java28
-rw-r--r--service/java/com/android/server/wifi/WifiVendorHal.java3
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) {