summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPankaj Kanwar <pkanwar@google.com>2016-12-22 04:47:43 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-12-22 04:47:43 +0000
commitf07b61edc5f3443e5719b2ff1084ab1aee07d029 (patch)
tree7c129a310c4411a243ea9399d63819d41ad078b6
parent5c5d7ea1d4947b85b2d64363bd1adadddf68753c (diff)
parent68b8c4c1ccdd9fec67a96a2a4e8df284ce15bb7e (diff)
downloadandroid_frameworks_opt_net_wifi-f07b61edc5f3443e5719b2ff1084ab1aee07d029.tar.gz
android_frameworks_opt_net_wifi-f07b61edc5f3443e5719b2ff1084ab1aee07d029.tar.bz2
android_frameworks_opt_net_wifi-f07b61edc5f3443e5719b2ff1084ab1aee07d029.zip
Merge "DO NOT MERGE: Add API to indicate carrier networks." into nyc-mr2-dev
-rw-r--r--service/java/com/android/server/wifi/WifiConfigManager.java22
-rw-r--r--service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java3
-rw-r--r--service/java/com/android/server/wifi/WifiServiceImpl.java15
-rw-r--r--service/java/com/android/server/wifi/WifiStateMachine.java31
4 files changed, 71 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index 84c87d96b..774d75ec7 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -259,6 +259,12 @@ public class WifiConfigManager {
/* configured networks with network id as the key */
private final ConfigurationMap mConfiguredNetworks;
+ /*
+ * Stores whether carrier networks are configured.
+ * This information is provided externally from the CarrierConfig.
+ */
+ private boolean mHasCarrierConfiguredNetworks;
+
private final LocalLog mLocalLog;
private final KeyStore mKeyStore;
private final WifiNetworkHistory mWifiNetworkHistory;
@@ -488,6 +494,22 @@ public class WifiConfigManager {
}
/**
+ * Check if Carrier networks have ben configured.
+ * @return true if carrier networks are present else false.
+ */
+ public boolean hasCarrierNetworks() {
+ return mHasCarrierConfiguredNetworks;
+ }
+
+ /**
+ * Set true/false depending on whether Carrier networks have been configured.
+ * @param hasCarrierNetworks if Carrier networks have been configured.
+ */
+ public void setHasCarrierNetworks(boolean hasCarrierNetworks) {
+ mHasCarrierConfiguredNetworks = hasCarrierNetworks;
+ }
+
+ /**
* Fetch the list of currently saved networks (i.e. all configured networks, excluding
* ephemeral networks), filled with real preSharedKeys.
* @return List of networks
diff --git a/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java b/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java
index 33ce3cef4..4f63a5bbd 100644
--- a/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java
+++ b/service/java/com/android/server/wifi/WifiQualifiedNetworkSelector.java
@@ -274,6 +274,9 @@ public class WifiQualifiedNetworkSelector {
return;
}
mCarrierConfiguredNetworks = parseCarrierSuppliedWifiInfo(wifiArray);
+ boolean hasCarrierNetworks = (mCarrierConfiguredNetworks == null ||
+ mCarrierConfiguredNetworks.size() == 0) ? false : true;
+ mWifiConfigManager.setHasCarrierNetworks(hasCarrierNetworks);
}
};
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index d4ad0a7e0..32491e7e8 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -834,6 +834,21 @@ public class WifiServiceImpl extends IWifiManager.Stub {
}
/**
+ * see {@link android.net.wifi.WifiManager#getHasCarrierNetworks()}
+ * @return if Carrier Networks have been configured
+ */
+ public boolean hasCarrierConfiguredNetworks() {
+ enforceAccessPermission();
+ if (mWifiStateMachineChannel != null) {
+ return mWifiStateMachine.syncHasCarrierConfiguredNetworks(Binder.getCallingUid(),
+ mWifiStateMachineChannel);
+ } else {
+ Slog.e(TAG, "mWifiStateMachineChannel is not initialized");
+ return false;
+ }
+ }
+
+ /**
* see {@link android.net.wifi.WifiManager#getPrivilegedConfiguredNetworks()}
* @return the list of configured networks with real preSharedKey
*/
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index 45e039e80..9cc26b108 100644
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -626,6 +626,8 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
static final int CMD_GET_PRIVILEGED_CONFIGURED_NETWORKS = BASE + 62;
/* Get Link Layer Stats thru HAL */
static final int CMD_GET_LINK_LAYER_STATS = BASE + 63;
+ /* Has Carrier configured networks */
+ static final int CMD_HAS_CARRIER_CONFIGURED_NETWORKS = BASE + 64;
/* Supplicant commands after driver start*/
/* Initiate a scan */
static final int CMD_START_SCAN = BASE + 71;
@@ -2019,6 +2021,21 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
return result;
}
+ /**
+ * Check if Carrier networks have been configured synchronously
+ *
+ * @param channel
+ * @return
+ */
+ public boolean syncHasCarrierConfiguredNetworks(
+ int uuid, AsyncChannel channel) {
+ Message resultMsg = channel.sendMessageSynchronously(
+ CMD_HAS_CARRIER_CONFIGURED_NETWORKS, uuid);
+ boolean result = (boolean) resultMsg.obj;
+ resultMsg.recycle();
+ return result;
+ }
+
public List<WifiConfiguration> syncGetPrivilegedConfiguredNetwork(AsyncChannel channel) {
Message resultMsg = channel.sendMessageSynchronously(
CMD_GET_PRIVILEGED_CONFIGURED_NETWORKS);
@@ -2787,6 +2804,13 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
sb.append(Integer.toString(msg.arg2));
sb.append(" num=").append(mWifiConfigManager.getConfiguredNetworksSize());
break;
+ case CMD_HAS_CARRIER_CONFIGURED_NETWORKS:
+ sb.append(" ");
+ sb.append(Integer.toString(msg.arg1));
+ sb.append(" ");
+ sb.append(Integer.toString(msg.arg2));
+ sb.append(" hasCarrierNetworks=").append(mWifiConfigManager.hasCarrierNetworks());
+ break;
case DhcpClient.CMD_PRE_DHCP_ACTION:
sb.append(" ");
sb.append(Integer.toString(msg.arg1));
@@ -4079,6 +4103,9 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
case CMD_GET_CONFIGURED_NETWORKS:
replyToMessage(message, message.what, (List<WifiConfiguration>) null);
break;
+ case CMD_HAS_CARRIER_CONFIGURED_NETWORKS:
+ replyToMessage(message, message.what, null);
+ break;
case CMD_GET_PRIVILEGED_CONFIGURED_NETWORKS:
replyToMessage(message, message.what, (List<WifiConfiguration>) null);
break;
@@ -5676,6 +5703,10 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss
replyToMessage(message, message.what,
mWifiConfigManager.getSavedNetworks());
break;
+ case CMD_HAS_CARRIER_CONFIGURED_NETWORKS:
+ replyToMessage(message, message.what,
+ (Boolean)mWifiConfigManager.hasCarrierNetworks());
+ break;
case WifiMonitor.SUP_REQUEST_IDENTITY:
int networkId = message.arg2;
boolean identitySent = false;