diff options
author | pkanwar <pkanwar@google.com> | 2016-12-20 15:27:26 -0800 |
---|---|---|
committer | pkanwar <pkanwar@google.com> | 2016-12-21 16:28:24 -0800 |
commit | 68b8c4c1ccdd9fec67a96a2a4e8df284ce15bb7e (patch) | |
tree | cea7e4c5ed0386fdb56aaa0df846ed6c152aa313 | |
parent | 14145984773a3ffb992723045dd6d829c6328b83 (diff) | |
download | android_frameworks_opt_net_wifi-68b8c4c1ccdd9fec67a96a2a4e8df284ce15bb7e.tar.gz android_frameworks_opt_net_wifi-68b8c4c1ccdd9fec67a96a2a4e8df284ce15bb7e.tar.bz2 android_frameworks_opt_net_wifi-68b8c4c1ccdd9fec67a96a2a4e8df284ce15bb7e.zip |
DO NOT MERGE: Add API to indicate carrier networks.
Bug: 31003437
Change-Id: I4a5374b59d08fd8ec8ffbff007764e3f277f79df
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 0bddb6c8f..6a5d606fb 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; |