The unfold progresses are mapped to 0.85 - 1 range and set as a scale for launcher.
In case of multiple scale animations for workspace and hotseat, they are combined using MultiScaleProperty (e.g. opening an app while unfolding/going to all apps while unfolding). Note that this is a pretty difficult scenario to be in. If that happens, we multiply all values and bound the result between the max and min values.
Bug: 217368525
Test: atest MultiScalePropertyTest and manually
Change-Id: I6131c39f36deade0b7280c72edda2d72045344e9
- We need to listen to DeviceProfile changes in case the number of
columns changes in the grid. I made an interface/mixin separate from
ActivityContext to avoid polutting the latter with too many things. I
also applied this change to existing taskbar A-Z grid.
- Added all apps visited count to onboarding preferences for only
showing "All Apps" label in place of divider 20 times. Label is also
tracked on taskbar side and should be kept in sync.
Test: Manual
Fix: 216843395
Bug: 174174514
Change-Id: I97aa91397c334123626caf18251f19e17c7104fb
This was going through the whole display-info-changed flow
when only the refreshrate changed. This was causing updates
with outdated information (where displaymanager callback
happens before configurationchanged). The result is that
things like touch-monitors (based on display info) were
out-of-sync with view content (which is based on configuration).
This change just updates the local record of screenrefresh
when it changes.
Bug: 179308296
Test: With fixed-rotation-in-config, open recents and repeatedly
rotate the device. Make sure touch regions stay aligned
with recents content.
Change-Id: I9a8c553dfa55ec4402edcecac44bc87cb51c75fc
- Remove ActivityContext#supportsIme(), as it's always true now
- Add OnFolderStateChangedListener, which we register when clicking on a taskbar folder icon to set the window focusable/not.
- Also remove Folder.STATE_NONE and instead default to STATE_CLOSED (renamed from STATE_SMALL).
TODO: make sure back button is visible above IME (followup CL)
Test: Open a folder from taskbar while in an app, no animation jump and can change folder name
Bug: 180051157
Change-Id: I7c7847657d462c16677d66b9ffa8b6fe5f164084
Android T adds support to allow a runtime receiver to be registered as
not exported, but to ensure apps can take advantage of this, calls to
registerReceiver must specify a flag indicating whether the receiver
should be exported for apps targeting T+ that are registering for
unprotected broadcasts. This commit adds the RECEIVER_EXPORTED
flag to the call to registerReceiver in LauncherAppState when
registering for ACTION_FORCE_RELOAD.
Bug: 161145287
Test: Build
Change-Id: I9ffb5e00f2ce5bc9dcff4b681237ba06604fc995
Technically the consumer should do that already, but the consumer isn't called if the value isn't changed (in this case, it's going from 1 to 1). So explicitly call the consumer once in init().
Test: Open an app, toggle dark theme from quick settings, go home and ensure hotseat isn't visible during the transition
Fixes: 211002647
Change-Id: I5a9680282b3982d9b6f982833cd671b224767518
- If the number of screen bounds a.k.a. number of displays has changed, it should be a bug from system and add a log for that
Bug: 198965093
Test: manual
Change-Id: I74612e6c0d2f3cfd52b509e43ea16adf0eec76de
- This was causing bleed through between split tasks and perhaps
some rounded corners to be calculated incorrectly
- Also reset the translation after it is adjusted for dismissing
in case the dismiss gesture is canceled. This doesn't fix the
issue with bleed through between the task views (to be fixed
separately), but makes sure it isn't permanently set on the task
Bug: 206739664
Test: Split tasks, swipe up and check the bounds
Change-Id: I34430e958ca7a75f48621bc27a281e93fdf97179
TODO:
- Consider delaying animating task bar to stashed towards all apps state until user releasing their finger (tho in this change heuristic is applied for stashing and unstashing respectively)
- Further consolidate some animation logic
Bug: 204220602
Test: manual
Change-Id: I58b4d035fcf65a9f5c68e69c129eae95b89b1c4a
Fix: 201775630
Test: Go to landscape with gesture nav, widgets not cropped and cellSize matches HSV
Change-Id: I68e62897b31dbb8509c95a20e8d3a3528a40fe9b
- Currently CHANGE_ACTIVE_SCREEN is dispatched when rotating too, which is incorrect. mScreenSizeDp is different in portrait and landscape, and varies more than swapping width/height due to different insets applied. Therefore, use the change of unique display id as a signal instead.
Fix: 202366729
Test: Rotate device, overview stays
Test: Unfold devices, overview goes away
Change-Id: Id8a7d4a1e237717521bfc5a5a67f23c4ee801c61
Test: manual (see video in bug) and added PackageUserKeyTest
Also tested pending conversation widget to ensure the right icon
is shown.
Fix: 201062480
Change-Id: If23c28bd93c54fb1747648309ab3c238a1810902
* Also add indicator if split was originally started
in portrait of landscape, so we know which dimension
of the divider bar to use if user goes to overview
and then rotates device (horizontal divider vs
vertical)
Fixes: 199461137
Test: Swipe to overview with staged split
Rotate device with and without live tile
Doesn't overlap with overview actions
Change-Id: I8b7f104f16d5b7265828f1b3d98ba3426b28d44f
Haptics introduced at the key moments:
- Task scroll in overview or quick switch, trigger when a new task comes
to the center of the screen;
- Task scroll in overview when overscroll animation is triggered;
- Task dismissed in overview;
There is also a configured min gap between two scroll haptics set to
20ms to prevent fast scrolls from creating a chain of cancelled effects.
Fix: 182382085
Test: manual
Change-Id: I43c0f8c879a06f317e8a660240dafb7f7abe79f7
* Divider bar dimensions manually calculated since
the leash that is provided has bounds larger than
the space that is visually shown between the two split
apps
Bug: 181704764
Test: Swipe up on large and normal screen,
w/ and w/o home rotation enabled
Change-Id: I1fde053151d47c6ce3e11f16f8ae4a153d273871
Test: Go to Developer Options, reset Hybrid Hotseat Education, then long press on a predicted hotseat item and ensure edu toast appears
Bug: 199299382
Change-Id: I384d7af08fc8b842bc3a1333b9f8017cca3680e6
Add a new screen ID for the second extra empty page
and add that new screen as well when the existing
extra empty page is added so that users can put items
on both sides of Workspace.
Test: manual
Bug: 196376162
Change-Id: I0b4f2e818407a10d8a7c032788a7bd7a61267779
> Updating IDP to use fixed bitmap sizes, so that the cache
stays valid
> Caching last known windowMetrices for non-active displays and
using estimation only when the cache is not available
> Only reloading model if IDP change could have affected the model
> Remove unnecessary listeners from IDP which are already controlled by
model lifecycle
Bug: 191657065
Test: Manual
Change-Id: Ia8e6dfafd0977e62aa3fcf367ad79f7a49b2df51