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
- 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
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
- 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)
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
- 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
- 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
This make the WifiTrackerLib can be customized.
Bug: 149540986
Test: manual test wifi picker, and atest com.android.settings
Change-Id: I1418ae39c895ce2ff87f18005a226a4835f9e083
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
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
- 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
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
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
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
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
- 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
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
- 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
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
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
- 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
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
- 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)
- 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
Updated AccessPoint.startOsuProvisioning() call to accept a connect
listener to display a toast on failure to connect.
Bug: 123697580
Test: build
Change-Id: I0f29b2f5ccc8f2d4b8137639725dca1bcb106b26
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
- 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
- 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
- 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