- 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
- 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
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
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
- 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
- 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
- Refine WifiTetherPreferenceController
- See the result screenshot in b/203168953#comment8
Bug: 203168953
Test: manual test
make RunSettingsRoboTests \
ROBOTEST_FILTER=WifiTetherPreferenceControllerTest
Change-Id: If094178eb0cd9ccf20ff3899dc4b087b45c66f6b
- 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
- 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
- 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
- Use MessageFormat instead of getQuantityString().
Bug: 199229953
Test: manual test
See b/199229953#comment2 for a screenshot result.
Change-Id: I4fc9cecc83f503203ec5dbc1af638036d7026e07
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
Security option index values are currently converted using
toBinaryString() which converts indexes to binary String. Thus
index values doesn't match the expected Security config values in
SoftApConfiguration.
This commit uses toString() API to avoid index mismatch.
Bug: 197497991
Test: manual test
atest -c WifiTetherSecurityPreferenceControllerTest
Change-Id: I43d236d071a8141845f312c63b1a693fde254358
Since the broadcast receiver in question is permission protected we will add a RECEIVER_EXPORTED flag to make this receiver compatible with Android T+.
Change-Id: Ib6453b47641a32796e202f4f9e37099c36b6c683
Test:no-op
Bug:161145287
- Use the same service name(WifiManager.class) to mock
WifiManager.class
- Use the same service name(TetheringManager.class) to mock
TetheringManager.class
Bug: 184018452
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTether
Change-Id: I64741818d3455154866097f83e3a96c1c510e23b
- The return value defined by the Wi-Fi framework API is opposite to the
UI
Compatibility on: isBridgedModeOpportunisticShutdownEnabled() = false
Compatibility off: isBridgedModeOpportunisticShutdownEnabled() = true
- Need to use the reverse value from Settings UI to the Wi-Fi framework API.
Bug: 183576049
Test: manual test
atest -c WifiTetherMaximizeCompatibilityPreferenceControllerTest
Change-Id: I731156806661bfbca14e7eaaa648a205a3d77b74
Add getSystemService(Class<T>) to align the capability with framework
part.
This is a back port from aosp/1639943, aosp/1645152 and aosp/1648047
Bug: 179640862
Test: local
Change-Id: I035db55a71f94000ca35f8d71f03c19208423c73
Connectivity is becoming a mainline module in S, so
ConnectivityManager hidden symbols can not be used for outside
components. Besides, most Tethering relevant methods or variables
on CM are migrated to TetheringManager. So replace all these
methods or variables from ConnectivityManager to TetheringManager
on Settings.
Bug: 180693313
Test: make RunSettingsRoboTests ROBOTEST_FILTER=<Modified Test>
Change-Id: Iba4b121a4ddf3f04252aa0355e0e6494a593682a
To log Settings metrics, the MainSwitch extends MainSwitchBar and
replace the SwitchBar in SettingsActivity.
Bug: 175181773
Test: Run robotest and apply the widget in Settings and see the ui
Change-Id: I3add3702e9058ad9192b5172c7cf0e2ccfb55a70
- The SW (Swahili) language is used for a different noun class and is
inappropriate in the context.
- Need to separate different strings for specific situations.
- Use new strings from SettingsLib resource
Bug: 168801172
Bug: 168733667
Test: Manual test
Change-Id: I0e0a688f54ca2ee1b4cd5049c7e0f3ff3112b127
From Android 11, Wi-Fi framework only supports ASCII encoding
for hotspot password, APP should check if password character is
valid.
This change checks if SoftApConfiguration accepts the password
and disable the OK button if the password is invalid.
Bug: 163353576
Test: make RunSettingsRoboTests ROBOTEST_FILTER=WifiUtilsTest
Change-Id: Ief3c6c1f08f8fcdf128768cde3ab8eef91f19fbe
Change wordings in data usage part into inclusive language.
Bug: 160707804
Test: make RunSettingsRoboTests
Change-Id: I713e52df8201413b884257a51bc1f71a0d43179d
Tethering resource configuration is move from framwork to tethering
module. The resource would not be accessible from outside of tethering
module.
List the replacements of framework resources usage and intent extra:
1. R.string.config_mobile_hotspot_provision_response
--> android.net.extra.TETHER_PROVISIONING_RESPONSE.
2. R.string.config_mobile_hotspot_provision_app_no_ui
--> android.net.extra.TETHER_UI_PROVISIONING_APP_NAME
3. R.array.config_mobile_hotspot_provision_app
--> android.net.extra.TETHER_SILENT_PROVISIONING_ACTION
Besides, the current active subId would put in
android.net.extra.TETHER_SUBID
Note: They are not APIs because of API freeze. Now both tethering module
and Settings define these strings independently. Will replace hard code
string as tethering module-lib APIs in b/159085857.
Also move the entitlement response intent registeration from onCreated
to onStartCommand, this can avoid wrong intent registeration if subId
changed between onCreate and when the intent arrived.
Bug: 146918263
Test: atest TetherServiceTest
atest TetherProvisioningActivityTest
Change-Id: I3d06df01302a9c1f0893712d9250fe394dc66588
Tethering APIs are all move to TetheringManager from Android R.
1. Replace ConnectivityManager tethering API usage as TetheringManager.
2. Use TetheringManager#stopTethering to disable usb tethering instead
of using deprecated ConnectivityService#setUsbTethering
3. Use TetheringManager#stopTethering to disable bluetooth tethering
instead of directly use BluetoothPan#setBlueoothTethering. So bluetooth
getProfileProxy is not needed in TetherService because tethering would
do that when calling #stopTethering.
4. Also support TETHERING_ETHERNET entitlement check that
TETHERING_ETHERNET is new added from Android R.
Bug: 146918263
Test: atest TetherServiceTest
Change-Id: Id969f29d7210f2ee32719c76439049bbc86cd4f6
This change just remove unused code.
Tethering no longer ask TetherService to schedule recheck
(use #EXTRA_SET_ALARM) from Android Q. Intead Tethering
(EntitlementManager) would schedule the recheck by itself.
This change is necessary in order to move the resourcesout
of the framework because TetherService needs to know when
it need to re-run entitlement recheck from framework res
(config_mobile_hotspot_provision_check_period).
Bug: 146918263
Test: atest TetherSerivceTest
Change-Id: Ie45859c19b96d0689c45dd610501fae0506742ff