- Introduces componentName and userHandle members to SearchTarget
- SearchTargetEvent now has searchTarget member
- Builder pattern for SearchTarget and SearchTargetEvent
- Search backend should add headers manually instead of launcher inferring sections
Bug: 171026321
Test: Manual
Change-Id: I28e0455e82b925277a17703b9aa061c8f9f15262
SearchResultIcon will be able to render apps, shortcuts and remote actions. It can also handle its own focused state drawing.
Screenshot: https://screenshot.googleplex.com/C3KgjJtLQTBPgaf
Bug: 170752716
Test: Manual
Change-Id: I460a9c128ea3f5814784e342c5d5fa5b7e310882
When loading the workspace, Launcher pins/unpins shortcuts in comply
with the loaded workspace. Since minimal device mode creates a mostly
empty workspace, existing shortcuts are getting unpinned as a result.
To mitigate the issue this CL compares the db name and only invoke
sanitizeData when it matches the one defined in InvariantDeviceProfile.
Bug: 170611866
Test: manual
1. add some deep shortcut in workspace (e.g. long tap on chrome, drag
"incognito tab" to workspace)
2. opt-in to sunshine fishfood (g/sunshine-teamfood)
3. enable bedtime mode with minimal device in Settings -> Digital
Wellbeing -> Show Your Data -> Bedtime mode -> Customize -> minimal
device
4. toggle bedtime mode, wait for apps in minimal device to show, then
toggle off bedtime mode
5. verify the deep shortcut still exist
Change-Id: Ie18216ecb288e7481aa2404c4cb3ea418aee85cb
- Resolve spacing issue when work profile is installed
- Cache play icons and use icon shape
- Only draw focus indicator for the first result
Bug: 170487752
Bug: 170665892
Change-Id: I864d2e796786637132e127ef9b418c0a76c74d6e
Test: manual
Fixes: 168653219
Changing app icons under the user's finger could be disruptive. Added a checks for whether the hotseatand all apps predictions are visible and callbacks to update them when they become hidden.
Change-Id: Ib9e6e904e9f662ecfaeea6a2fe21d1d81ba39b96
HandlerThread.getLooper blocks until the thread is ready. Instead
moving all looper dependency to the new thread itself.
Change-Id: I240e8c56b855a991433a7fe93875059e6dab146b
This can happen when display size changes.
We compare span sizes of widget in the db to the min sizes of the widget
in the current display size. If the widget can no longer fit in its existing
spans, we remove it.
Also update test widgets to have minWidth/minHeight of 1dp. This ensures that
the spanX, spanY, min* values remain consistent between different test devices.
Bug: 168818961
Change-Id: I723372e4582658f78b2f23ced9073cb77977a6b8
Test: manual
Added a Sandbox mode tutorial fragment and controller. This fragment allows the user to try all the gesture commands and receive feedback, whether the gesture was successful or not.
Preview: https://drive.google.com/file/d/1Qmn71ZHMOrv2XjUngb6S4W5jOaBIvF1_/view?usp=sharing
Change-Id: I7d28ce25daa38fa6d05b18d43d02b77c1fc8a264
The BubbleTextView drawable has built in shadows.
Prior to this, we waited for the FloatingIconView to finish
animating into place before fading in the BubbleTextView behind it.
We did this to prevent the shadow from blinking in.
Now that we've refactored FloatingIconView & ClipIconView,
we draw the BubbleTextView behind the ClipIconView so that the shadow is
revealed when the icon finishes clipping to its final shape and it
no longer has to be faded in.
Bug: 168608912
Change-Id: Ic0809f74ecbbec2f6e7caf7eca2fb560a8a02dec
HandlerThread.getLooper blocks the current thread until.
the final thread is initialized. Updating RecentsModel to
use an executor instead of a handler thread to avoid this.
Change-Id: I3b2e82a375ea65bea1526af4a32c6a2488102541