Use vector<int> instead of vector<bool>.
vector<bool> is not thread-safe:
https://en.cppreference.com/w/cpp/container#Thread_safety
Fixes: 156690351
Test: atest --iterations=500
statsd_test:MultiConditionTrigger#TestMultipleConditions
Change-Id: I9121747ffbee0864afbff993e7fe417104827952
New insets based IME requires windows manager to properly link the
assocaited IME window token against the target window token.
Test script:
Step 1: Patch this CL on rvc-dev repo
Step 2: Build and flash Hawk
Step 3: Build and install a sample multi-client IME
make -j MultiClientInputMethod
adb install -r $OUT/system/priv-app/MultiClientInputMethod/MultiClientInputMethod.apk
Step 4: Enable multi-client IME for the side-loaded sample multi-client IME
adb root
adb shell setprop persist.debug.multi_client_ime com.example.android.multiclientinputmethod/.MultiClientInputMethod
adb reboot
Step 5: Open KitchenSync app, select carboard, enter text on Plain Text
tab (sample multi-session keyboard doesn't support numeric keyboard yet)
Bug: 123718661
Test: manual (see test script above)
Change-Id: I2a27c0da3a243d9cb3c98541531396cd9ff819a0
This is to avoid value metrics skipping buckets due to
DUMP_REPORT_REQUESTED, since if the metric needs to include the current
bucket under time constraints and needs to pull, it will drop the bucket
since it cannot pull.
Test: atest statsd_test
Bug: 158879346
Change-Id: Ia61e69530456ce2b3530add03ec6e068ffb25fb5
When introducing Media into quick settings, the landscape
experience never really worked well. The music player
would be cut off on the bottom and users could never
reach their playback controls.
Instead of the vertical layout, we're now rendering
quick settings side by side with the player.
Using some densities, this could still be too large,
so we're also introducing a scrollview for the
expanded quick settings.
This also makes sure all the paddings and spacings
are up to spec.
This also fixes behavior where a user could still collapse
the panel while the user switcher was showing.
Bug: 154332040
Test: atest SystemUITests
Change-Id: I3b8babc2cc6a91e19824b67f043aa5044dc370b9
Update overflow visibility after setup
Remove BubbleOverflow#getBtn (same as getIconView)
Bug: 158482996
Test: manual => Turn on dark mode
=> Pointer & overflow button/activity use same grey
Change-Id: I0f9c7d8e6dc1ac77e8601f42527f75b1b4e9ef1d
Because we were pinning it to the bottom, the player would shift
and be clipped off at times.
Bug: 154332040
Test: add media player, click on edit, observe no flicker
Change-Id: I56ea3eeecad22a588b7066f32223631127024bfe
This fixes the issue where the dragged-out bubble and the dismiss target rendered under the IME. It also improves animations all-around since it starts the IME animation earlier (vs waiting for ACTION_UP).
While the IME does hide earlier, once your finger is on a Bubble, there is nothing you can do that would not hide the IME anyway - dragging it out hides it, and if you lift your finger, you'll either switch bubbles or collapse the stack, both of which hide the IME.
Test: have IME, drag out bubble
Fixes: 158861545
Change-Id: I903897eca3c516bc953cbd70ab2102bbc4a81a4f
This prevents being stuck in the Loading screen even if the proper
User Lifecycle event was not broadcast.
Test: Unit Tests + Manual -- Verify that the UserSwitchTransitionView is
hidden after the timeout threshold when the UserLifecycleEvent listener
is not registered.
Bug: 158705895
Change-Id: I895f04bda395bac271b01fbb414a8bf484348324
Query package manager for the headless system app check on the handler
thread to avoid impacting boot time.
Bug: 157941190
Test: verify cache is still populated
Change-Id: Idb446e68c0ad4e1e693b45297d5297be855849bf
We need to verify that the browser is actually connected before calling
getRoot or getSessionToken, otherwise it will throw an exception (and
crash sysui).
This is not typical but could happen if the service we connected to had
some problem and disconnected soon after we got the onConnected callback
Bug: 156104922
Test: atest com.android.systemui.media
Change-Id: I9b73e2167612a287b527c7bf7bdba1ca2455d55b
We were testing whether mScreenshotConnection was null as a proxy
for whether we had a running screenshot service. In principle
mScreenshotService should never be null if mScreenshotConnection
is not null, but it's safer to check. This may fix the crash noticed in
early May (attached bug), and either way is better for the stability
of the process.
Bug: 156366251
Fix: 156366251
Test: manual
Change-Id: Iea669a5a2ca2334760141ec6fec8ec7ffb01f25c