Commit Graph

923 Commits

Author SHA1 Message Date
Tsung-Mao Fang
d2c372450c Wi-Fi panel doesn't need to check permission
Prior to this cl, we use #getPackagesForUid()
to get a list of calling package names and
pick up 1st package name in the list as target
calling package. And then go to check the
Wi-Fi permission.

This implementation is ok for most apps without
sharing system uid. However, this may not work
if the package is set with sharing system ui.
In this case, we get a list of packages
and we don't know which one is caller. So, if we
decide to choose the 1st package as our
calling package, then it could fail to pass
permission check since that package could be not
a correct calling package.

In this cl, we skip permission check for those
packages running with system uid. So, it can resolve
Wi-Fi Panel problem since Wi-Fi panel runs
on settings process(with system uid).

Test: 1. adb shell am start -a android.settings.panel.action.WIFI
2. Verify on assistant app and system ui launcher and search app.
Bug: 240531998

Change-Id: Ia825853dde2e966e3d390cecfbe1a99f6439d31e
Merged-In: Ia825853dde2e966e3d390cecfbe1a99f6439d31e
2022-08-16 03:59:56 +00:00
Weng Su
670070528c Merge "Avoid unnecessary stopTethering when startTethering fails" into tm-dev 2022-05-13 06:14:57 +00:00
Weng Su
bbeed14835 Merge "Get app label by launched package" into tm-dev 2022-05-13 06:13:44 +00:00
Bonian Chen
5c71853bd9 [Settings] Expand scrollable area of Wifi calling UI
1. Replace InstrumentedDialogFragment by SettingsPreferenceFragment.
   Enable the capability of shirnking the size of title.
2. Move switch bar into Preference.
   Enlarge scrollable area within this UI page.

Bug: 224661026
Test: local
Change-Id: I6e0a491721e9f93858c389593b2bb891f6fa8f8d
2022-05-13 09:18:32 +08:00
Weng Su
b1795081da Avoid unnecessary stopTethering when startTethering fails
- If Wi-Fi tethering is enabled or enabling, avoid to startTethering again.

- If Wi-Fi tethering is disabled or disabling, avoid to stopTethering again.

- Add more logs to know which module stopped Tethering.

Bug: 230457055
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherSwitchBarControllerTest

Change-Id: I51d42ac0117d935ecaa9fa7312acc646b43d3593
2022-05-13 05:21:28 +08:00
Weng Su
25b0db21ac Get app label by launched package
- Activity#getCallingPackage will return null in some special cases, use the launched package instead.

Bug: 194709435
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiScanModeActivityTest

Change-Id: I4f22bab7592dedf75dd36daf5e18dbc934bc8655
2022-05-11 22:51:45 +08:00
Jonathan Scott
b7f4f56cad Add missing settings strings.
Also re-enable and fix tests.

Test: manual
Fixes: 226183482
Fixes: 218799125
Fixes: 219375624

Change-Id: I9605f1f4e2e834baf63e015e96639567c5481b5f
2022-05-05 09:12:59 +00:00
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
TreeHugger Robot
3fb9c1a24b Merge "Hide Wi-Fi toggle in the Wi-Fi slice" into tm-dev 2022-05-04 16:01:35 +00: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
TreeHugger Robot
cf52a8ea7d Merge "Show restricted message in Wi-Fi hotspot settings" into tm-dev 2022-05-03 08:58:13 +00:00
Weng Su
e37a553e94 Show restricted message in Wi-Fi hotspot settings
- Remove Wi-Fi hotspot preferences in settings search if Wi-Fi hotspot is disallowed

- See the result screenshot in b/203168953#comment12

Bug: 203168953
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherSettingsTest

Change-Id: Id4416fd0659b596e4e6f31890a139198219f4552
2022-05-03 13:58:54 +08:00
TreeHugger Robot
38989c9c6a Merge "Show restricted message in Wi-Fi Direct summary" into tm-dev 2022-04-29 15:16:44 +00:00
Weng Su
5e3d75a6f9 Show restricted message in Wi-Fi Direct summary
- See the result screenshot in b/203168953#comment9

Bug: 203168953
Test: manual test
make RunSettingsRoboTests \
    ROBOTEST_FILTER=WifiP2PPreferenceControllerTest

Change-Id: I87ad6d7554fbb4aa86d4617438fa359c67544812
2022-04-29 03:41:56 +08:00
Weng Su
4e34e65228 Show restricted message in Wi-Fi hotspot summary
- Refine WifiTetherPreferenceController

- See the result screenshot in b/203168953#comment8

Bug: 203168953
Test: manual test
make RunSettingsRoboTests \
    ROBOTEST_FILTER=WifiTetherPreferenceControllerTest

Change-Id: If094178eb0cd9ccf20ff3899dc4b087b45c66f6b
2022-04-28 18:28:49 +00:00
Weng Su
71b9cc0e32 Check Wi-Fi permissions for QrCode scanner
- Launched package require ACCESS_WIFI_STATE and ACCESS_FINE_LOCATION permissions to get results

Bug: 187176859
Test: manual test
make RunSettingsRoboTests \
    ROBOTEST_FILTER=WifiDppQrCodeScannerFragmentTest

Change-Id: Ie80c4e5b3a5863749de518e4736873390478816e
2022-04-26 07:10:57 +00: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
Quang Luong
93ae7acbf4 Merge "Use WifiEntry.getStandardString() for Wi-Fi Type summary" into tm-dev 2022-04-14 16:14:21 +00:00
Weng Su
6c42636cb8 Fix unexpected Wi-Fi hotspot shutdown
- Filter out unnecessary onSwitchChanged callbacks when the switch is
  disabled, which should not be triggered by user input.

- Refine the state handling function to avoid unnecessary
  onSwitchChanged callback.

- Refine the error handling of isHotspotPasswordValid function.

Bug: 227719584
Test: manual test
make RunSettingsRoboTests \
  ROBOTEST_FILTER=WifiTetherSwitchBarControllerTest

Change-Id: If62aaadc8ddb214769b1367d7801b6125bb5377c
2022-04-08 05:35:14 +08:00
Weng Su
9ed56d081c Merge "Settings: Fix NPE FC when access saved wifi p2p device after screen rotation" am: c68e241fa6 am: ec1b6c308a am: c422d95147
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1989236

Change-Id: I71a0799dd5561b069d587491f78957e48fa87541
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-01 09:06:51 +00:00
Weng Su
c68e241fa6 Merge "Settings: Fix NPE FC when access saved wifi p2p device after screen rotation" 2022-04-01 08:08:51 +00:00
Treehugger Robot
4440e7a067 Merge "Settings: Fix WifiSettings FC when rotating screen" am: f558fc27d9 am: 3531a34760 am: caa0bbd931
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1975409

Change-Id: I56e489c2867242dfc425aba6dea8896d903ab4c3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-01 02:16:00 +00:00
Weng Su
2088b4985d WiFi restricted connection when scan QR code
- Use WifiEntry#canConnect() to determine if the network can be
  connected.

- Add WiFi network but don't connect if WiFi restricted connection.

- See the result screenshot in b/203168943#comment16

Bug: 203168938
Bug: 203168943
Test: manual test
make RunSettingsRoboTests \
  ROBOTEST_FILTER=WifiDppQrCodeScannerFragmentTest

Change-Id: I06d1e832176e540ddd1adce8da46ef8659534ab7
2022-04-01 06:04:34 +08:00
Quang Luong
29bc66a352 Use WifiEntry.getStandardString() for Wi-Fi Type summary
Bug: 222337006
Test: manually verify NetworkDetails page shows Wi-Fi Type
Change-Id: I4576fe083f87f631c5f98c526422544055a9df20
2022-03-31 10:40:02 -07:00
hoffc
0991b39ed3 Settings: Fix NPE FC when access saved wifi p2p device after screen rotation
Rotating screen, wifi p2p setting fragement will be re-created and the selected wifi p2p device will be saved in onSaveInstanceState. However, now this saved wifi p2p device is restored in onActivityCreated, this is too late. So when getting this saved wifi p2p device return NULL in onCreateDialog and leads to NPE force close.

Restore the saved wifi p2p device in onCreateView instead of onActivityCreated.

Bug: 220025725
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiP2pSettingsTest

Change-Id: I9b746e21f7f3651c69b1445f2389c089ec19319c
2022-03-31 06:52:37 +00:00
hoffc
f3fe5cf197 Settings: Fix WifiSettings FC when rotating screen
Rotating screen will trigger wifisettings re-creation. Force close occurs If receiving wifi picker tracker callback during activity finishing.

Bug: 218411211
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiSettingsTest

Change-Id: I06d251a8a12d3f8785db24ead0abe31c0f34cc9b
2022-03-31 04:00:52 +00:00
TreeHugger Robot
670016a2ee Merge "[LeAudio] Remove the QrCamera and decorateView in Settings" into tm-dev 2022-03-29 06:33:46 +00:00
TreeHugger Robot
727583b75f Merge "Fix Wi-Fi hotspot switch UI issue" into tm-dev 2022-03-25 08:40:57 +00:00
Zoey Chen
bf99e37329 [LeAudio] Remove the QrCamera and decorateView in Settings
Bug: 214340362
Test: Manual test
Change-Id: Ibc29f0e90af28e14a11164fa8940920745545c7e
2022-03-24 21:19:18 +08:00
Weng Su
b844a7a920 Fix Wi-Fi hotspot switch UI issue
- The Wi-Fi hotspot switch only handles the click event from the UI.

- Use the onSwitchChanged callback to handle click and swipe events.

Bug: 218891956
Test: manual test
make RunSettingsRoboTests \
  ROBOTEST_FILTER=WifiTetherSwitchBarControllerTest

Change-Id: Ie4136443845489be295a8ee0f3058f493a3b5829
2022-03-24 20:09:29 +08:00
Betty Chang
0ef919db7e Merge "Move the QrCodeGenerator from Settings to SettingsLib for Wifi and BT" into tm-dev 2022-03-24 08:21:16 +00:00
changbetty
dacce1fae3 Move the QrCodeGenerator from Settings to SettingsLib for Wifi and BT
Bug: 214338905
Test: Manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=QrCameraTest
Change-Id: I1ca3e9e0b2cdc9fd3f32da8c5329c0e887ee3427
2022-03-23 13:38:46 +00:00
TreeHugger Robot
a12da0a8e8 Merge "Fix adding wifi configuration issue" into tm-dev 2022-03-23 08:27:47 +00:00
Weng Su
f5cd7140f4 Fix adding wifi configuration issue
- The Wi-Fi Enterprise Restrictions add a new
  UserManager.DISALLOW_ADD_WIFI_CONFIG restriction from T.

- When a user requests to add Wi-Fi configuration, Settings will
  reject the request if the user is not allowed.

- The above restriction need to be retrieved in advance so that the
  user's request will not be rejected.

- See the result screenshot in b/224459753#comment8

Bug: 224459753
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=AddAppNetworksActivity

Change-Id: I2dfb6b9946dd9dbd4eb8bf0f6549ac5cb4466f17
2022-03-23 06:18:55 +08:00
Weng Su
98d30c880d Fix ConnectivityManager.requestNetwork crash issue when try again
- When the user requests "try again", the Network-Request-Dialog will be
  recreated. If the Wi-Fi framework sends the callback result at this
  time, the Network-Request-Dialog may not be ready at the moment,
  causing the NPE to crash.

- Add NPE checks to avoid crash issues.

Bug: 220679437
Test: manual test
make RunSettingsRoboTests \
  ROBOTEST_FILTER=NetworkRequestDialogActivityTest

Change-Id: I8e48a29649e72d9f8c67c4ac24f0eb27ba600dae
2022-03-22 18:14:22 +00:00
Weng Su
190d871520 Restrict WiFi network connection
- Use StandardWifiEntry#canConnect() to determine if the network should
  be disabled or not.

- Use StandardWifiEntry#getSummary() to retrieve the restriction message.

- Disabled WiFi network if it cannot connect.

- If WiFi network is connected or saved network, leave it enabled to
disconnect or configure.

- See the result screenshot in b/203168943#comment11

Bug: 203168938
Bug: 203168943
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=LongPressWifiEntryPreferenceTest
make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest

Merged-In: I04aafaa5b383598a0f87eea15d06b38bbc662b9e
Change-Id: I04aafaa5b383598a0f87eea15d06b38bbc662b9e
(cherry picked from commit f86bdc9c69)
2022-03-08 07:06:30 +00:00
Jimmy Chen
78a0f6f98e p2p: Close the channel when onStop is called.
P2P dialog is moved to an indenpendent activity, it will push Settings
to background and trigger onPause(). As P2P dialog is a Dialog Activity,
it won't trigger onStop, but SoftAp and NAN activity will. Moving
channel closing to onStop to adapt to new P2P dialog design.

Bug: 219406778
Test: make RunSettingsRoboTests ROBOTEST_FILTER=WifiP2pSettingsTest
      create a p2p connection between 2 devices with this build.
Change-Id: I2fab5aa1021ec1a993f811c7310079db9d7f03c0
2022-03-07 10:44:04 +08:00
TreeHugger Robot
1cdd5923f8 Merge "Mock UserManager.class for WifiSettingsTest" 2022-01-25 03:11:38 +00:00
TreeHugger Robot
544397015b Merge "Fix WifiSummaryUpdaterTest issues for registerReceiver security design" 2022-01-24 09:46:33 +00:00
Weng Su
679153be09 Mock WifiP2pManager.class for WifiP2pSettingsTest
Bug: 214938188
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiP2pSettingsTest

Change-Id: I21bfc1c8303970437ae2641ed0f2f9c16f09b33f
2022-01-23 10:15:40 +00:00
Weng Su
481f696a88 Fix WifiSummaryUpdaterTest issues for registerReceiver security design
- Security team add new interface to Context.registerReceiver() with a
third parameter for new security design.

- The new interface might have some issues in the test environment.

- Spy the registerReceiver() and unregisterReceiver() to avoid
unexpected issues.

Bug: 214938188
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiSummaryUpdaterTest

Change-Id: Ibd1c5c1f7b4309ad5079f33bb232f249c6bd997f
2022-01-22 14:40:34 +00:00
Weng Su
a9a1bb3747 Mock UserManager.class for WifiSettingsTest
Bug: 214938188
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiSettingsTest

Change-Id: I1b8faba6348b6dfddbd7eb6ccfaa35ca32366c91
2022-01-22 14:07:40 +00:00
TreeHugger Robot
4cdf2aa472 Merge "Mock WifiManager.class for Roboletric test-cases" 2022-01-22 08:33:58 +00:00
Weng Su
ea0425e1f8 Mock WifiPickerTracker.class for Roboletric test-cases
Bug: 214938188
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=NetworkRequestDialogActivityTest
make RunSettingsRoboTests ROBOTEST_FILTER=NetworkRequestDialogFragmentTest
make RunSettingsRoboTests ROBOTEST_FILTER=NetworkRequestErrorDialogFragmentTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiConnectionPreferenceControllerTest

Change-Id: I4c15c2a095203338bb9cf7bcd359242d59bf8b4e
2022-01-21 07:24:21 +00:00
Weng Su
64cc3bf9a4 Mock WifiManager.class for Roboletric test-cases
Bug: 214938188
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=AddNetworkFragmentTest
make RunSettingsRoboTests ROBOTEST_FILTER=ConfigureWifiEntryFragmentTest
make RunSettingsRoboTests ROBOTEST_FILTER=ContextualWifiSliceTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiConfigControllerTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiSliceTest

Change-Id: I96873c48b36ed11b30e32bba1b98b6328ad17bb7
2022-01-21 07:17:37 +00:00
TreeHugger Robot
04f6983ddd Merge "Fix the Robolectric Tests Failures" 2022-01-19 07:04:38 +00:00
Weng Su
d2cdd60139 Fix Robolectric failures for new registerReceiver security design
- Security team add new interface to Context.registerReceiver() with a
third parameter.

- The new interface might have some issues in the test environment.

- Spy the registerReceiver() and unregisterReceiver() to avoid
unexpected issues.

Bug: 214938188
Test: manual test
make RunSettingsRoboTests
ROBOTEST_FILTER=WifiPrimarySwitchPreferenceControllerTest

Change-Id: I5bf9fc860a3de99145bc7535ba57cb514b403966
2022-01-18 17:48:28 +00:00
Weng Su
1779bd43e4 Fix the Robolectric Tests Failures
- The ShadowWifiManager class is not working as expected
  - The getSystemService(WifiManager.class) return null when testing

- Use Mockito class instead of Shadow class

Bug: 214906101
Bug: 214938188
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=AllInOneTetherSettingsTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherSettingsTest

Change-Id: Ic54af8524fbff1b6ac916ca8e1bcac52f413663a
2022-01-18 14:27:54 +00:00
Tsung-Mao Fang
8498760b07 Ignore broken tests related to wifi tracker lib
Test: Run entire robo tests
Bug: 214938188
Change-Id: Ic23c758737786c2294c400fd2746583fef426f2f
2022-01-17 21:27:25 +08:00
Betty Chang
277976811d Merge "Add WiFi Enterprise restrictions check for WiFi Configuration Addition" 2022-01-12 02:04:17 +00:00