See
https://docs.google.com/drawings/d/1JHFi_nhmQt2xPT1N3FB_1mnaRK5TVqKZ9-fSl3EA7sU/edit?usp=sharing
and
https://docs.google.com/drawings/d/1bx4WURP4uHZGzZ1bWQgpw701jkTkVqlNfA02Yt-ZtSI/edit?usp=sharing&resourcekey=0-oySjsnaCsOSrNIPqqEa0gw
for design details.
We need to make SandboxContext extend LauncherApplication because we
want create MainThreadInitializedObjects in SandboxContext's
AppComponent scope. Since MainThreadInitiliazedObjects are closed in
SandboxContext's OnDestroy() , we need to replicate same thing using
dagger as well.
- DaggerSingletonObject is same as MainThreadInitializedObject but is
used for fetching the dagger created singletons so that we can avoid
major refactors for accessing singletons. This will be deleted soon.
- DaggerSingletonTracker to track dagger created singletons and call
close() on those singleton objects created in SandboxContext scope.
- Annotate the singleton object SettingsChangeLogger constructor with @Inject and execute the statements in Main thread.
- Added createSandboxContextForTest(only for Test) to avoid creation of
dagger component in test. As follow up, I will delete this method and
introduce fakeDaggerComponents in test.
Bug: 361850561
Test: Manual
Flag: NONE Dagger Integration
Change-Id: I2d3762ea64e53baa4de190790568aec750b54201
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
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