This CL allows freeform-first devices to lock the taskbar in a pinned
state when Launcher is visible.
Bug: 361419732
Flag: com.android.window.flags.enter_desktop_by_default_on_freeform_displays
Test: DisplayControllerTest
Test: manual
Change-Id: Ic0d2740e33fee19c676d88aa2bcf370eb64366e8
Update education stats when
- go overview and all apps by swiping up at homepage (AbstractStateChangeTouchController)
- go home from all apps by swiping down the all apps panel (AbstractStateChangeTouchController)
- go home from all apps or overview by swiping up from the bottom nav bar (NavBarToHomeTouchController)
- in 3 button navgiation mode (TaskbarNavButtonController)
NavBarToHomeTouchController does not inherit from AbstractStateChangeTouchController so logic are added separately.
Bug: 363480554
Test: TaskbarNavButtonControllerTest
Flag: com.android.systemui.keyboard_touchpad_contextual_education
Change-Id: I0662704a9093b9f5a4d2f086a8297429fbc49881
Added logic to stash the hotseat when on launcher home screen.
Bug: 280494203
Test: Manual:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/fjfjUw296LRXUm9uYqXU4K
all tests in com.android.launcher3.taskbar
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I67b298831eaed9c549a2fae7dc5a0d9fae51f7c4
LinearSmoothScrolling only happens when there is a new section to scroll to. Instead of playing haptics
when sectionInfo changes, only play haptics during smooth scrolling.
bug: 359658099
Test: Manually tested, video wouldn't help since I am testing haptics
Flag: NONE bugfix
Change-Id: I96c911b4d2d201d0d953a9619a97979759a02427
Implemented nav bar placement update to be located opposite to the
bubble bar.
When bubble bar is moved to the other side of the bar, 3 button nav will
swap sides (without animation).
If taskbar has to be repositioned it does that with the animation.
Test: TaskbarViewControllerTest
Bug: 346381754
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Id031706183c60cbd9c67537b01530acb43bae614
* Add ApplicationContext qualifier and binding the application context instance so
that this context is available across dagger graph.
* Add QuickStepModule and LoggingModule
* Provide SettingsChangeLogger in dagger way. We are depending on
MainThreadInitializedObject for cleanup. We need to define a way
explicitly see how we can destroy singleton objects.
Bug: 361850561
Test: Manual
Flag: NONE Dagger Integration
Change-Id: Ia10cc500edb1d88adcca540119651f59b9bc8dc8
SpringRelativeLayout views in widgets sheets UI are non-actionable
containers, and as such they would ideally not receive focus. They were
made focusable as a workaround for an issue where back action was no-op
when widget search text box was focused, and there were no other
focusable elements in the UI b/197129170.
WidgetSearchBarController handles back action by clearing
focus, which ends up refocusing the search text box. This CL, removes
this back action override, and let's back action through - it will end
up being handled by `WidgetsFullSheet.onBackInvoked` which resets the
search.
Bug: 365120544
Test: Manual - verified back action with widget search active (and in
case with no results) in emulator
Flag: EXEMPT bugfix
Change-Id: I1fed37372521947b7d4644047807dc451b0119a4
Moved DesktopVisibilityController to TIS for 3P launcher support.
Flag: EXEMPT bug fix
Fixes: 338063030
Fixes: 357859025
Test: Launched overview and resumed desktop task from desktop mode on 1P and 3P launchers
Change-Id: I64e99a32ed13bcb6e4a81a18c29df2643373dc35
This allows better matching of items who do not have a fixed id
Bug: 364363493
Flag: EXEMPT bug fix
Test: Manual- Verified app launch and back animation
Change-Id: I4f9deba89399b89974686b64226b99f91a3d46be
The OverviewCommandHelper conversion to kotlin introduced a bug when using 3-button-navigation to go to Overview when the animation is disabled. A NullPointerException happens in the AnimatorListenerAdapter implementation in OverviewCommandHelper when StateManager.goToState calls onAnimationEnd providing a null argument to a function that shouldn't allow a null value.
The abstract class AnimatorListenerAdapter implements AnimatorListener functions containing @NonNull Animator. However, AnimatorListenerAdapter overrides the interface functions without adding a @NonNull annotation in the arguments. In Java, this is allowed, causing only a warning. In Kotlin, due to the null safety nature, the compiler forces a null check for nullable types and doesn't allow the implementation of a @NonNull argument to become nullable.
To fix this issue we created a empty AnimatorSet to provide to onAnimationEnd instead of null.
For more context when @NonNull was added:
- The @NonNull annotation was added to fix b/206801689, however it was never updated for AnimatorListenerAdapterImproved Commit Message
Fix: 364860731
Bug: 352046797
Flag: EXEMPT bugfix
Test: Manual. Instructions in the bug.
Change-Id: I120af3d75e614581d6ac0f867a8c6f9419ee1bd3
Instead of throwing the event on the Launcher, now the test listens
to changes in the view tree and when the condition is meet it stops the
waiter.
Bug: 352569050
Bug: 324261526
Test: IntegrationReorderWidgetsTest
Flag: TEST_ONLY
Change-Id: I94596429cb79af6b298281bd5cd4558e919736e2