When a client registers a SliceCallback, it starts to observe Slice
changes. The observer is running in the main looper and binds Slice
in AsyncTask.
However, when the client unregisters the callback, it unpins the Slice
in the client's thread. Thus, if the AsyncTask has pinned the slice but
hasn't bound it yet, it may be unpinned by the client, and an exception
occurs.
This fix is to unpin the Slice in the same SerialExecutor of AsyncTask,
which is to ensure bindSlice() and unpinSlice() are called in the same
thread one after another without the race condition.
Bug: 157387583
Test: robotest
Change-Id: If5f4b4bc0d8c5a2800cad8ff2afd7084426a6c96
When users go to a sub page in Settings and come back to the homepage
again, those sticky cards flicker which makes the UI janky. This is
because we rebind sticky cards to ensure it's always up-to-date, where
the recyclerView has its default animation while notifyItemInserted(),
ane thus introduce the jank.
Fixes: 158627602
Test: Open Settings -> go to sub pages -> back to the homepage -> cards
are not flickering.
Change-Id: I2104dbe0bed8b2486c35521bcc0b5c8b54efb995
Postpone setTheme to decrease memory usage of Settings for the test
android.platform.test.scenario.sleep.Idle
Bug: 156631776
Test: forrest test
Change-Id: I4178eae0832e15c9d6da4a0f1f2898f5c797d388
Fixs when disable component during system busy, the framework have high possibility to force closing activities on the same task.
test
1. setup a pin code and go through to the anything else page. click "control info on lock screen".
>> The SetupRedactionInterstitial not been disabled.
>> The lock screen can be setup repeatedly.
2. into home screen. using adb command to start SetupRedactionInterstitial.
>> the screen not shown.
3. using adb command to start RedactionInterstitial and click "done".
>> the activity existed normally.
Bug: 158961310
Test: Manual
Change-Id: I09fe95db591d3d3603b2c13623a0873bfab3bac0
Sometimes Settings Search show the items that are not supported by
the hardware. e.g. FaceLock.
Add log to check the HW status when the problem occurred.
Bug: 156667203
Test: watch the log output.
Change-Id: Ie6a89f338aac6f7bdefc69fc84cfa5bf848ed015
ContextualCardLoader was waiting for eligible card checkers with a 300
ms timeout one by one in a loop. So if more than four checkers expire,
the total waiting time will exceed the 1 sec homepage content loading
timeout, which causes no card shows up.
The solution is to leverage all the checkers' timeout starting time,
and increase the timeout for all checkers. So that ContextualCardLoader
just needs to wait for all checkers for at most 400 ms and then can get
the results.
Bug: 159236069
Test: robotest
Change-Id: I601ac4151bf8be68b30eaabdb45a4e1ace95653f
Since the structure of Telephony is changed, some of Telephony
related PreferenceController cannot be converted to slices
smoothly whether devices have mobile data or not. So we
decided to make them un-sliceable.
Bug: 155846002
Test: robotests, manual
1. Settings -> Settings search -> search for roaming
2. Check that roaming result has no toggle widget.
Change-Id: I7cba8f6a750d9780a59411942665f68dac61248c
This reverts commit 52ac47d9c8.
Reason for revert: This CL is what we wanted to merge in RVC and has already got Code-Review +2, Owner-Approval, and DrNo-Review from other folks regardless of the accident.
Bug: 159195420
Change-Id: I6c646269cd3e13e015dcc06418e21db66372e680
-Bottom divider is not showed when there are more than 7 devices exist in output switcher
-Check panel type in isDividerAllowedBelow()
-Hide the Slice bottom divider of Output switcher panel
-Show divider in panel layout only for output switcher panel
Bug: 159177275
Test: make -j42 RunSettingsRoboTests
Change-Id: I49396a0ee0543b494a2b3d714ec248ebab08e7ba
Root cause: ag/10614943 removed the resources, so each of item
values is hard coded. This broke the overlay. This CL adds the
resource back so the overlay can work.
Bug: 159301925
Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
EnabledNetworkModePreferenceControllerTest (PASS)
Change-Id: Id5ad2fdd0a87586136e4a26d2e44cf5278df5d9d
This reverts commit 2e790e1859.
Reason for revert: I accidentally +2'd this CL and it got merged. Sorry about that.
Change-Id: Ia1b2e0a264e16b368601bbb7a32148ec6c183e84
Bug: 159195420
Exempt-From-Owner-Approval: Just a revert
WifiConfig is no longer sent in this broadcast
due to privacy concerns, so stop reading this
extra. Instead, query WifiManager to find the
matching WifiConfiguration to update.
Bug: 158874479
Test: make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.wifi.details.WifiDetailPreferenceControllerTest"
Change-Id: Ie52339220acbbe111a6aa5f785fbfa409c405b5b
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
Merged-In: I3d06df01302a9c1f0893712d9250fe394dc66588
config_mobile_hotspot_provision_app would be move out of framework and
only private for tethering only. TetherUtil#isProvisioningNeeded and
isProvisioningNeededButUnavailable are no longer needed because
tethering would ensure entitlement app is valid if entitlement check is
needed. Otherwise, tethering would return not supported that tethering
settings would be hidden.
Bug: 146918263
Test: m
Change-Id: If0b0a3e6cadab3c4a4d2c003e2aa9e9f3dd7449c
Merged-In: If0b0a3e6cadab3c4a4d2c003e2aa9e9f3dd7449c
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
Merged-In: 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
Merged-In: Ie45859c19b96d0689c45dd610501fae0506742ff
In current design, we only check the hardware support for face unlock to
show/hide the face unlock results in Settings Search. However the face
settings page is not launchable when the user doesn't enroll the face
unlock. It will cause user confused that face unlock results is no
response when they click them. Therefore, it's more making sense to add
enrolled status checking to index the face unlock results.
Test: manual and robotests
Fixes: 157954564
Change-Id: I5dd36e15fe48d537ee499c73cc172fc913b39554
- There is SecurityException when accessing Slice Uris which are not in
Settings app.
- Rollback to the original mechanism, remove an unused latch, and
register a trivial callback
Fixes: 159195420
Test: robotest
Change-Id: Ice2cf5f928b0e6d0367bcc41c3912526e8f7bd7f