When user collapsed QSPanel at non-first page, QuickQS always remained
View.Visible. When user canceled collapsing, QQS remained clickable
although invisible to user(alpha = 0).
QQS must be non-clickable when user cancels collapsing at non-first page.
Test: QSPanel > 2nd page > Cancel collapsing while collapse QSPanel
> Verify invisible QQS is non-clickable
Change-Id: I4c1f195a3faec8e89bb073443f6345f4faddf781
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
A front most excluded task is shown on Overview when changing font size
in Multi-Window mode. To fix this issue, RecentActivity should not reset
the config launch flags when it is restarted by configuration changes and
it should not reload the tasks which include a front most excluded task
when it is launched while docking a task.
Bug: 33031985
Test: manual - display app task excluded from Overview screen and then
change font size in Multi-Window mode
Change-Id: Ic0c35cd06c14d9ed8d2dc46a01f2153738bad849
Bug: 32849428
* goog/cw-f-dev: (98 commits)
Revert "Catch KeyStoreException for setting profile lock"
Fix createConfirmDeviceCredentialIntent for wear for CTS.
Fix default dialog background colour for watch devices.
Catch KeyStoreException for setting profile lock
Add cross-links between FINE and COARSE location permissions. bug: 25371600
Fixed a bug with the emergency affordance in multi user
Zygote: Additional whitelists for runtime overlay / other static resources.
Import translations. DO NOT MERGE
Import translations. DO NOT MERGE
Import translations. DO NOT MERGE
Import translations. DO NOT MERGE
Import translations. DO NOT MERGE
Import translations. DO NOT MERGE
Import translations. DO NOT MERGE
Zygote : Block SIGCHLD during fork.
colors: add missing accent_material_{700,50} resources.
Import translations. DO NOT MERGE
Import translations. DO NOT MERGE
Zygote : Block SIGCHLD during fork.
DO NOT MERGE ANYWHERE Revert "DO NOT MERGE ANYWHERE libhwui: make setSurface asynchronous"
...
Change-Id: I63468da5bfa21ed9ac5985bbdbf3a61d4c389aa0
Each CurrentUserTracker has one receiver per one object.
This could cause unnecessary transaction as Tracker counts
increases. The idea of redcuing receiver is creating
one static receiver for CurrentUserTracker and share it
with all object.
Test: Check if Quicksetting order is changed properly
after switching user.
Change-Id: I8404829826391f8b315b42bbd0f50e77b783eeab
The issue is that QSPanel get touch event while brightness mirros
is showing after density changes. This is because StatusBarWindowView
keeps the reference of detached brightness mirror view. We can refresh
it at onViewAdded function.
Test: manual(change device density > Check if can click QuickSettings
while dragging brightness slider.)
Change-Id: I646092abbc23b24bb91fc5c8525b12a143364b84
Last tiles are cached in QSTileHost and they are re-used
for other users. But when the cached tile is added, QSTileHost
doesn't check whether it is available or not. So Hotspot tile
is shown on Guest user. To fix this issue, QSTileHost should
check whether the tile is available when it is added.
Bug: 32817349
Test: manual - add Hotspot tile to default tiles
and switch to Guest user
Change-Id: I96d5876024f6d519bf72a462b5c79dcf41b253f9
SystemUI Tuner's activity changes to null when Multi-window's state is
changed after confirmation dialog about removing SystemUI Tuner is
shown. Then NullPointerException occurs by trying to finish the
activity to tap "REMOVE" button on the confirmation dialog.
So add null check before finish the activity.
Bug: 32786029
Test: manual - remove System UI Tuner on Multi-Window mode
Change-Id: I455d17c0c600eeb05c9dfb7d609d40307de2f855
To get Assist component and launch it correctly,
The proper userId should be passed
to AssistUtils#getAssistComponentForUser().
Bug: 30777883
Test: manual - install LegacyAssistant app and long-press on Home key
Change-Id: I9f18ffdd9fc893235d77ed8145a765736a679478
- If the stack does not contain the existing ignored task view on
relayout, then we should not try and get the transform for it
since it will be skipped.
Bug: 32001762
Change-Id: I23182c76ac41b036c25edf92374622191e9d4ce3
Allows configuring notification and sensor triggers
separately. Introduces a helper class that hosts the
logic for determining what kinds of triggers a device
supports.
Bug: 32073185
Change-Id: Ie7e8eb6b895dcc54e6f972e70642c7248b9e223a
Test: disable "ambient display", sensor triggers should still work