Commit Graph

187 Commits

Author SHA1 Message Date
Weng Su
259d3a47c8 Avoid disabling the Wi-Fi hotspot switch causing Talkback confusion
- Use local variables to filter inappropriate callbacks when the switch is busy

Bug: 374234537
Flag: EXEMPT bugfix
Test: Manual testing
atest -c WifiTetherSwitchBarControllerTest

Change-Id: If5237230c73cae5a6230a6d3fdaa65a8511bdcd8
2024-10-28 03:31:32 +08:00
Weng Su
675b817c49 Hide new Hotspot preferences if feature is disabled
- Hide new "Security" preference

- Hide new "Speed and compatibility" preference

Bug: 356898105
Flag: EXEMPT bugfix
Test: Manual testing
atest -c WifiTetherSettingsTest

Change-Id: I734959ed511929bfcc9a314770a4acdf9a7e0b99
2024-08-12 05:49:02 +08:00
Weng Su
3dc7837617 Remove Instant Hotspot from Settings search
- If Instant Hotspot is not enabled then remove it from Settings search

Bug: 339159245
Flag: None
Test: Manual testing
atest -c WifiTetherSettingsTest

Change-Id: I0b1d34c1130b17bfc0f3f0451a10c8aba265733c
2024-05-11 20:00:02 +08:00
Sunny Shao
076ed573eb Revert^2 "Nullability Annotations replacement"
This reverts commit 19d1d3d15d.

Reason for revert: revert it because this is not the root cause.

bug: 316867690
Change-Id: I0f168dbb64044aa720202af7b1040afd4f028c9c
2024-01-10 07:34:01 +00:00
Sunny Shao
19d1d3d15d Revert "Nullability Annotations replacement"
This reverts commit cf0501e4d7.

Reason for revert: b/317462033, it seems a flaky but revert it first.

Change-Id: Ie1d5e279cca6477fc17d8c27c1ecda8d7a6b2553
2023-12-29 02:28:24 +00:00
sunnyshao
cf0501e4d7 Nullability Annotations replacement
-- Replace the android.annotation.Nullable / android.annotation.NonNull
   with androidx.annotation.Nullable / androidx.annotation.NonNull

Bug: 316867690
Test: build pass
Change-Id: I0c1da55dfb09ece855151c47e0492d6f46538621
2023-12-20 08:50:09 +08:00
Chaohui Wang
0664d3cc45 Clean up AllInOneTetherSettings
This project is not on-going.

Clean up to help improve latency.

Bug: 311604902
Test: manual - on Network & internet page
Test: robo test
Change-Id: I6addb92e5587206661d1b64bdc56473a85ba9c9f
2023-11-30 12:27:33 +08:00
Chaohui Wang
08a1c9876e Revert^2 "Migrate to CompoundButton.OnCheckedChangeListener"
8979681a8d

Change-Id: I60edd3aabf49afbe4aa016af780baa68d928bddf
2023-11-07 14:17:15 +00:00
Sebastian Pickl
8979681a8d Revert "Migrate to CompoundButton.OnCheckedChangeListener"
Revert submission 25147565-onSwitchChanged-CompoundButton

Reason for revert: breaking builds 

Bug:309601476

Reverted changes: /q/submissionid:25147565-onSwitchChanged-CompoundButton

Change-Id: Ie746db87d9c642599593aa3d5e5baf6b7ba89c0e
2023-11-07 13:26:36 +00:00
Chaohui Wang
71d1f021af Migrate to CompoundButton.OnCheckedChangeListener
Switch and SwitchCompat are both CompoundButton.

Using CompoundButton in Java will helps migration in the future.

Bug: 306658427
Test: manual - check Settings pages
Change-Id: If2e08a9a9557ec66a3b31ef18cd2e15943098a59
2023-11-07 20:22:27 +08:00
Chaohui Wang
12ea5afdf1 Not call MainSwitchBar.getSwitch()
This is private implement details, will be removed in future.

Should call MainSwitchBar's isChecked() and setChecked() to ensure
main switch bar's style is set correctly.

Bug: 306658427
Test: manual - on wifi tether
Test: manual - on developer options
Test: m RunSettingsRoboTests
Change-Id: I292ffbcf73da0721fc206e3dac7610a0aeb20047
2023-10-25 13:52:43 +08:00
Chaohui Wang
15ca95a31b Migrate to TwoStatePreference
SwitchPreference and SwitchPreferenceCompat are both TwoStatePreference.

Using TwoStatePreference in Java will helps migration in the future.

Bug: 306771414
Test: manual - check Settings pages
Change-Id: I84e1d7b09451106797c2b23d127855c6976678ca
2023-10-23 09:28:57 +00:00
Peter Kalauskas
80e914a263 Enable use_resource_processor for all sysui deps
This will make the build faster

Test: m checkbuild
Bug: 295208392
Change-Id: If75acb6b1c3f204e3686c20cef609f7cfabe15cf
2023-09-21 23:09:39 +00:00
Weng Su
63321a1a83 Add Instant hotspot preference
- Add Instant hotspot preference to Wi-Fi hotspot settings

- Wait onServiceConnected callback and then getSettingsState

- Use the PendingIntent provided by SharedConnectivitySettingsState to launch Instant hotspot settings

Bug: 268550769
Test: manual test
atest -c WifiTetherSettingsTest
atest -c WifiTetherViewModelTest \
         SharedConnectivityRepositoryTest

Change-Id: I343599e6127d9b1cb4af661dcc80a8683589c7b8
2023-08-21 11:14:04 +00:00
Chaohui Wang
8e2ae547d6 Clean up FeatureFactory.getFeature()
Bug: 286764889
Test: m Settings
Change-Id: I7e472e6b0ca6b7a735c1b92742ddf06c545176fc
2023-08-08 08:41:48 +00:00
Chaohui Wang
2541381259 Fix references to resources for Settings
Bug: 293810334
Test: m Settings
Change-Id: Ie140278f492ef7e1c062ec1ecae2866c521a86aa
2023-08-08 01:56:05 +00:00
Weng Su
7bd6646e5f Remove Wi-Fi hotspot from settings search for non-admin users
- Don't use ViewModel if the settings UI is restricted

Bug: 284931681
Test: manual test
atest -c WifiTetherSettingsTest

Change-Id: I3ae23b01b3be821c3560552b39cbd83ab51b2095
2023-06-21 06:58:18 +08:00
Weng Su
20fd4a46c8 Shutdown secondary SAP automatically
- If the "Extend compatibility" preference is not supported, then set to shutdown secondary SAP automatically within the "Turn off hotspot automatically" preference.

Bug: 285914977
Test: manual test
atest -c WifiTetherAutoOffPreferenceControllerTest

Change-Id: I405107a4782a6f023442d196d0fca27515aab00e
2023-06-14 05:51:43 +08:00
Weng Su
7171e0a29b Show "Not available" summary when hotspot speed is unavailable
- Show "Not available" summary when hotspot bands (5 GHz and 6 GHz) are unavailable

- Update debug logs to track down issues

Bug: 285769583
Test: manual test
atest -c WifiHotspotSpeedSettingsTest
atest -c WifiHotspotSpeedViewModelTest

Change-Id: If1050c120b4b612d3a9adbe886c2f12db82b793e
2023-06-08 21:38:01 +08:00
Weng Su
f7d8f0481d Fixed unable to enable hotspot with Security None
- Due to the design adjustment, the default value of SoftApConfiguration is not Security None, so the update of Security None cannot be omitted.

Bug: 283762826
Test: Manual test
atest -c WifiTetherSettingsTest

Change-Id: I07d18b8f73ab8190152332c01814a4bd72cf28d6
2023-05-26 12:26:31 +08:00
Weng Su
8c50edd1e7 Fixed speed selection lost when changing password in Wi-Fi hotspot settings
- Use current SoftApConfiguration to build new SoftApConfiguration to keep unchanged properties

Bug: 279717060
Test: manual test
atest -c WifiTetherSettingsTest

Change-Id: I3ee7960b13b339445cc79c3d440f5c56c78c015f
2023-04-27 14:55:52 +08:00
Weng Su
bf0e8c1dc7 Restart Wi-Fi tethering automatically if configuration change
- When the Wi-Fi Hotspot is already started, if the user changes the configuration, the Wi-Fi Hotspot will be restarted automatically.

- When the Wi-Fi hotspot restarts, display a circle on the screen to indicate that it is processing.

Bug: 245258763
Test: manual test
atest -c WifiTetherSettingsTest \
         WifiHotspotSpeedSettingsTest
atest -c WifiHotspotRepositoryTest \
         WifiHotspotSecuritySettingsTest \
         WifiHotspotSecurityViewModelTest \
         WifiHotspotSpeedViewModelTest \
         WifiTetherViewModelTest

Change-Id: I6fdd5892916703095f28d0589ebc3b7dd59fcd61
2023-04-21 13:06:44 +08:00
Weng Su
d965ff3049 Fallback to "Extended Compatibility" if Speed feature is not ready
- Fallback to the "Extended Compatibility" design when the following conditions occur
  - 5 GHz band is not supported on the device
  - 5 GHz SAP available channels cannot be obtained from WifiManager
  - 6 GHz SAP available channels cannot be obtained from WifiManager

Bug: 272450463
Test: manual test
atest -c WifiTetherSettingsTest
atest -c WifiTetherViewModelTest \
         WifiHotspotRepositoryTest \
         WifiTetherSecurityPreferenceControllerTest.java \
         WifiTetherMaximizeCompatibilityPreferenceControllerTest

Change-Id: If7c8c41ebe86f5e7d8e4737ab7a82d38c9d633de
2023-04-18 20:49:25 +08:00
Weng Su
9f80cd2f77 Add Wi-Fi hotspot > Security Settings page
- Restrict low security type when 6 GHz band is selected
  - Disable "WPA2/WPA3-Personal" security type
  - Disable "WPA2-Personal" security type
  - Disable "None" security type

- Automatically updated security type to WPA3 when 6 GHz band is selected
  - Regenerate password when security type is changed from None

Bug: 245258763
Test: manual test
atest -c WifiTetherSettingsTest
atest -c WifiTetherViewModelTest \
         WifiHotspotSecuritySettingsTest \
         WifiHotspotSecurityViewModelTest \
         WifiHotspotRepositoryTest

Change-Id: I31b08795419baed10dc40b876aeec175f6f41e69
2023-04-12 18:19:49 +08:00
Weng Su
17631aeff7 Added "Speed and Compatibility" Settings page
- Show each band option individually in single-band devices
  - Show "2.4 and 5GHz" combined option in dual-band devices

- Disable 5 GHz option if the device is in the restricted country

- Disable 6 GHz option if the device is in the restricted country
  - Hide 6 GHz option if the old device does not support 6 GHz band.

Bug: 245258763
Test: manual test
atest -c WifiHotspotSpeedSettingsTest
atest -c WifiHotspotSpeedViewModelTest \
         WifiHotspotRepositoryTest

Change-Id: I358d4ff8d62df72fd5080e55f40d588c238d01fb
2023-03-23 10:53:43 +08:00
Weng Su
bcca5ebf1a Add "Speed & compatibility" preference to Wi-Fi hotspot Settings
- Show 4 speed types in summary
  - 2.4 Ghz
  - 5 Ghz
  - 2.4 and 5 GHz
  - 6 GHz

Bug: 245258763
Test: manual test
atest -c WifiTetherViewModelTest
atest -c WifiHotspotRepositoryTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherSettingsTest

Change-Id: I6deb41cb355b0ceb1f1fd2d84408a83b90433e7d
2023-03-09 20:06:37 +08:00
Weng Su
d7bbd4505c Refer to the last Hotspot password when generating the password
- Query the last Hotspot password when security type is SECURITY_TYPE_OPEN and it will be used when the user changes to another security type

- If the last hotspot password is an empty string, then generate random password

Bug: 201789473
Test: manual test
atest -c WifiHotspotRepositoryTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherPasswordPreferenceControllerTest

Change-Id: Id3a846099238433e7b6c8b934fa26a74df0dcb61
2023-02-24 11:22:40 +08:00
Weng Su
f779e6c9d3 Add toggle for Wi-Fi hotspot
- Add Wi-Fi hotspot toggle with vertical divider

- Disable preference and toggle when Data Saver is enabled

Bug: 245569117
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=TetherSettingsTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherPreferenceControllerTest
atest -c TetheringManagerModelTest

Change-Id: Ic2baf7d3d0a7bf9527da38d24ecc511b7c91265a
2023-01-13 08:52:54 +08:00
TreeHugger Robot
bb17108f72 Merge "Remove "Hotspot" key from settings search if not needed" into tm-qpr-dev am: 58292e7058 am: 155beb0610
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20307409

Change-Id: I08bf5d2cdbd4a1e038af7c54468d39590f72e7c7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-31 09:27:40 +00:00
TreeHugger Robot
155beb0610 Merge "Remove "Hotspot" key from settings search if not needed" into tm-qpr-dev am: 58292e7058
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20307409

Change-Id: I87b186f17e8126638d5d09d6e9970b590d12ff6e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-31 08:51:31 +00:00
Weng Su
105937d90f Remove "Hotspot" key from settings search if not needed
- Remove "Hotspot" search key from TetherSettings

- Disable page search from WifiTetherSettings

Bug: 243876722
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=TetherSettingsTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherSettingsTest

Change-Id: Ie04027600663321b35d8309c59084f630103e959
2022-10-28 14:34:11 +08:00
TreeHugger Robot
dda18d1d8c Merge "Add config for Wi-Fi Hotspot Settings hidden" into tm-qpr-dev am: 87d2f6d3cb
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20244146

Change-Id: I7b3275ffad2af79bb81c3761b691ab793a61168a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-24 03:26:46 +00:00
Weng Su
f9b5e046a8 Add config for Wi-Fi Hotspot Settings hidden
- Add config_show_wifi_hotspot_settings for Settings customization

- Hide Wi-Fi Hotspot preference in Hotspot & tethering Settings

- Don't launch Wi-Fi Hotspot Settings (e.g long press on Hotspot in QS-tile)

Bug: 213426762
Test: manual test
atest -c com.android.settings.wifi.WifiUtilsTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherPreferenceControllerTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherSettingsTest

Merged-In: I11f88d0d15d6d5c2766b64b5847ac31ed0f34c25
Change-Id: I11f88d0d15d6d5c2766b64b5847ac31ed0f34c25
(cherry picked from commit 160b5078ed)
2022-10-20 09:50:22 +00:00
Weng Su
160b5078ed Add config for Wi-Fi Hotspot Settings hidden
- Add config_show_wifi_hotspot_settings for Settings customization

- Hide Wi-Fi Hotspot preference in Hotspot & tethering Settings

- Don't launch Wi-Fi Hotspot Settings (e.g long press on Hotspot in QS-tile)

Bug: 213426762
Test: manual test
atest -c com.android.settings.wifi.WifiUtilsTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherPreferenceControllerTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherSettingsTest

Change-Id: I11f88d0d15d6d5c2766b64b5847ac31ed0f34c25
2022-10-19 20:13:21 +08:00
Weng Su
2f55ae15f1 Refine WifiTetherSoftApManager and DataSaverBackend to avoid activity leaks
- Declare the service callback as static class and use WeakReference to avoid the callback link being occupied

- Use application context instead of fragment context to avoid context being occupied by external modules

Bug: 237273138
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=TetherSettingsTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherPreferenceControllerTest

Change-Id: Icca145b8ef08b9949feafbbd4e761f8d50c99181
2022-09-14 10:10:41 +00:00
Les Lee
03cb9dcb8a Merge "wifi: Handle wifi ap initial state before register intent" into tm-qpr-dev am: b75858bf82
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/19491094

Change-Id: I65a54ab88204a4dfd484a8faf157d6b9db5b3f69
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-08-29 02:02:41 +00:00
Les Lee
c6c6ef3a58 wifi: Handle wifi ap initial state before register intent
The intent WIFI_AP_STATE_CHANGED_ACTION is not sticky intent after
SC-V2, query wifi ap state and run intent handling after registering intent.

Bug: 231214355
Test: make RunSettingsRoboTests ROBOTEST_FILTER=Hotspot
Test: make RunSettingsRoboTests ROBOTEST_FILTER=Tether
Test: Manual test, the state shows correctly even if resume hotspot settings page from recent app.
Change-Id: Iab6b2b8628d725b003d5e5c4086420a329611745
2022-08-25 23:07:40 +08:00
Treehugger Robot
3682ed9fca Merge "Keep setting of "TurnOff hotspot automatically" when AP is changed" am: 79e1afbdfa am: bef728d2ff
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2123300

Change-Id: Iff5656052d729efb83a1947ecfd2393e87c9460a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-15 17:54:52 +00:00
Bruno Kremp
b16ac39ee1 Keep setting of "TurnOff hotspot automatically" when AP is changed
When AP config is changed, setting of "TurnOff hotspot automatically"
will be reset to default. Hence keep the setting when AP config changed.
Keep setting of whether auto shut down is enabled when AP
config changed.

Co-authored-by: Fangxiao Cao <fangxiao.x.cao@sony.com>

Test: manual test
Bug: 235370570
Change-Id: Ibd3d59b6a86edaf1253a2c9b035576e60a7beb96
2022-06-15 09:20:18 +02: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
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
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
37edbd33b8 Remove redundant WiFi tethering listener
- WiFi tethering settings currently listeners two sets of WiFi tethering
  state from framework at the same time, There is a timing issue when
  the deprecated callback is sent earlier than the available callback,
  it will cause WiFi tethering settings to start tethering twice in a
  short period of time, causing the WiFi framework to respond with a
  startup error.

- Remove redundant obsolete WiFi tethering state listener to avoid
  WiFi tethering startup error.

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

Change-Id: I59cb5222acb763f630fb621250d7740a240bbd92
2022-04-13 05:04:47 +08: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
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
Weng Su
072755ef02 Refine the plural strings design in Settings
- Use MessageFormat instead of getQuantityString().

Bug: 199229953
Test: manual test
See b/199229953#comment2 for a screenshot result.

Change-Id: I4fc9cecc83f503203ec5dbc1af638036d7026e07
2022-01-16 22:33:12 +08:00
Michael Groover
d1f76eea72 Merge "Add unaudited exported flag to exposed runtime receivers" 2022-01-03 17:35:02 +00:00
changbetty
efd5d04ab1 To disable Wi-Fi tethering when user restriction is set
Bug: 203168953
Test: make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherPreferenceControllerTest
Change-Id: I749de121c3918382bf03e437e683477bac23cae1
2021-12-23 02:08:44 +00:00
Michael Groover
911f7e7aa9 Add unaudited exported flag to exposed runtime receivers
Android T allows apps to declare a runtime receiver as not exported
by invoking registerReceiver with a new RECEIVER_NOT_EXPORTED flag;
receivers registered with this flag will only receive broadcasts from
the platform and the app itself. However to ensure developers can
properly protect their receivers, all apps targeting T or later
registering a receiver for non-system broadcasts must specify either
the exported or not exported flag when invoking #registerReceiver;
if one of these flags is not provided, the platform will throw a
SecurityException. This commit updates all the exposed receivers
with a new RECEIVER_EXPORTED_UNAUDITED flag to maintain the existing
behavior of exporting the receiver while also flagging the receiver
for audit before the T release.

Bug: 161145287
Test: Build
Change-Id: Ie97372efebd8258d9a4c503771d55109a85e6ae9
2021-12-09 20:34:02 -08:00