Commit Graph

62 Commits

Author SHA1 Message Date
Tsung-Mao Fang
cb641fa6eb Show slice without toggle when there's no wifi permission
When the presenter app doesn't have certain permissions,
it's safer to go with a generic fallback slice
which just redirects user to the actual settings page.

Test: test on the presenter app. robo test
Fix: 178014725
Change-Id: I6f5358af2e00cb2fedba0b3f1474a026135986c6
2022-05-05 12:05:38 +08:00
Weng Su
2d3d9b9305 Hide Wi-Fi toggle in the Wi-Fi slice
- Hide Wi-Fi toggle and show restriction message in the Wi-Fi slice if Wi-Fi state is disallowed to change

- See the result screenshot in b/203168097#comment30

Bug: 203168097
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiSliceTest

Change-Id: I09ccb6349dadf64a2f903245ba203ce77c86d1e1
2022-05-04 10:26:50 +08:00
Tsung-Mao Fang
821608c5be Do not expose wifi slice when no permission
Prior to this cl, slice provider always exposes wifi slice
to calling package without confirming any wifi permissions.

For current solution, we will check calling package's permission state
and decide whether slice provider should expose wifi slice or not.

Because settings search is a part of settings app,
this permission checker won't be applied to settings intelligence.

Test: manual, robotest, cts
Also run manul
Bug: 178014725

Change-Id: I2770b5b43366a5aa65c7519efc4243d350a21b26
2022-04-19 08:07:35 +00:00
changbetty
39ebb7c9a8 Remove feature flag for provider model in wifi settings
Bug: 206338507
Test: manual test
Change-Id: I1ec83c94f801b489bcc716a6d78cbe7beab9638f
2021-11-17 15:57:14 +00:00
Jason Chiu
5b7230d355 Check the page searchability for both wifi and network provider page
Fix: 205976868
Test: manual, robotest build pass
Change-Id: Ic056852cb2524a6724dcf4a67b535fd927478338
2021-11-12 03:00:17 +00:00
Jason Chiu
2989c50a23 Add highlight menu keys for all toggle pref controllers and custom slices
Bug: 204695404
Test: manual, robotest build pass, unit
Change-Id: Iad2e28ada8ddb766ffa7eff2c8dc581250cbd6f8
2021-11-01 15:00:18 +08:00
Weng Su
29f4a35dea [RESTRICT AUTOMERGE] Add new ACTION_WIFI_DETAILS_SETTINGS to Settings
- Need to export the interface to Quick Settings to launch Wi-Fi Network
details settings.

- Rename WifiNetworkDetailsFragment.class

Bug: 191475923
Test: manual test with the topic CLs.
make RunSettingsRoboTests
atest -c SettingsUnitTests:com.android.settings.wifi \
         SettingsUnitTests:com.android.settings.network

Change-Id: Id2fd8c9b3b113ffbb49168305b05c67392fa4d87
(cherry picked from commit e8a4e13a80)
2021-08-26 04:24:39 +00:00
Weng Su
3d2950c8af Introduce new Disconnect functionality for Wifi networks in Internet
Panel only

- Display the close icon on the Wi-Fi network connected to the Internet,
and performs the same action as tapping on the carrier network when
tapped it.

- Display the cog icon on the Wi-Fi network if it has no the Internet
access.

- Screenshot:
  https://screenshot.googleplex.com/YBQ8onG2dFJ8Q2a

Bug: 187995278
Test: manual test
atest -c ProviderModelSliceTest

Change-Id: Id54a94c1fdfc37aff5cc37d6fb9f5478c0dccb00
2021-05-19 01:52:05 +08:00
Weng Su
a0d4c657c7 [Provider Model] Show "!" icon when Wi-Fi is not validated (panel)
- Screenshot:
  https://screenshot.googleplex.com/BLNcfXiJFnuoT9N

Bug: 185454486
Bug: 185637977
Bug: 186543071
Test: manual test
atest -c ProviderModelSliceTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiSliceTest

Change-Id: Idff6bb8b394db5553cf399d2020aa28d9dedfc74
2021-05-12 10:17:54 +00:00
Weng Su
a320fb12a1 [Provider Model] Carrie Wi-Fi offload toggle request (panel)
- Do not set Carrier Network together when setting Mobile Data, if
carrner network provision enabled.

Bug: 182324921
Test: manual test
atest -c ProviderModelSliceTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiScanWorkerTest

Change-Id: Ic8b77fd7b43372f077ba1c8be8fd9a7c3bcff197
2021-04-20 22:36:04 +08:00
Weng Su
439cc64b1c [Provider Model] Move the Internet unavailable Wi-Fi down
- Check the Wifi network have both INTERNET and VALIDATED capabilities
to achieve effective network access

- Move the Internet unavailable Wi-Fi down to the top of Wi-Fi list

- Don't paint color for the Internet unavailable Wi-Fi

- Screenshot:
  https://screenshot.googleplex.com/w82kbALssdTZmg4

Bug: 178457619
Bug: 178926547
Bug: 178978070
Test: manual test on device
atest -c InternetUpdaterTest \
         NetworkProviderWorkerTest \
         ProviderModelSliceTest

Change-Id: Idf04e556ab5a87abc5bc96d1934f5e8fd91fbfaa
2021-03-26 23:24:14 +08:00
Janis Danisevskis
5cef487b4b resolve merge conflicts of d42d9a41f6 to sc-dev
Change-Id: Ifa6a4af09d7cd45773a8c057416ab90fac23061e
2021-03-17 19:09:29 +00:00
Bonian Chen
203f0fe89d [Settings] Code refactor - remove unused import lines
Remove some unused import lines within source code based on
https://source.android.com/setup/contribute/code-style

Bug: 182867979
Test: build pass
Change-Id: I76dbcfa9e5b435b2838401dfee15b12f472d07d0
2021-03-16 10:24:24 +00:00
Steven Liu
c1477650c9 Introduce a WifiTrackerLibProvider.
This make the WifiTrackerLib can be customized.

Bug: 149540986
Test: manual test wifi picker, and atest com.android.settings
Change-Id: I1418ae39c895ce2ff87f18005a226a4835f9e083
2021-01-06 08:44:34 -08:00
Weng Su
e9f4928ef1 [Provider Model] Internet Panel UI update
- Add gear icon to connected non-carrier network

- Update "View airplane mode networks" wording

- Update "Turn off airplane mode" wording

- Check WiFi disable to show airplane mode message

- Screenshot
  https://screenshot.googleplex.com/BRjcKyMaMS4ujYN

Bug: 173413889
Test:
- Manual Test
- adb shell am start -a
android.settings.panel.action.INTERNET_CONNECTIVITY

Change-Id: Icf7b77e514cffa68cf103dbc9e7df93d58f9f762
2021-01-06 02:11:46 +00:00
Weng Su
74b18587fb [Provider Model] Implement the carrner network selection
- Add primaryAction for connecting carrier network

- User toggles carrier network On/Off
  - Calls MergedCarrierEntry#setEnabled(true/false)

- User taps on carrier network
  - Calls MergedCarrierEntry#connect()

Bug: 175761096
Test:
- Manual Test
- atest ProviderModelSliceTest
- atest ProviderModelSliceHelperTest
- make RunSettingsRoboTests ROBOTEST_FILTER=WifiScanWorkerTest

Change-Id: I07cb6c142a2f4e9cbdbab1f77afdc367728b4e3f
2020-12-28 13:23:24 +00:00
SongFerngWang
8cad0197bd Slice of Provider Model: add slice structure
Implement a slice which can show/update carrier networks.
Before and after: go/b173971144screenshot

Bug: 173971144
Test: atest NetworkProviderWorkerTest  (PASS)
atest ProviderModelSliceTest  (PASS)

Change-Id: I3f0dab364c88723ef3185a2ff040b1fbd1b099f4
2020-12-23 17:47:45 +08:00
SongFerngWang
a97b4faa67 The helper for slice of carrier and non-Carrier, used by ProviderModelSlice.
create a helper file.
create a res/drawable/ic_signal_strength_zero_bar_no_internet.xml
create string at res/values/strings.xml

Bug: 173971144
Test: atest ProviderModelSliceHelperTest
Change-Id: I7f63a6b04784325989e776cb140017314ebde4ce
2020-12-22 21:50:40 +08:00
Yi-Ling Chuang
49cda22b76 Add mutability flag to WifiSlice.
Starting Android S, PendeingIntent should have a explicit mutability
flag to avoid vulnerability.

Fixes: 172204181
Test: 1. adb shell am start -a
android.settings.panel.action.INTERNET_CONNECTIVITY and play on the wifi
panel.
2. Enable contextualWifiSlice and play on it.
3. Adjust volume on the volume panel.

Change-Id: I23f03cae8c481d9f5836b7fb967f734e9c99cd65
2020-12-09 21:35:15 +08:00
Weng Su
bd482c986c Add a mutability flag to the PendingIntent
- Request from Android Platform Security team.
  go/immutable-pendingintents

Bug: 170162129
Test:
1. adb shell am start -a
android.settings.panel.action.INTERNET_CONNECTIVITY
2. make RunSettingsRoboTests ROBOTEST_FILTER=WifiSliceTest
Change-Id: If3032959649206f2fb6736244d7aa8b9a8419378
2020-11-12 08:44:14 +00:00
Jason Chiu
b824187524 [DO NOT MERGE] Update contextual cards display mechanism
1. Make Wi-Fi card default to collapse.
2. Support showing a default card when there's no displayable card.
3. Solve the problem of icon not showing for cached slices in card
renderer

Bug: 163288869
Fixes: 159092915
Test: manual, robotest
Change-Id: Ie8b61ad58410337334e29b7a794353b0c6a6ba8c
2020-08-13 17:58:55 +08:00
Arc Wang
0496d2c142 [Wi-Fi] Apply WifiTrackerLib objects in Wi-Fi Slice
This change uses WifiTrackerLib's WifiPickerTracker & WifiEntry
to replace SettingLib's WifiTracker & AccessPoint.

This change includes

1. WifiScanWorker has the callbacks similar to a lifecycle component
   but it's not a lifecycle component. Let WifiScanWorker implements
   LifecycleOwner and provides #getLifecycle() for WifiPickerTracker.

2. Remove captive portal related code because WifiEntry#connect will
   handle captive portal login if it's necessary.

3. Create WifiSliceItem to wrap WifiEntry because WifiEntry is an
   abstract object and it does not provide copy constructor.
   Without copy construcor, Wi-Fi Slice may show unexpected information
   when a WifiEntry is updated.

Bug: 155613549
Bug: 152571756
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.slice
      make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi
Change-Id: I2d66ea4905daca3244ec4cf8f2935cda817480b1
2020-07-22 07:53:18 +00:00
Greg Kaiser
9e9255fb2a Revert "[Wi-Fi] Apply WifiTrackerLib objects in Wi-Fi Slice"
This reverts commit 7b1aded2a6.

Reason for revert: Settings is crashing for WiFi selection in SetupWizard on wembley

Bug: 161434533
Change-Id: I1d90e9bae1b31862fba674db0d7497e43f987a7f
Test: Locally reverted, reflashed, and was able to select WiFi without Settings crashing.
Exempt-From-Owner-Approval: Revert to clear up P0 while all owners are outside of work hours
2020-07-16 14:47:31 +00:00
Arc Wang
7b1aded2a6 [Wi-Fi] Apply WifiTrackerLib objects in Wi-Fi Slice
This change uses WifiTrackerLib's WifiPickerTracker & WifiEntry
to replace SettingLib's WifiTracker & AccessPoint.

This change includes

1. WifiScanWorker has the callbacks similar to a lifecycle component
   but it's not a lifecycle component. Let WifiScanWorker implements
   LifecycleOwner and provides #getLifecycle() for WifiPickerTracker.

2. Remove captive portal related code because WifiEntry#connect will
   handle captive portal login if it's necessary.

3. Create WifiSliceItem to wrap WifiEntry because WifiEntry is an
   abstract object and it does not provide copy constructor.
   Without copy construcor, Wi-Fi Slice may show unexpected information
   when a WifiEntry is updated.

4. Use WifiTrackerLib's NetworkDetailsTracker & WifiEntry in
   WifiDialogActivity because it gets a WifiEntry key from Wi-Fi Slice.
   NetworkDetailsTracker can get the WifiEntry of th key.

Bug: 155613549
Bug: 152571756
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.slice
      make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi
Change-Id: I0718f4647cea007a9b701922f3121a388dd43918
2020-07-16 15:56:42 +08:00
Jason Chiu
8ac1e4d49d Update icon tint color when the user toggles Dark theme
- Reload theme in slice provider when Dark theme mode changes for slices
- Reload theme in onCreate of Panel activity for its non-slice header
- Remove applyTheme from individual slices

Test: robotest
Fixes: 153700819
Change-Id: I40a7d2817c4b9100d7b2f2962a69c8a9ce6f7906
2020-05-12 10:58:54 +08:00
Jason Chiu
509c0119fb Add icons to contextual Wi-Fi card header
Fixes: 149666241
Test: robotest
Change-Id: I67076eb561bc496b272b28dc54bce8845d8d622f
2020-04-30 18:34:33 +08:00
Arc Wang
3fd7e31e3c [Wi-Fi] Fix crash when launch Wi-Fi detail from slice
Wi-Fi slice does not been applied to WifiTracker2, should not
launch the UI component for WifiTracker2.

Bug: 151065311
Test: manual
      Settings -> disable/enable Wi-Fi -> click the connected Wi-Fi
      See if Wi-Fi detail carshed.
Change-Id: I9cea305db85aab1bb694c21f95b81afd6a35321e
2020-03-10 11:06:59 +08:00
Jason Chiu
dd1fbd68d0 Wifi slice improvement
- always show toggle

Bug: 149666241
Test: robotest
Change-Id: I602d26abf2dfa631a939ee79e9adc63bed44ade0
2020-02-20 17:38:01 +08:00
David Su
6c6e77ed32 Rename removeDoubleQuotes to sanitizeSsid
Bug: 145745815
Test: compiles
Change-Id: Ic2fbb78b30d2c64d584cd94a79b2ed7e5e234440
2020-01-23 18:57:49 -08:00
Jason Chiu
fbf3d7574a Implement new design of Wi-Fi card
- always show Wi-Fi card
- collapse the card in the new UI session when connecting to a stable
  network
- hide toggle, show a level icon and subtext in the new collapsed mode
- show loading row when the AP list is not full

Test: robotest
Fixes: 147473096
Change-Id: I893064ef04d40d8e7cb8e62c1e72a2cb5e97f6ac
2020-01-21 17:26:29 +08:00
David Su
f4bb306eec Merge "Rename WifiSsid.NONE to WifiManager.UNKNOWN_SSID" 2019-11-20 18:57:28 +00:00
Arc Wang
75dc89b122 [Wi-Fi] Create WifiNetworkDetailsFragment related version 2 files for WifiTracker2 development
Create below version 2 files for WifiTracker2 development, we can
check the feature flag only a few times and easily remove version 1
files in the future.

    src/com/android/settings/wifi/details2/
    src/com/android/settings/wifi/savedaccesspoints2/
    tests/robotests/src/com/android/settings/wifi/details2/
    tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/

Bug: 143326832
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi.details2
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi.savedaccesspoints2

Change-Id: I4d2caf1ce313871605252395764b02747240f217
2019-11-15 14:41:23 +08:00
David Su
6d2c28f22a Rename WifiSsid.NONE to WifiManager.UNKNOWN_SSID
Bug: 144311098
Test: compiles
Change-Id: Id75f4f9223142f5184db54a4d380a2967f28469e
2019-11-12 18:56:09 -08:00
TreeHugger Robot
8bc21da216 Merge "Remove On/Off subtext next to the Wi-Fi toggle" into qt-dev 2019-05-14 04:44:27 +00:00
Jason Chiu
2c3e6c6434 Fix automatically directing the user to the captive portal in Wi-Fi Slice
The feature failed after the CL "Force the adapter to rebind cards with
a toggle".

Because toggle slices have been forced to rebind after starting another
activity and when any slice is updating. This unpins Wi-Fi slice and
stops WifiScanWorker and then clears the saved clicked network.

Solution:
1. Change ConnectToWifiHandler from activity to receiver and send
   broadcasts to it with FLAG_RECEIVER_FOREGROUND, so Wi-Fi slice won't
   be forced to rebind.
2. Seperate Wi-Fi scan worker and contextual Wi-Fi scan worker. Keep the
   original logic for the generic one, and then add the logic below to
   the contextual one.
3. Do not clear the saved clicked network when slice is unppined because
   it happens frequently in contextual homepage.
4. Introduce a static long in ContextualWifiScanWorker that updates once
   in every visible UI session. A session is when the screen is visible
   to user.
5. Use session token to determine whether auto-starting captive portal
   is needed.

Fixes: 128056349
Test: robotest, visual in homepage and network panel
Change-Id: I9e03c379806e124fa7253b2a635574b2433f6afc
2019-05-11 03:26:57 +00:00
Jason Chiu
46294872c7 Remove On/Off subtext next to the Wi-Fi toggle
Fixes: 132312797
Test: robotest, visual
Change-Id: I2c3b39e8deda211d23be0b2a73426778dbbf53db
2019-05-09 15:19:02 +08:00
Jason Chiu
6a6787cdc0 Add subtext for Wi-Fi items on Wi-Fi slice
- Sync the Wi-Fi slice items subtexts with Wi-Fi page, and add
  "Not connected" when the returned subtext is empty
- Wi-Fi slice header subtext just simply reveals on/off state
- Add a placeholder to the loading row to sync its height with other
  rows
- Show contextual Wi-Fi slice when the connected network is captive
  portal, is invalidated, or has limited connectivity

Bug: 130751985
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi
Change-Id: I0b2715295f00edc8dd7d6d75b7fdc18263675797
2019-05-03 16:18:42 +08:00
Jason Chiu
a73d7715d1 Automatically direct the user to the captive portal in Wi-Fi Slice
Save the SSID when the user clicks the network, and then automatically
start login page when the network gets the captive portal capability.

Fixes: 128056349
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi
Change-Id: Ia25241a8243d7d6aae604f341b512350404d9fd1
2019-04-23 12:07:20 +08:00
Jason Chiu
8f6c06974c Add prompt to sign in at captive portal to Wi-Fi Slice
- Support signing in captive portal APs in WifiSlice
- Show ContextualWifiSlice when signing in is required
- Generifies SliceBackgroundWorker.getInstance() to return <T extends SliceBackgroundWorker>

Fixes: 128056349
Test: make RunSettingsRoboTests -j
Change-Id: Ib4d3942591a65e81018389e4c0bbddfea6854dbc
(cherry picked from commit dd9f92280b)
2019-04-04 16:51:02 +00:00
Jason Chiu
1b5f5ef510 Add Wi-Fi connect listener in ConnectToWifiHandler
- Extract the connect listener from WifiSettings
- Add a listener to display a toast on failure to connect in ConnectToWifiHandler
- Also for the new AccessPoint.startOsuProvisioning() which accepts a connect listener

Bug: 123697580
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi
Change-Id: I29b2c1e2c58312d692675ecabf2818b4bbed3b51
2019-04-02 13:44:08 +08:00
Quang Luong
619211cd9e Merge "Added connect listener to startOsuProvisioning()" 2019-04-01 17:55:36 +00:00
Jason Chiu
53d147dd5c Refactor WifiScanWorker
Extracted WifiScanWorker from WifiSlice

Bug: 128056349
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.slices
Change-Id: I9b3c809ee6c2b7466c959631840b257b91b49d88
2019-04-01 16:40:59 +08:00
Quang Luong
1859a19302 Added connect listener to startOsuProvisioning()
Updated AccessPoint.startOsuProvisioning() call to accept a connect
listener to display a toast on failure to connect.

Bug: 123697580
Test: build
Change-Id: I0f29b2f5ccc8f2d4b8137639725dca1bcb106b26
2019-03-28 13:09:37 -07:00
Mill Chen
a77a05d5ae Add keywords for wifi slice
Wifi slice didn't have a bunch of keywords for search, so users have to
type full matched text to search for wifi setting. We added keywords for
wifi slice to fix it, in which keywords are defined in strings.xml.

Fixes: 109922806
Test: rebuild
Change-Id: Ibe3b65c186cf6f43ae744c1f478d8985e270374c
2019-03-21 17:21:33 -07:00
Jason Chiu
b056c3a2b6 Show connecting and connected messages on the header subtext of Wi-Fi slice
Fixes: 128631698
Test: robotest
Change-Id: I1ea2a65d09eca9b3dd06f56c4ae69ef7f68ffd86
2019-03-21 18:49:09 +08:00
Jason Chiu
d4ab14969f Merge "Fix the bug of "Connecting" is rarely appearing on Wi-Fi slice" 2019-03-18 10:13:56 +00:00
Jason Chiu
4e42f53896 Fix the bug of "Connecting" is rarely appearing on Wi-Fi slice
- AccessPoint treats connected and connecting as equal so slice doesn't
refresh in this case
- Add a new method to determine if two lists are the same in SliceBackgroundWorker
- WifiScanWorker overrides this method to check the access point states

Fixes: 123941320
Test: robotest
Change-Id: I78d610da4b6b1d40f5785ba6701fb71b987fe31c
2019-03-18 16:01:48 +08:00
Fan Zhang
4cb2727989 Tie ContextualWifiSlice to UI instead of garbage collector
- Introduce a static long in SliceFeatureProvider that updates once
  every "session". A session is when user is in an UI (screen rotation,
  going to subpage, etc does not break the continuation of session).

- Use session token in ContextualWifiSlice to determine when to refresh,
  instead of relying on WeakHashMap from CustomSliceManager.
  WeakHashMap can be cleaned up at any time by gc so it doesn't match
  what we want on the UI.

- Also as a side fix, merged CustomSliceManager into
  SliceFeatureProvider.

Fixes: 123937830
Test: robo
Change-Id: I199bceceb208b99a32f3f08e624787b5a03e73a9
2019-03-14 14:45:59 -07:00
Jason Chiu
ec5ace3e19 Remove settings gear icon from connected network in Wi-Fi slice
- remove the gear icon from the active access point
- do not show any icon for the active access point

Fixes: 126458943
Test: robotest
Change-Id: Ibb57c6e1e1840e54266b49e0f092839a9c145187
2019-03-08 15:00:16 +08:00
Jason Chiu
6bbe6e2362 Leverage the behavior of showing the searching message in wifi slice
Fixes: 124823973
Test: robotest
Change-Id: Id89ec5ef09f05f83e019a6f4488cacf2ab4e635b
2019-02-27 12:20:11 +08:00