We move grid layout checking into the layout algorithm, so that we can
hide more computation from the views.
Bug: 32101881
Change-Id: I174fe33ef7ed3c04987771dbb42d831a4b9bdab2
Prevent apps to change permission protection level to dangerous
from any other type as this would allow a privilege escalation
where an app adds a normal permission in other app's group and
then redefines it as dangerous leading to the group auto-grant.
Test: Added a CTS test which passes.
bug:33860747
Change-Id: I1ccf546f78ee79ff027cb98124be81c8e5265a82
When users try to open panel, initialization of accessibility is called
in Main Thread by this callstack.
at android.view.ViewGroup.buildOrderedChildList
at android.view.View.populateAccessibilityNodeInfoDrawingOrderInParent
at android.view.View.onInitializeAccessibilityNodeInfoInternal
at android.view.View.onInitializeAccessibilityNodeInfo
at android.view.View.createAccessibilityNodeInfoInternal
at android.view.View.createAccessibilityNodeInfo
at android.view.accessibility.AccessibilityRecord.setSource
...
at android.view.View.setFlags
at android.view.View.setVisibility
at com.android.systemui.qs.QSContainer.updateQsState
at com.android.systemui.qs.QSContainer.setExpanded
at com.android.systemui.statusbar.phone.NotificationPanelView.updateQsState
And another initialization is tried in QSTileHost Thread by this callstack.
at android.view.ViewGroup.buildOrderedChildList
at android.view.View.populateAccessibilityNodeInfoDrawingOrderInParent
at android.view.View.onInitializeAccessibilityNodeInfoInternal
at android.view.ViewGroup.onInitializeAccessibilityNodeInfoInternal
at android.view.View.onInitializeAccessibilityNodeInfo
at android.view.View.createAccessibilityNodeInfoInternal
at android.view.View.createAccessibilityNodeInfo
at android.view.accessibility.AccessibilityRecord.setSource
...
at android.view.View.announceForAccessibility
at com.android.systemui.qs.QSPanel.onAnnouncementRequested
at com.android.systemui.qs.QSTile.handleStateChanged
This race condition can cause crashes, because the same ArrayList
(mPreSortedChildren or mTempArrayList in ViewGroup) is modified by two
different thread.
Test : manual
Change-Id: I9e0ad1fef4be7dc378463c06d10854e0e4c5b3d6
Fixes: 33947140
(cherry picked from commit 1b0066230e)
Change the name used by the contexthub service. Specifically, this
change switches from using the "ContexthubService.CONTEXTHUB_SERVICE"
constant to using the "Context.CONTEXTHUB_SERVICE" constant- which is in
line with the other Android services.
Merged-In: I18ae73ed0fda2f938e3233670dc52b5692d321ae
Test: GTS tests pass.
Change-Id: I18ae73ed0fda2f938e3233670dc52b5692d321ae
Change the name used by the contexthub service. Specifically, this
change switches from using the "ContexthubService.CONTEXTHUB_SERVICE"
constant to using the "Context.CONTEXTHUB_SERVICE" constant- which is in
line with the other Android services.
Test: GTS tests pass.
Change-Id: I18ae73ed0fda2f938e3233670dc52b5692d321ae
Bug: 31002801
Test: make RunSettingsLibRoboTests
The public methods can be used to retrieve Tile data from a content
provider dynamically in other Settings components.
Change-Id: I2ce1f5620b09dcdb46f315c8ddf04e9f07084e91