WallpaperManagerCompatVOMR1 is targeting API 27 (O MR1), but the
api guard is checking, if we are running API 26 (O) or above.
Correct the check to prevent using unavailable Wallpaper APIs.
Change-Id: I83cceee8eb61b2d74e647d473d7d560d00be14d3
(cherry picked from commit Iaf510bb79010e640db04adbbc2ee44de9abd6913)
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
It’s an initial implementation, i.e. no fancy effects.
It shares a parent (LauncherRecentsViewContainer) with RecentsView.
The button is centered in clear_all_button_container, which gets
positioned programmatically to the right of the last task. (RTL polish
will be a separate CL as well).
Bug: 72222505
Change-Id: Ia912908a93a30c2f51450ccf0f97c7495e7916d5
Test: Manual
onStop() is a confirmed signal of user leaving Launcher. In most use
cases, we use onUserLeaveHint() to move PIP. However, in some cases,
onUserLeaveHint() does not get triggered. It's still a good signal for
those use cases because it happens sooner than onStop() and is not
interrupted by focus change. In order to address cases that
onUserLeaveHint() is not triggered (e.g. cancelling swipe up), onStop()
pushes PIP to the right position. In other cases, we simply set it
twice, which does not hurt.
Change-Id: Ia206590d10d673b16196bbab927a24aaae3ba46b
Fixes: 77648293
Test: manual test
We were requesting unbind in onCreate(), but the NotificationListenerService
documentation for requestUnbind() clearly states "The service should wait for the
{@link #onListenerConnected()} event before performing this operation. I know it's
tempting, but you must wait." I was tempted, and I did not wait. :(
The fact that the notification listener was binding even though the setting was off
was not only inefficient, but also had at least one user-visible bug: because
secure settings are set per user, the global badging setting actually only applies
canShowBadge = false for user 0; other users such as work profile still show badges.
Repro steps:
1. Have a work profile
2. Get a notification on work profile app and normal app
3. Turn off global badging setting ("Allow notification dots" from home settings)
4. Reboot the device
In this case, we get onCreate, call requestUnbind() which is ignored since we aren't
bound, then get onBind() and onListenerConnected() etc. Thus the work profile app has
a notification dot and other apps don't.
Bug: 71545493
Change-Id: I7f7dc219b25c28257f8b98fba7e362b99d3cba45
The current page is announced upon switching to it.
Is should be done this way for all future page implementations with
indicators.
Bug: 77827828
Change-Id: I8ba3bd9d068954df51d6de45da79133ede12c96d
Test: Manual
Merged-In: I8f2f163a261dd7098939674d39e014236fc66d5d
There seems to be an edge case where we can get a null notification in
onNotificationRemoved(); there's nothing actionable about that, so just
ignore it to prevent NPE. Also add null check to onNotificationPosted()
for good measure.
Bug: 69140873
Change-Id: I3586bf435d05aee38b99dffd3d01315b433e8476
Otherwise we'd be stuck using the old touch controllers until DragLayer
is setup again (e.g. launcher is killed).
Bug: 77921826
Change-Id: I8aac6fc453839902cb2d99279a6bd1549ee17d79
> If launcher already started, creating the state transition only after threshold crossed, so that previous animations are not cancelled
> Not posting animaiton callbacks at the front of the queue, as that sometimes causes it get executed before onNewIntent
> Farking the activity as forceInvisible while launching an opaque app, so that quickly pressing home/back runs the reverse animation
> Not running state animations when force-invisible is true
Bug: 77830325
Bug: 77898806
Change-Id: I50a7e915ca35fd6aeb284c8f321ecca74396fe98
Previously we only allowed dragging the forefront task. Now you can
swipe up to dismiss the second task as well, but can't drag it down to
launch.
Also cleaned up page-scroll-while-dismissing logic to ensure it works
correctly in RTL and for new cases with dismissing adjacent pages.
Bug: 73187449
Change-Id: I1fe873c4cf1380b951dd3b2e396ab401ca1f7470
We now pass the log action (e.g. SWIPE or FLING) to the pending
animation, so that the end listener can log appropriately. This
is used when swiping down or up on a task, for example.
Bug: 73783784
Change-Id: I5c2eee24e8b23cf4af68d503d3435a6d8088dd8a
Example bug:
1. Swipe up to overview and let go
2. Swipe all the way to the top of the screen, past where all apps stops
3. Swipe down
Before this change, you get reset in NORMAL state instead of OVERVIEW.
By ensuring that getTargetState() checks the drag direction before
returning a new state, we guarantee we only re-init in the case that the
state is actually changing. Otherwise it's possible to change the state
to one that is impossible, such as NORMAL when swiping up from ALL APPS.
Change-Id: I19913dded9c94228d06289780b6400e99403f378
In full screen always follow the device aspect ratio
In multi-window, follow the 1:1 split window size
Rotate the screen shot only in full-screen mode
Bug: 70289009
Change-Id: Id5095565634d4d7920fefa929b28276db80bda5f
Instead of using WindowTransformSwipeHandler, keeping the launcher UI in place and
just animating the window
Change-Id: I4defce3a9745407523de651aeb28a37867567507
Since -1st window already has accessible description, no need to
announce "Page X of Y" for it.
Bug: 74210311
Test: Manual
Change-Id: I5cbfd763778b5f7049be732a750df4501b5419e0
- To prevent surface thrashing, we no longer hide the home activity before
starting the transition home. This prevents the launcher from being added
to the remote animation target list, which means that we default to
skipping the launcher animation. As a workaround, we special case the
flow and force the animation to run when starting the recents animation.
Bug: 74405472
Test: Go home from an app, ensure there is an animation.
Change-Id: Ifd2b39444fdeab323ee79a368b580a6264c3e5b9