Commit Graph

31 Commits

Author SHA1 Message Date
Arc Wang
a12b372dd2 [Wi-Fi DPP] Refine code
Remove unused code.
Rename some variables and methods for better readability.
Fix typos.
Reduce unnecessary variable scope and method scope.
Simplify some code logic.

Bug: 120645817
Test: atest com.android.settings.wifi.dpp
Change-Id: I8f30b3e445f25ada927e995befee1783d2270b91
2019-07-19 10:29:06 +08:00
TreeHugger Robot
d9f680fc92 Merge "[Wi-Fi DPP] Add a parent class for WifiDppConfiguratorActivity and WifiDppEnrolleeActivity" 2019-07-09 11:15:28 +00:00
Arc Wang
2d211208d6 [Wi-Fi DPP] remove unused code
Bug: 120645817
Test: atest com.android.settings.wifi.dpp
Change-Id: I467888de0efe8ae663863e9eacc15e77d32487d2
2019-07-08 18:23:56 +08:00
Arc Wang
91c3146b48 [Wi-Fi DPP] Add a parent class for WifiDppConfiguratorActivity and WifiDppEnrolleeActivity
To reduce duplicate code.

Bug: 129305770
Test: atest com.android.settings.wifi.dpp
Change-Id: I3046c7d6dd7159a9a7dd7766370a65c0f5b3150e
2019-07-08 17:36:18 +08:00
Arc Wang
8e3c49123d [Wi-Fi DPP] Refine Wi-Fi DPP UI layouts with SUW library
1. Use GlifLayout in all fragments
2. Fragments use 32dp icon instead of 48 dp
3. Replace ScrollView & ProgressBar & Header & Footer of original layout with GlifLayout design
4. Remove ActionBar (no more back button on screen top)

Bug: 129021867
Test: manual
Change-Id: I2fda48cb7f7819b2c8dd85c10d39e1f187463bd8
2019-05-21 13:59:39 +08:00
Arc Wang
ac75faa207 Fix back arrow in wifi settings "connect to this network connection qr code" does not work
When clicking back button, pop fragment and Finish the activity if there is nothing to pop

Bug: 132132756
Test: atest WifiDppConfiguratorActivityTest
Change-Id: Ia16951e79e578f1625e5fadd26553735fa90bffa
2019-05-07 18:06:54 +08:00
Arc Wang
b249fb7d13 Support to share Wi-Fi hotspot via QR code
1. QR code scanner (Wi-Fi Easy Connect) does not support sharing Wi-Fi hotspot
   at current stage
2. Wi-Fi hotspot QR code button only shows when Wi-Fi hotspot is enabled
3. The QR code has the security string "WPA" for hotspot's WPA2_PSK

Bug: 123151660
Test: atest WifiTetherSSIDPreferenceControllerTest
            WifiQrCodeTest WifiDppConfiguratorActivityTest
            WifiDppEnrolleeActivityTest
            WifiDppQrCodeGeneratorFragmentTest
            WifiDppQrCodeScannerFragmentTest
            WifiNetworkListFragmentTest
            WifiDppChooseSavedWifiNetworkFragmentTest

Change-Id: I2e89450180b82cc841ee3b15be52bfc6f9f6164d
2019-03-08 11:48:12 +08:00
TreeHugger Robot
0fa2651d3f Merge "Change Easy Connect intent naming" 2019-03-03 16:17:33 +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
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
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
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
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
61447c7b88 Merge "Check whether the device support DPP for public intent" 2019-01-21 03:06:12 +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
Fan Zhang
31b210017b Migrate all MetricsProto enums to SettingsEnums
Bug: 122855168
Test: rebuild
Change-Id: I962d9a71179f86b7cae9dc5e9a00e0aa1557dc76
2019-01-17 14:55:42 -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
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
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
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
c8a65cbddf Support Wi-Fi DPP metrics categories in Wi-Fi DPP activities & fragments.
MetricsProto.MetricsEvent.SETTINGS_WIFI_DPP_CONFIGURATOR
  MetricsProto.MetricsEvent.SETTINGS_WIFI_DPP_ENROLLEE

Bug: 118797380
Bug: 118794858
Bug: 118794978
Test: NA
Change-Id: I62fe09029d350fa976465ac872a4f53a64a74dcd
2018-12-14 08:16:52 +00:00
Arc Wang
4ab0d168e2 Implement Wi-Fi DPP UI.
Add WifiDppEnrolleeActivity
  Remove bottom buttons of WifiDppQrCodeScannerFragment
  Add ActionBar in WifiDppQrCodeScannerFragment &
      WifiDppQrCodeGeneratorFragment

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

Change-Id: I1d464dc9a8d54a896b8e0c9185a74bed7b193b60
2018-12-12 10:07:20 +08:00
Arc Wang
e43bb77e5d Use multiple actions to launch Wi-Fi DPP configurator with different mode.
Bug: 118797380
Bug: 118794858
Test: atest WifiDppConfiguratorActivityTest
      atest WifiDppQrCodeScannerFragmentTest
      atest atest RunSettingsRoboTests

Change-Id: I96aba3c5e3d57c89d6948d3bf3dd85f29f705778
2018-12-04 11:46:37 +08:00
Johnson Lu
a558c01696 Integrate QrCode Camera with WifiDppQrCodeScannerFragment
Bug: 118797380
Test: RunSettingsRoboTests
Change-Id: I328bebbbcf44136df2c18ca1929a5da377a0cf6b
2018-12-01 09:03:39 +08:00
Arc Wang
f5d6089d35 Upload basic UI files for Wi-Fi DPP Settings development II.
Add 3 fragments:

  WifiDppQrCodeGeneratorFragment
  WifiDppChooseSavedWifiNetworkFragment
  WifiDppAddDeviceFragment

Bug: 118797380
     118797202
     118794978
     118796825
     118794858
Test: atest WifiDppConfiguratorActivityTest
      atest WifiDppQrCodeScannerFragmentTest
      atest atest RunSettingsRoboTests

Change-Id: I2fbc2f46f941d49b63e4ac74d92f94bf617d2b9b
2018-11-29 07:11:29 +00:00
Arc Wang
4591d82bdf Upload basic UI files for Wi-Fi DPP Settings development.
WifiDppQrCodeScannerActivity is the activity for user to scan
QR code and add device to a saved network.

Bug: 118797380
Test: manual
Change-Id: If2c8c5ba1620e5584fb47ba7b0ea2bc2d7acb641
2018-11-21 10:06:47 +00:00