diff options
author | Pankaj Kanwar <pkanwar@google.com> | 2016-12-22 04:47:43 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-12-22 04:47:43 +0000 |
commit | f07b61edc5f3443e5719b2ff1084ab1aee07d029 (patch) | |
tree | 7c129a310c4411a243ea9399d63819d41ad078b6 | |
parent | 5c5d7ea1d4947b85b2d64363bd1adadddf68753c (diff) | |
parent | 68b8c4c1ccdd9fec67a96a2a4e8df284ce15bb7e (diff) | |
download | android_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
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; |