summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server/wifi/WifiNetworkFactory.java
Commit message (Collapse)AuthorAgeFilesLines
* WifiNetworkFactory: Send match callback on registrationRoshan Pius2019-10-111-1/+8
| | | | | | | | | | | | | | | | | If the UI registers its callback to the platform and if we already have some matching results for the request, send it immediately to the UI. Otherwise, we'll need to wait for the next scan results to present users with matches. Bug: 134712530 Test: atest com.android.server.wifi Test: Manually verified with CtsVerifier tests that the UI does not start out with a blank page (because the matched networks are already found by using the cached results). Change-Id: Ice7f89952c0a71c181ea5de58e417c02e7f2bf91 Merged-In: Ice7f89952c0a71c181ea5de58e417c02e7f2bf91 (cherry-picked from bbaee0b899a9606f405e27e0af50ee98d2023de4)
* WifiNetworkFactory: Use the latest cached scan resultsRoshan Pius2019-10-111-35/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before starting scans for processing a network request, fetch the latest cached scan results to speed up the matching process. The cached scan results are filtered out to remove scan results that are older than 20 seconds. As long as there was a previous scan in the last 20 seconds, there are 2 benefits with this change: a) There is currently a delay of 2-3 seconds after the request where the user sees a blank screen when platform is performing the first scan. This can be avoided and we can present the user with matches immediately when the request is received. b) If the request is for a specific bssid and there is an approved match in the cached scan results, then we can bypass the UI and trigger connection. Also, renames "PreviouslyApproved" -> "Approved" in test name to ensure the test names fit in one line :) Bug: 134712530 Test: atest com.android.server.wifi Test: Manually verified with CtsVerifier tests that the UI does not start out with a blank page (because the matched networks are already found by using the cached results). Change-Id: I7a788777aabd11562077be88fcc4c9cd45e5b9ab Merged-In: I7a788777aabd11562077be88fcc4c9cd45e5b9ab (cherry-picked from 0ab35f26f0da8885a5d249a678187993da425447)
* WifiNetworkFactory: Remove network from config managerRoshan Pius2019-10-041-3/+34
| | | | | | | | | | | | | | Remove the network configuration from config manager once the processing of the request is complete. This will otherwise cause the next network request for the same network to reuse existing credentials. Bug: 141882562 Test: manual testing with the demo app. Test: atest com.android.server.wifi Test: Will send for regression testing. Change-Id: Id068aab8b48d87beee1edc12f074527850eadfd0 Merged-In: Id068aab8b48d87beee1edc12f074527850eadfd0 (cherry picked from commit 7836168c83b185a1d84d292df57a6e29299c0f76)
* Fix a bunch of multi-user API callsRoshan Pius2019-09-201-3/+5
| | | | | | | | | | | | To handle multi-user scenarios, pass in the corresponding app's user id to fetch app info. Bug: 140895783 Test: atest com.android.server.wifi Test: Ran presubmit ACTS tests Change-Id: I400bad75510b064ad405fae07f56671d2c211178 Merged-In: I400bad75510b064ad405fae07f56671d2c211178 (cherry-picked from a1bbebf25cb7b4e33a7b5abaa6ee6402de95ebc9)
* [WifiNetworkFactory] Trim user approval list per AppNate Jiang2019-07-251-16/+37
| | | | | | | | | | Add capacity limit of APs for each App, remove least recently used ones when capacity is exceeded. Bug: 137129535 Test: atest android.net.wifi Test: atest com.android.server.wifi Change-Id: I5c1b7fa9c6ccc35e63f96c49e645bdb4ee7a5b77
* WifiNetworkFactory: Reject requests for internet with specifierRoshan Pius2019-06-071-7/+21
| | | | | | | | | | | | | | Reject any NetworkRequest with WifiNetworkSpecifier attached and has INTERNET capability set. This will otherwise trigger an unwanted connection which will be torn down by connectivity service immediately (because WifiNetworkAgent will not have INTERNET capability & hence will never match the app's request). Bug: 134735892 Test: atest com.android.server.wifi Test: act.py -c wifi_manager_cross.config -tb dut-name -tc WifiNetworkRequestTest Test: CtsVerifier tests Change-Id: Ia9932379825cec7777baf92e058cd04d181ffc0b
* WifiNetworkFactory: Handle request for connection to current networkRoshan Pius2019-05-131-0/+2
| | | | | | | | | | | | | | | | Always trigger a disconnect before issuing the connect request for a user approved network. This will ensure that we can start with a clean slate for any connection requests from app (after user approves the request). Bug: 132298510 Test: Repro'ed the reported multinetwork CtsVerifier test failure & verified that this CL passes the test. Test: Manually verified the wifi network request CtsVerifier tests. Test: atest com.android.server.wifi.ClientModeImplTest Test: Existing ACTS test - WifiNetworkRequestTest Change-Id: I718238a1ee790bd416222161c87c90c348ea59a1
* WifiNetworkFactory: Always pick bssid & disable fw roamingRoshan Pius2019-03-291-6/+30
| | | | | | | | | | | | | | Changes: a) Disable firmware roaming for all connections intitiated by the network request API by force selecting a BSSID. b) If there are multiple BSSIDs matching the user selected network, pick the one with the best rssi. Test: act.py -c wifi_manager_cross.config -tb dut-name -tc WifiNetworkRequestTest Test: atest com.android.server.wifi Change-Id: I71e45a4eddbd7b4d4a068b94ae8ba1a93bc9cd90
* Merge "WifiNetworkFactory: Ignore connection events after success"Roshan Pius2019-03-271-2/+13
|\
| * WifiNetworkFactory: Ignore connection events after successRoshan Pius2019-03-261-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the device connects to a network triggered by network request, stop listening to any further connection attempt success/failure events from ClientModeImpl. Further connection attempt events maybe triggered by: a) Connection attempt success events would be triggered by roaming. b) Connection attempt failure events would be triggered by a disconnect (This is not correctly tracked in ClientModeImpl because a disconnect should not be treated as a connection attempt failure, but there are cases like ip configuration failure which triggers this method currently). Both of the above events should be handled by the network agent created for tracking the connection. The network factory should ignore them. Bug: 128391794 Test: atest WifiNetworkFactoryTest Test: act.py -c wifi_manager_cross.config -tb dut-name -tc WifiNetworkRequestTest Change-Id: I446397a3abee829b0e9859328ad32fac26956b52
* | Merge "Record Nominator ID for all possible nominators"David Su2019-03-261-0/+4
|\ \ | |/ |/|
| * Record Nominator ID for all possible nominatorsDavid Su2019-03-251-0/+4
| | | | | | | | | | | | | | | | Record Nominator ID for all possible nominators Bug: 127452844 Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: Id1dc5d29662ae4268d2c9c0c54438ea3ac0c841c
* | Merge "Revert "WifiConfigManager: Temporarily blacklist on disconnect""Roshan Pius2019-03-251-1/+1
|\ \ | |/ |/|
| * Revert "WifiConfigManager: Temporarily blacklist on disconnect"Roshan Pius2019-03-221-1/+1
| | | | | | | | | | | | | | | | | | This reverts commit 0cd22728c628e51e8f259f8404a97dec49804424. Bug: 126503889 Reason for revert: UI changes was punted to R. No rationale in making this API changing behavior now. Change-Id: Ie8cd931980d2eb0c7bf660cb0fa646848d315a71
* | WifiNetworkFactory: Send flag for singe network requestRoshan Pius2019-03-141-0/+22
|/ | | | | | | | | | Send a new boolean flag to let the UI know that the app's request can only match a single network. This lets the UI trigger a different user flow for single network requests from apps. Bug: 128563203 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I2b92b5b015dbdffb628aeae0b88351ed79ad42e8
* WifiConfigManager: Temporarily blacklist on disconnectRoshan Pius2019-03-141-1/+1
| | | | | | | | | | | When an external entity (settings for example) triggers WifiManager.disconnect() API, ensure that we blacklist the network temporarily for 1 hour. Any internal disconnects triggered by the stack will not result in blacklisting the network. Bug: 126503889 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: If66fd078fa74b8153a9d1aca2ed362b2246f276d
* WifiMetrics: Report metrics for new API surfacesRoshan Pius2019-03-061-1/+16
| | | | | | | | | | | | | | | Changes to report metrics for the new API surface usage. Also, a) Added a new maxSize field in WifiNetworkSuggestionsManager to track the maximum size of suggestion list ever for that app. b) Record the nominator names in existing connection event metrics. Bug: 123362619 Bug: 123362779 Test: adb shell dumpsys wifi wifiMetricsProto Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I801ce489941259be9185e3dbc1133ff04bae5c71
* WifiNetworkFactory: Send instantaneous failureRoshan Pius2019-02-271-3/+17
| | | | | | | | | | | | Use the new mechanism to send instantaneous failure to app when the request cannot be fulfilled (invalid params, user rejected, connection failure, connection timeout, overidden by another request, etc). Bug: 126352418 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Test: Will send for full regression tests. Change-Id: If037671b68adeaa1ae3db072ddfe1e3b53fae9e2
* Use the new security type added in WifiConfigurationRoshan Pius2019-02-261-3/+4
| | | | | | | | | | | | Migrate to the new WifiConfiguration security type enums & helper method to set the security params. Bug: 124071722 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkSuggestionTest Test: Will send for full regression tests. Change-Id: Idb8730aae4b59365dc42073853874060b3c8c953
* WifiNetworkFactory: Use credentials from app's requestRoshan Pius2019-02-111-7/+11
| | | | | | | | | | | | | Don't use the WifiConfiguration object passed in via the UI for initiating network connection. Use the credentials from the app's request and then copy over the SSID from the UI callback. Bug: 124220879 Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest (Passes with the modified test). Test: Manual CTS verification. Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: Ie7319f8e845ffd0717fda8a53471eaa5684b551d
* WifiServiceImpl: Factory resetRoshan Pius2019-02-111-0/+10
| | | | | | | | | | | | Clear the following lists on the network settings reset: a) Blacklisted ephemeral networks b) All suggestion related lists. c) All user approvals stored for networks requests. Bug: 123884704 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: Manually verified by performing network settings reset Change-Id: I8a6476acf4a14acf968565cad1a6eb1c6aef1f55
* WifiNetworkFactory: Don't bypass user approval if user forgetsRoshan Pius2019-01-251-7/+9
| | | | | | | | | | | | | | | | | | | The "forget" button in the wifi picker for the connected network invokes WifiManager.disableEphemeralNetwork() for ephemeral networks. Use the same blacklist to disallow user approval bypass for previously approved networks for app requests. This would result in the user getting the pop-up to approve the request even if the app makes a specific request (exact SSID + BSSID) and it was previously approved. Note: There are some improvements planned regarding ephemeral network blacklist tracked by b/123360912. Bug: 122621582 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: Aded a new acts test for the scenario. act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkSuggestionTest Change-Id: I9d42d14d3cdfd631d55e449cbf9498ba9728d5b1
* WifiConfigManager: App attribution for suggestion/requestRoshan Pius2019-01-231-1/+5
| | | | | | | | | | | | | | Add new field to mark a WifiConfiguration as created from a network specifier or suggestion. WifiConfiguration.creatorName for such networks will contain the package name of the app that added the corresponding specifier/suggestion. This can be used by the settings app to display the app's name in the wifi picker summary. Bug: 115504887 Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I673a9e309a3faeb01723211d8f80f75d9477994a
* WifiNetworkSuggestion/WifiNetworkSpecifier: Pass package nameRoshan Pius2019-01-181-41/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the package name from WifiNetworkSpecifier/WifiNetworkSuggestion instead of using PackageManager.getNameForUid() which cannot differentiate apps sharing UID. Functional changes (only in WifiNetworkFactory): a) Verify the uid/package name passed in the request using app-ops manager. b) Use the package name in the request everywhere instead of getNameForUid. WifiNetworkSuggestionsManager already uses the package name of the app passed in via addNetworkSuggestionsManager. So, no changes necessary there. Rest of the changes are mostly in unit tests to add the new packageName param in the constructor of these objects. Bug: 123078593 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkSuggestionTest Test: New CtsVerifier tests for network request. Change-Id: Id7c9a954606f97dbba935cb259dd488ac19d7c62
* ClientModeImpl: Remove internet capability for network requestRoshan Pius2019-01-181-4/+8
| | | | | | | | | | | | | | | | | | | | | When we connect to a network in response to a network request, ensure we remove the INTERNET capability from the agent created. This is done to limit the network request API surface to local connections only (i.e the default network on the device will not switch to wifi if there are other agents available). Also, a) Moved all network capabilities setting to a common method in ClientModeImpl. b) Removed unnecessary variables holding network capabilities in ClientModeImpl. Bug: 119632465 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Test: New CtsVerifier tests for network request. Test: Will send for full regression testing. Change-Id: Idc133354ecc31ff6dfd38800763ae9d935655476
* WifiNetworkFactory: Choose bssid for specific requestsRoshan Pius2019-01-181-0/+7
| | | | | | | | | | | When the network request contains specific access point params, set the BSSID for the connection and prevent firmware roaming. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Test: New CtsVerifier tests for network request. Change-Id: I3d3881c7d17b263664b897b09619f29f30d5347a
* WifiNetworkFactory: Fix a TODO in the UI registration flowRoshan Pius2019-01-181-1/+5
| | | | | | | | | If the UI callback registration occurs when there is no active request, send abort immediately. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I4368ffd60bce70e2231ef2f77086cae25aaa725e
* WifiNetworkFactory: Send app label in UI intentRoshan Pius2019-01-181-4/+18
| | | | | | | | | | The package name is not understandable by the user, pass the app label instead. Bug: 117399926 Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: If9c59ed9e7a2d84141cb2019045ca62b01d7a29f
* WifiNetworkFactory: Persist user approvalsRoshan Pius2019-01-181-3/+52
| | | | | | | | | | | Persist the list of approved access points for each app. Bug: 122658039 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest :test_connect_to_wpa_psk_2g_which_is_already_approved Change-Id: Iec0450ccadf04c3168088b456bb33ed6a786ac8e
* WifiNetworkFactory: Allow user approval bypassRoshan Pius2019-01-181-9/+196
| | | | | | | | | | | | | | | | | Whenever user approves a network for a request from an app, store the exact SSID + BSSID that the user approved. If the same app makes a network request for a specific SSID & BSSID which has been previously approved, then the device will immediately trigger connection bypassing the user approval phase. Also, added a method to remove all of the approvals for the app when the app is uninstalled & via shell commands (for ACTS testing). Bug: 122658039 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest:test_connect_to_wpa_psk_2g_which_is_already_approved Change-Id: I85b8c872f53d682d47477d067df347352d5aa2d9
* WifiNetworkFactory: Send package name to UIRoshan Pius2019-01-121-3/+9
| | | | | | | | | | | | Also, a) Change the name of intent action string to be in conformance with API guidelines. b) Refactored an existing meta unit test to inline test. Bug: 117399926 Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I0a4ddb9e7abaf6f694ac8827a530cd0505d46b81
* Merge "WifiNetworkFactory: Defer disconnecting from connected request"Roshan Pius2018-12-111-49/+100
|\
| * WifiNetworkFactory: Defer disconnecting from connected requestRoshan Pius2018-12-111-49/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a new request comes in as we're connected to a network from a previous request, currently we immediately disconnect & stop tracking the previous request. Defer this disconnection to after the user accepts the new request. CL introduces tracking of 2 simultaneous requests in WifiNetworkFactory, one active request & one connected request. a) All new requests start out as "active". b) Once the user accepts the request & we successfully connect to the network, we transition that request to "connected". All the UI interactions are finished once we successfully connect, so that is a good transition point at which we can start handling another request. c) If a new request comes in when we have a connected request, we start processing the new "active" without disturbing the "connected" request. d) We also need to handle the release of either the "connected" or "active" request from the app. Also, a) Renamed the |resetStateForStart|/|resetStateForEnd| methods to |setup|/|teardown|. b) Renamed few unit tests which were testing simultaneous request scenarios appropriately. Bug: 117978866 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Change-Id: I12ec307f837315457e8697848ab36ae2c14228eb
* | Network-Suggestion/Request: Handle saved network with same credentialsRoshan Pius2018-12-111-2/+29
|/ | | | | | | | | | | | | | | | | | For NetworkRequest processing, CONNECT_NETWORK message already handles connecting to an existing saved network (using networkId). So, just use the network ID of the existing saved network to request connection. If it doesn't exist add it to WifiConfigManager & then use the allocated network ID to request connection. For NetworkSuggestion processing, if the network already exists as a saved network, skip attempting to add the network configuration in the evaluator. Bug: 120581555 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkSuggestionTest Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Change-Id: If7e517689c4edd72a30eab8e14ee52010a04ca33
* WifiNetworkFactory: Handle wifi toggleRoshan Pius2018-12-061-2/+31
| | | | | | | | | Abort any ongoing requests and reject any new requests when wifi is toggled off. Bug: 120477750 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: Ie7bc6908ecbba0ea25f2eea1a53793384fd178bd
* WifiNetworkFactory: Implement UI activity startRoshan Pius2018-11-291-1/+18
| | | | | | | | | | | UI activity will be started every time we start processing a new request. The corresponding UI implementation is under review in ag/5605669. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I27af3edb5571a33fb8caa7ffebd50d3b8a7cf580
* WifiNetworkFactory: Handle screen state changesRoshan Pius2018-11-291-0/+26
| | | | | | | | | | | Screen state changes are only processed while we're scanning for matching networks (for an active request). a) when the screen is off, pause periodic scanning. b) when the screen is on, resume periodic scanning. Bug: 117980480 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I4c759380e3b5af24e3f6b2cdb2336aed71c03bd5
* WifiNetworkFactory: Defer turning off auto-joinRoshan Pius2018-11-291-3/+3
| | | | | | | | | | | Currently, we turn off auto-join when we start processing a new (specific) network request. Defer this to after the user picks a network from the UI. Bug: 117979585 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Change-Id: I4b5ded6d01b5247af90fb95bfe1f584ff4f10a7a
* WifiNetworkFactory: Retry connection on failureRoshan Pius2018-11-291-12/+33
| | | | | | | | | | | Any intermediate connection failures should trigger retries to workaround any transient issues. Limit the number of retries to 3 for now. Bug: 119207115 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkRequestTest Change-Id: I466b6f43b4cede40850731d5a5190ee66d1ab69f
* WifiNetworkFactory: Send abort to UIRoshan Pius2018-11-161-1/+8
| | | | | | | | | | Whenever the current active request is aborted (released by the app or overridden by another request), send an abort to the UI via new callback. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I867c41fe88a0c8cc663d39fc10e84745576f2935
* WifiNetworkSelector: Mark WFA networks as untrustedRoshan Pius2018-11-161-1/+0
| | | | | | | | | | | Plumb the new WifiConfiguration.trusted flag through the wifi stack. Only the network configurations created for WFA via ScoredNetworkEvaluator will be marked untrusted. The rest of the network configurations are trusted by default. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: Ic49252a2d99f2c7a35251de37e1f3a1843b20da2
* WifiNetworkFactory: Handle new request while processingRoshan Pius2018-11-161-15/+40
| | | | | | | | | | Handle new network request while processing a previous request. Also, refactored the resetState() method to ensure there is a single abort method for the active request. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I1e17b115f039036e069acde52d1f99cefe5f5b4d
* ClientModeImpl: Attach WifiNetworkAgentSpecifierRoshan Pius2018-11-161-0/+19
| | | | | | | | | | | | | | This is needed for matching the specific network request with the network agent created for servicing it. Note: WifiNetworkAgentSpecifier will continue to match any generic requests. So, we can always send the specifier. The requestorUid will be -1 if there is no specific request active. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: act.py -c wifi_manager.config -tb dut-name -tc WifiManagerTest Change-Id: I0c8b4b3a552b7765069520f1fc57fa70c9ade8b7
* ClientModeImpl: Send connection status to network factoryRoshan Pius2018-11-161-2/+14
| | | | | | | | | | | | | | | Indicate connection status to WifiNetworkFactory to let WifiNetworkFactory track its connection attempt status. Also, refactor the Carrier/Open-NetworkNotifier to use the same hooks for indicating connection status. This is to ensure that all of these modules have a somewhat consistent pattern for tracking connection status. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: Ensured that ONA connection still works. Change-Id: I7ae0cb529ae0fd3372657efeadae964ea019fe94
* WifiNetworkFactory: Handle network connection/failureRoshan Pius2018-11-161-6/+63
| | | | | | | | | | Handle network connection status from ClientModeImpl after user picks a network. Also, disconnect from the user selected network on network release. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I0eddb69364733e03004c1fdcd6948ec920a07a7e
* WifiNetworkFactory: Handle stale user selectionRoshan Pius2018-11-161-8/+23
| | | | | | | | | | | | | Store the active network request when the user selection callback is registered to guard against stale user interaction. Note: The current UI flow mandates that the registration is expected only after the request has been accepted. So, we should have an active network request when the callback registration comes in. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: Iaff7cb7688071fc5806b58ca7844fa6c7a3cc612
* WifiNetworkFactory: Handle user selectionRoshan Pius2018-11-161-12/+100
| | | | | | | | | | | | | | Trigger connection to a network or cancel the active network request based on user selection (conveyed via the user selection callback by UI). The connection initiation logic follows existing the pattern used in Open/Carrier-NetworkNotifier modules. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: Ieab0fbcf68bcb89e2702b3785c7e55a4098330b3
* WifiNetworkFactory: Send list of matching scan results for network requestRoshan Pius2018-11-161-30/+13
| | | | | | | | | | | Change the arguments for the onMatch() callback to return a list of |ScanResult| instead of |WifiConfiguration|. This allows the settings UI team to reuse the existing infrastructure used for presenting list of networks in the wifi picker UI. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/runtests.sh Change-Id: I8ce932e42123878bb8c0c1dde58f93d42ae6f809
* WifiConnectivityManager: Refactor auto-join enable/disableRoshan Pius2018-11-161-5/+3
| | | | | | | | | | | | | There are 3 factors which decide whether auto-join is enabled or not: a) No specific network request in progress, AND b.1) At-least one pending generic trusted network request. OR b.2) At-least one pending generic untrusted network request. Bug: 113878056 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: I13e0594ff1e28be42a8c992544bdac94bace9051
* WifiNetworkFactory: Implement network matching using network specifierRoshan Pius2018-11-011-2/+85
| | | | | | | | | | | | | Changes in the CL: a) Match incoming scan results with the active network specifier. b) Identify unique networks. Multiple BSSIDs (ScanResult) within the same network are collapsed into one entry. c) Send these matched networks to the registered callback to present to the user. Bug: 113878056 Test: Unit tests. Change-Id: I2805c35c1378c20399890b9538cd5558f5f6d6