Commit Graph

160 Commits

Author SHA1 Message Date
TreeHugger Robot
0fa2651d3f Merge "Change Easy Connect intent naming" 2019-03-03 16:17:33 +00:00
TreeHugger Robot
6e245f4736 Merge "Fix Settings crash after clicking 'Share Wi-Fi' button" 2019-02-27 07:06:38 +00:00
Arc Wang
730a6c0f5e Fix Settings crash after clicking 'Share Wi-Fi' button
When connecting to an open network, Settings crash after
scanning Wi-Fi DPP QR code and clicking 'Share Wi-Fi' button.

When choosing default network for configurator usage, should
make sure if it supports Wi-Fi DPP or not.

Bug: 126456582
Test: manual test
      atest WifiQrCodeTest
            WifiDppConfiguratorActivityTest
            WifiDppEnrolleeActivityTest
            WifiDppQrCodeGeneratorFragmentTest
            WifiDppQrCodeScannerFragmentTest
            WifiNetworkListFragmentTest
            WifiDppChooseSavedWifiNetworkFragmentTest

Change-Id: I66ee9b01314b84213ecb3016e6e72ff71af8dfc7
2019-02-27 11:33:43 +08:00
Arc Wang
c1036df9b8 Change Easy Connect intent naming
1. From ACTION_PROCESS_WIFI_EASY_CONNECT_QR_CODE to ACTION_PROCESS_WIFI_EASY_CONNECT_URI
2. Remove EXTRA_QR_CODE and use data Uri to specify Easy Connect bootstrapping information string

Bug: 125874365
Test: atest AvailableIntentsTest
      WifiDppChooseSavedWifiNetworkFragmentTest
      WifiDppConfiguratorActivityTest
      WifiNetworkListFragmentTest

Change-Id: I706513520daa10197a27f596fa08ca58980205d8
2019-02-27 10:06:04 +08:00
TreeHugger Robot
6dcb6a35c3 Merge "Update strings for Wi-Fi DPP handshake running state" 2019-02-26 07:15:27 +00:00
TreeHugger Robot
9d741c4f47 Merge "Improve UX of Wi-Fi QR code scanner enrollee flow" 2019-02-26 05:48:56 +00:00
Arc Wang
957ce7f7aa Update strings for Wi-Fi DPP handshake running state
Bug: 125987679
Test: manual test
Change-Id: I55eddee5f3c0c28d1be23b5b9d8c0b56280be797
2019-02-25 15:06:16 +08:00
Arc Wang
13f37337ed Improve UX of Wi-Fi QR code scanner enrollee flow
1. Do not start WifiSettings after enrollee success
2. Return WifiConfiguration to the calling object after enrollee success
3. In WifiDialog, do not show scan button if Save button is not visible to users
4. Fix scanner button may not respond problem by setting listener for scanner
   button of ssid field and password field
5. If SSID is assigned, only allow to enrollee for the network of assigned SSID

Bug: 124416152
Test: manual test
Change-Id: Ic5241c4767eaa8ea01782817d8302d8b0572ab36
2019-02-23 11:59:53 +08:00
Arc Wang
8826721803 Add progress bar for Wi-Fi DPP handshaking
Bug: 124127483
Test: manual test
Change-Id: I1c3da5bab98da57ca8cf10509f339e99b01ebdbf
2019-02-22 11:42:08 +08:00
Arc Wang
ffae615d25 Fix camera stop forever after error occurs while sharing or adding network
Restart QrCamera decoding task after Wi-Fi DPP handshake fail or
Wi-Fi connection fail.

Bug: 124128539
Test: manual test
Change-Id: I6d916ed1378f50038089e2c1e2870915ca083d68
2019-02-20 14:29:08 +08:00
Arc Wang
7bdcadbe72 Handle different error codes in DPP
Show error message for corresponding Wi-Fi DPP error code. And

1. To update error message only from each fragment,
   remove some callbacks which calls from fragment to activity.
2. After clicking 'Share Wi-Fi' button, hide it before Wi-Fi DPP handshake completes.
3. Show 'Done' button for some error codes.
4. Use ViewModel to call startEasyConnectAsConfiguratorInitiator and
   startEasyConnectAsEnrolleeInitiator because a lifecycle object
   does not receive an Executor callback after configurator change.
5. In WifiDppQrCodeScannerFragment, show an error message for 10s instead of 2s
   since new added error messages may carry more information.
6. Show a different error message for enrollee handshake success but Wi-Fi
   connection fail case.
7. stop camera when scanned a Wi-Fi DPP QR code for enrollee.
8. In QR code scanner fragment, support to show error message after
    configuration change.

Bug: 124247872
Bug: 124491247
Test: manual test
      atest WifiQrCodeTest
      atest WifiDppConfiguratorActivityTest
      atest WifiDppEnrolleeActivityTest
      atest WifiDppQrCodeGeneratorFragmentTest
      atest WifiDppQrCodeScannerFragmentTest
      atest WifiNetworkListFragmentTest
      atest WifiDppChooseSavedWifiNetworkFragmentTest

Change-Id: Id130215e9ddafac8bc4c68238deda48ce99b4255
2019-02-20 14:28:52 +08:00
Johnson Lu
3a5d9020e8 Remove feature flags of WiFi Sharing feature
Bug: 120744414
Test: Manual
Change-Id: I655ebb8d149d0976063845478bc667cc4d72d96d
2019-02-15 16:14:54 +08:00
Arc Wang
9d33313735 Fix Wi-Fi DPP fragment back stack problems
1. When a Wi-Fi network connected and receiving
   intent android.settings.PROCESS_WIFI_EASY_CONNECT_QR_CODE,
   show WifiDppAddDeviceFragment from WifiDppConfiguratorActivity
   instead of WifiNetworkListFragment

2. Only handle intent when savedInstanceState is null

3. To show a fragment
   I. do nothing when a fragment is already visible on screen,
   II. pop back stack if it's in back stack, we can do this because
   current fragment transactions are arranged in an order

Bug: 124194531
Test: atest WifiQrCodeTest
      atest WifiDppConfiguratorActivityTest
      atest WifiDppEnrolleeActivityTest
      atest WifiDppQrCodeGeneratorFragmentTest
      atest WifiDppQrCodeScannerFragmentTest
      atest WifiNetworkListFragmentTest
      atest WifiDppChooseSavedWifiNetworkFragmentTest

Change-Id: I1d44eeb3bdc7bfb2ec2e4d81efaab64b066651ad
2019-02-11 11:42:21 +08:00
Arc Wang
8de242ada6 Wi-Fi DPP code refine
1. call Activity#setResult only for RESULT_OK case
2. refine @VisibleForTesting usage
     remove redundant assignment otherwise = PRIVATE
     set all @VisibleForTesting annotated methods package scope
3. rename WifiQrCode#SECURITY_WPA to WifiQrCode#SECURITY_WPA_PSK

Bug: 120645817
Test: atest WifiQrCodeTest
      atest WifiDppConfiguratorActivityTest
      atest WifiDppEnrolleeActivityTest
      atest WifiDppQrCodeGeneratorFragmentTest
      atest WifiDppQrCodeScannerFragmentTest
      atest WifiNetworkListFragmentTest
      atest WifiDppChooseSavedWifiNetworkFragmentTest

Change-Id: Id5de7eadc73185716422fc0d197f82bdd025ce45
2019-01-29 17:33:45 +08:00
Arc Wang
4ab826ac5b Set Wi-Fi DPP fragment icons.
1. set fragment icon for WifiDppChooseSavedWifiNetworkFragment
2. set fragment icon of success for WifiDppAddDeviceFragment

All Wi-Fi DPP fragment icons are VectorDrawable of instinct size
24dp draw on a 48dp canvas. Except for ic_devices_check_circle_green,
it's a LayerDrawable of different size. I dynamically change ImageView
layout width & height between these 2 different kind of drawable.

Bug: 122982132
Test: manual test
Change-Id: Idab8cd8b0798363e447da00dc6bc68a86498b8be
2019-01-29 17:02:14 +08:00
Salvador Martinez
2611190def Update configurator intent to be public
This updates the settings code to use the public intent instead.

Test: tests still pass
Bug: WIP
Change-Id: Id40f60b4c2209073aef8747faa5de4e7ff9692ae
2019-01-28 12:33:30 +08:00
TreeHugger Robot
b764fac7c1 Merge "Filter out unsupported security type for DPP configuration." 2019-01-25 08:42:29 +00:00
Arc Wang
cfa78006a0 Filter out unsupported security type for DPP configuration.
There is different Wi-Fi security support between ZXing's Wi-Fi QR code
format and Wi-Fi DPP QR code format.

  ZXing's Wi-Fi QR code format: supports WEP / WPA / none security
  Wi-Fi DPP: supports WPA / SAE

So we will have different UI behavior for different security.

  WEP & none security: only support QR code generator
  WPA: supports both QR code generator & scanner
  SAE: only supports QR code scanner
  others: don't support. The share button is invisible

Bug: 123212410
Test: manual test
Change-Id: I87962d730282fc2c1b96223dca6feb79235fe5a1
2019-01-25 14:22:08 +08:00
TreeHugger Robot
403efc9c1b Merge "Implement WifiNetworkListFragment - Part 3" 2019-01-25 02:46:39 +00:00
Johnson Lu
17fc3ec944 Implement WifiNetworkListFragment - Part 3
Remove unnecessary message by UX review.

Bug: 118794978
Test: manual
Change-Id: I9ed210e1a15ba251f1015ca5f14296c5cb3a92eb
2019-01-23 09:40:08 +08:00
TreeHugger Robot
d3be363004 Merge "Add icons of WifiDppAddDeviceFragment." 2019-01-22 11:11:30 +00:00
Arc Wang
bf1fb10999 Add icons of WifiDppAddDeviceFragment.
Bug: 118797202
Test: manual test
Change-Id: Ia2ef9db3526f98b1c697a864cec34e1d4dcfc400
2019-01-22 16:27:23 +08:00
Arc Wang
cb64510ff7 Control UI behavior according to different Wi-Fi DPP intents.
When it's a configurator from Settings, the cancel button of WifiDppChooseSavedWifiNetworkFragment
should pop back stack. When it's a configurator from a camera app, the cancel button of
WifiDppChooseSavedWifiNetworkFragment should finish host activity.

Bug: 120517242
Test: manual test
Change-Id: Ia0fb0daf16c94ecd62aa6d357405fcd529935d2f
2019-01-22 13:45:27 +08:00
TreeHugger Robot
32d561653c Merge "Add a picture for Wi-Fi DPP add device fragment." 2019-01-21 04:58:35 +00:00
TreeHugger Robot
61447c7b88 Merge "Check whether the device support DPP for public intent" 2019-01-21 03:06:12 +00:00
TreeHugger Robot
abd732a308 Merge "Update parameter for Easy Connect API in WiFi DPP flow" 2019-01-19 04:33:21 +00:00
Johnson Lu
e69dc5cc6c Check whether the device support DPP for public intent
Check PROCESS_WIFI_EASY_CONNECT_QR_CODE intent.

Bug: 122331217
Test: manual test
Change-Id: I9bc4007f8c01d11a186640e8ef59be6329350dc9
2019-01-18 08:12:58 +08:00
Johnson Lu
1e8a21f258 Update parameter for Easy Connect API in WiFi DPP flow
Due to API changes, uses Executor instead of Handler for Easy Connect
API.

Test: manual test
Bug: 122331217
Change-Id: Iddda3e6c9079e2bba814be6a0097d60ee349a504
2019-01-18 07:17:55 +08:00
Arc Wang
e05fae643c Add a picture for Wi-Fi DPP add device fragment.
Bug: 122429170
Test: manual
Change-Id: I8a2e9feab238aa2636be25959988145ac8633c24
2019-01-17 23:04:37 +00:00
Fan Zhang
31b210017b Migrate all MetricsProto enums to SettingsEnums
Bug: 122855168
Test: rebuild
Change-Id: I962d9a71179f86b7cae9dc5e9a00e0aa1557dc76
2019-01-17 14:55:42 -08:00
Hai Shalom
8466751a79 Merge "[DPP] Fix usage of "DPP" public API to "Easy Connect"" 2019-01-15 20:46:44 +00:00
Johnson Lu
98bc9e5384 Implement WifiNetworkListFragment - Part 2
Uses connected access point to start DPP in Configurator-Initiator role directly.

Bug: 118794978
Test: RunSettingsRoboTests
Change-Id: Ie2d5661fdef3588bb597d4a7e4dfe5f981737c84
2019-01-15 13:27:47 +08:00
Johnson Lu
0adba0aa1b Implement WifiNetworkListFragment
1.Scan valid access points for DPP configurator by using WifiTracker.
2.Allow user to add a new network for DPP configurator.

Bug: 118794978
Test: RunSettingsRoboTests
Change-Id: I36504d28dec7d2c9091aa6c35ebe2495045681f7
2019-01-15 13:27:47 +08:00
Hai Shalom
e046e8af2a [DPP] Fix usage of "DPP" public API to "Easy Connect"
All DPP public API and constants renamed to use Easy Connect,
which is the WFA public technology name. Update the settings code to use the
new API names.

Bug: 122851551
Test: atest DppManagerTest
Test: act.py -c ../WifiDppConfig.json -tc WifiDppTest
Change-Id: Ib531393a81526c468c978e31f1c62c5022245d55
2019-01-14 15:49:59 -08:00
Arc Wang
dcf3f2906f Fix Wi-Fi DPP activity crash after configuration change.
Both QR code and Wi-Fi network data may not come from intent.
After configuration change, the null data will crash the activity.

Bug: 120243131
Test: atest WifiDppConfiguratorActivityTest
Change-Id: I6abbfc5d25431789e8ac9f6ee9dfaaef15b2de33
2019-01-10 12:22:56 +08:00
Arc Wang
a7d51370c8 Implement Wi-Fi DPP flow
1. Wi-Fi DPP hanshake fail UI
2. Show Wi-Fi DPP QR code information field on WifiDppAddDeviceFragment if it's available.
3. Click 'Choose Different Network' button will show WifiDppChooseSavedWifiNetworkFragment
4. After QR code scanner scans success, WifiDppConfiguratorActivity caches WifiQrCode instead
   of just a QR code string

Bug: 122429170
Test: manual test
Change-Id: I1ce1b014ff86903b5a7a8f3575cc98eb1079583c
2019-01-10 12:09:58 +08:00
Arc Wang
8eda83d071 Add more Wi-Fi DPP UI features.
1. Use ConstraintLayout to fix footer buttons at bottom
2. ScrollViews have all other UI components excepts footer buttons
3. Use style/SuwGlifButton for buttons
4. Fix scan fragment crash when rotating screen

Bug: 118794978
Test: manual test
Change-Id: I509b0156c4835c75da75fb7ac4c82f55a0b506a1
2019-01-09 18:25:31 +08:00
Johnson Lu
7bdf8b3d37 Implement Wi-Fi DPP flow
1. As DPP configurator initiator.
2. As DPP enrollee initiator.
3. Pass whole DPP url to DPP API due to API cahnged.

Bug: 122331217
Test: manual test
Change-Id: I8005b78b82453badf253dbde8022ff20722b39fd
2019-01-08 13:42:42 +08:00
Arc Wang
c8cd5d3834 Add more Wi-Fi DPP UI features.
1. Update strings and icons.
2. Add more UI features in WifiDppAddDeviceFragment &
   WifiDppChooseSavedWifiNetworkFragment.

Bug: 118794978
Test: manual test
Change-Id: I2bee3f66732a1083fb13c113695899272e98c23e
2019-01-04 12:17:02 +08:00
Arc Wang
8e580952c3 Change action WIFI_DPP_CONFIGURATOR_CHOOSE_SAVED_WIFI_NETWORK to
PROCESS_WIFI_DPP_QR_CODE for more intuitive naming.

This change also caches the Wi-Fi DPP QR code in activity for
fragment to use.

Bug: 118794978
Test: manual test
Change-Id: I4bdb021883cb21ce7cc56edf656d1eee079359e5
2019-01-04 09:59:40 +08:00
Arc Wang
221b7e0b77 Refine Wi-Fi DPP fragments.
1. WifiDppQrCodeBaseFragment only declairs common UI components between fragments.
2. Initiate UI components in onViewCreated of each View.
3. Remove the only one usage of @NonNull since it should be used consistently
   throughout the class if we want to use it.
4. Use android.R.id for icon/title/summary

Bug: 120645817
Test: atest WifiDppConfiguratorActivityTest
      atest WifiDppEnrolleeActivityTest
      atest WifiDppQrCodeGeneratorFragmentTest
      atest WifiDppQrCodeScannerFragmentTest

Change-Id: I54f99a3072533cec46f0e47753ee0331fecf2ada
2019-01-02 07:13:10 +00:00
Arc Wang
1988fb75c6 Implement Wi-Fi QR code scanner flow.
1. Implements WifiNetworkConfig Wi-Fi connection method
2. Shows error message when the QR code is not valid and hides it after 2s
3. In configurator mode, launchs AddDeviceFragment for a valid QR code
4. In enrollee mode, connects Wi-Fi for a valid QR code

Bug: 118794978
Test: manual test
      atest WifiQrCodetest
      atest WifiDppConfiguratorActivityTest
      atest WifiDppEnrolleeActivityTest
      atest WifiDppQrCodeScannerFragmentTest

Change-Id: Ie4731b22df295c60906156d33ea28dad9c084ce4
2019-01-02 07:12:15 +00:00
Arc Wang
cc8212edf6 Add connect() method in WifiNetworkConfig to connect Wi-fi.
This method uses data of ZXing Wi-Fi QR code to connect.

Bug: 118794978
Test: manual test
Change-Id: I249f2f638c8d2fe231c50ba50eae8dfc0dc40a5c
2019-01-02 06:08:09 +00:00
Arc Wang
87c40f3b60 Fix ZXing Wi-Fi QR code parsing bug.
ZXing Wi-Fi QR code uses ';' as the delimiter for key/value pairs,
should not treat an escaped "\;" as the delimiter.

This fix also change the parsing result:

  If there is no specified key, the result value is null.
  If specified key exists with empty value, the result value is an empty string.

Bug: 118797380
Test: atest WifiQrCodetest
Change-Id: I786ce7c4fa66dcb31d8a61d7a3251c2f539ccc99
2019-01-02 06:07:46 +00:00
Johnson Lu
7414543635 Show QR Code picture for WiFi sharing
Bug: 118794858
Test: make RunSettingsRoboTests
Change-Id: Ic5a489840ba59262eb444f02d77bf066889a4220
2018-12-27 09:55:44 +08:00
Arc Wang
e1b6712926 Implement QR code parser WifiQrCodetest.
The parser supports standard WI-Fi DPP QR code & ZXing reader library's
Wi-Fi Network config format.

Bug: 118797380
Test: atest WifiQrCodetest
      atest RunSettingsRoboTests

Change-Id: Ia47b8f65a900099749a6aa24afa3abd21ede1582
2018-12-20 15:12:34 +08:00
Arc Wang
9dbc040510 Merge "Fine tune UI layout files of WifiDppQrCodeScannerFragment & WifiDppQrCodeGeneratorFragment" 2018-12-18 07:26:47 +00:00
Arc Wang
504aedb708 Merge "Support Wi-Fi DPP metrics categories in Wi-Fi DPP activities & fragments." 2018-12-18 02:30:36 +00:00
Arc Wang
fb0a081848 Fine tune UI layout files of WifiDppQrCodeScannerFragment &
WifiDppQrCodeGeneratorFragment

    1. Remove footer in landscape QR code scanner fragment
    2. Move header icon from activity layout file to header layout file
    3. Fine tune header layout file
    4. set icons for the 2 fragments

Bug: 118797380
Bug: 118794858
Test: atest WifiDppConfiguratorActivityTest
      atest WifiDppQrCodeScannerFragmentTest
      atest WifiDppQrCodeGeneratorFragmentTest
      atest RunSettingsRoboTests

Change-Id: I7e547d7c29dd947a890e902e61b8244fec399354
2018-12-18 02:23:22 +00:00
Johnson Lu
802363363f Merge "Adjust camera preview area to square" 2018-12-18 01:13:14 +00:00