Certain devices have camera cutouts that taskbar's insets did not account for previously. This change adds in the cutout's height as a bottom inset (if it is present) to avoid a black bar being drawn in the taskbar area.
Fix: 322954760
Test: Open a full screen app on a large screen device and ensure that a black bar doesn't show up when rotating the screen to 90 degrees and 180 degrees.
Flag: N/A
Change-Id: I876274b561c7f0101554654ce758fc9c08180de7
Bug: 230395757
Test: In 3-button folded mode, make sure that the touches that happen between nav buttons go to the nearest button. No regression in other modes.
Change-Id: Icb776a9a4ed4fc31d33dc3267c7053f2b0da0bfc
- Add DebugTouchableRegion which includes the last region that we
set as well as the reason (code path) for it, which we dump.
- If persist.debug.draw_taskbar_debug_ui is enabled, we will also
outline the touchable region on the screen.
Flag: None
Test: testThreeButtonsTaskbarBoundsAfterConfigChangeDuringIme
Bug: 315393203
Change-Id: I70b37e8b8804c4a48ffe3956d2a24aa5eab452fd
insetsSizeOverrides must have the same length and types according to WindowManagerService#relayoutWindow
Bug: 308441430
Test: manual
Change-Id: I7416a5302c90652e1fa266cc98e3c7825fa17e64
Previously [1] we removed the explicit insetsSizeOverride from the
Taskbar for the IME window, as we now [2] enable hiding the IME nav bar.
This would now send the normal insets the taskbar reports. When running
on pre/postsubmit, with test harness setup, the non-transient taskbar
would show, which is bigger than the IME's navigation bar height.
Due to the current logic in InsetsSource#calculateInsets, this leads to
the IME window receiving top navigation bar insets instead of bottom.
As the IME nav bar is now treated as a (fixed on bottom) caption bar,
the two would no longer overlap, and thus lead to a double insets
dispatch, and also a (temporarily) bigger IME window, for IMEs that set
their decorView height to WRAP_CONTENT (e.g. MockIME used in testing).
This instead keeps the previous insetsSizeOverride for IME, and uses the
stashedTasbarHeight when in gesture nav, which should account for both
transient and normal taskbars.
[1]: I86079cb6670a2ae3b6fa883694f8af81df212408
[2]: I8793db69fb846046300d5a56b3b0060138ef4cd5
Bug: 297000797
Test: atest WindowInsetsControllerTests#testDispatchApplyWindowInsetsCount_ime
Change-Id: I102a8bc1f8869ebbce9f8f1fefa651d49a9538ec
Can't reuse the same insets object for both providedInsets and paramsForRotation. They can override each other.
Bug: 274517647
Test: turn on FLAG_HIDE_NAVBAR_WINDOW and ENABLE_TASKBAR_NO_RECREATION. Make sure the insets are correct
Change-Id: I8a4ab93e17bf5f4c7949678b087261344cccb1f9
- Add ENABLE_TASKBAR_NO_RECREATION flag
When the flag is turned on,
* Always destroy and recreate
* Move task bar drag layer lifecycle from TaskbarActivityContext to TaskbarManager
* Wrap the drag layer into a fullscreen root view
Note that in order to preserve the window across multiple TaskbarActivityContext creations, the inset types and ids must stay the same, so it's extracted out.
Bug: 274517647
Test: Fold and unfold a few times. Use a few applications. Make sure the task bar is visible and in the right place (tested with ENABLE_TASKBAR_NO_RECREATION and FLAG_HIDE_NAVBAR_WINDOW both on, both off, and one on and one off)
Change-Id: Ic3f0aa3d056fe178a53b76b2ad6cc6b9bffd5898
With ENABLE_HIDE_IME_CAPTION_BAR, we no longer need to update the navigation bar override. This was already applied for the navigation bar, but not the task bar. Mirrors the NavigationBar.java change in
I8793db69fb846046300d5a56b3b0060138ef4cd5.
Bug: 289748734
Change-Id: I86079cb6670a2ae3b6fa883694f8af81df212408
Test: presubmit
If the bubble bar is visible and we're in Overview, set the touchable region
of the Taskbar to include the bubble bar bounds.
Fixes: 290197298
Test: Manual
- Add multiple bubbles to the bubble bar
- Go to Overview
- Tap on the bubble bar
-- Observe that the bubble bar expands
- Tap on different bubbles
-- Observe that the bubble bar updates correctly
- Tap outside the bubble bar
-- Observe that the bubble bar collapses
- Tap outside of the bubble bar again
-- Observe that the launcher state changed and we are in Home
Change-Id: I722778ee41b50ebca57431bb303da89104d25090
* WM checks that the number of insets don't change for
a given window once it's added. Previously when we changed
nav modes the window was removed and a new one was added, so
changing insets amounts/types didn't matter.
* Now that we use the same window and re-provide the insets,
the number of them provided have to match (insets values themselves
can change as much as needed)
* Fix minor bug when checking bit mask for gravity
Test: Switch between nav modes, no crash; no change in behavior
w/ flag turned off
Bug: 274517647
Flag: persist.wm.debug.hide_navbar_window
Change-Id: I750f843e8210ba1c800b61ac79664265924c054a
Change-Id: Idba4e8e1888fa58bf872c04cb042f77a8b5b0573
* Ignore orientation check from ag/22709055 for now,
that will be reverted. This causes recreateTaskbar() to
not run when folding the device
Bug: 274517647
Test: Tested 3 button nav in portrait/landscape/seascape
Flag: persist.wm.debug.hide_navbar_window
Change-Id: Ied02ead677d496b465c748257e32b7db5eb9580c
This is an initial change that positions the bubble bar aligning it
with the center of the hotseat icons. We still need to center it
with the taskbar when in overview.
This change also fixes the touch issues where sometimes the hotseat
icons don't respond to taps. The fix is twofold:
1. Make sure that taskbar insets are always updated when
BubbleStashController#setBubblesShowingOnHome is called.
2. Update the touchable region in TaskbarInsetsController to account
for the Y translation of the bubble bar bounds when the bubble
bar is visible.
Demo: https://screenshot.googleplex.com/6NRyu2CR7Bjs32x
Bug: 286247080
Test: Manual on a physical device
Change-Id: I00daff8341e4d8f5d141b5e0220726f6c03b437c
* Bubble bar typically follows the behavior of taskbar - if taskbar
is shown, the bubble bar is shown, if taskbar hides, bubble bar
hides.
* The bubble bar has 3 states: stashed, collapsed (unstashed but
the bubbles are not expanded), and expanded. When bubbles are
expanded, this means WMShell is rendering the bubble
expanded view. In this situation taskbar becomes collapsed.
Bug: 253318833
Test: manual - flag turned on - see go/bubble-bar-tests
Test: manual - flag turned off:
- launch an app, ensure taskbar is stashed
- unstash taskbar, drag down on taskbar, ensure it
becomes stashed
- be in an app, unstash taskbar, interact with the app,
ensure taskbar is stashed
- be in an app, unstash taskbar, select an app from it,
ensure taskbar is stashed & app is opened
Flag: WM_BUBBLE_BAR
Change-Id: I7b481d768182c8429160ab4a9b213b885a7d78bc
The server side has moved the InsetsRoundedCornerFrame into
InsetsFrameProvider as it is actually using a given type of insets frame
to calculate the new rounded corner information and moving it into the
corresponding provider would make it cleaner.
To make sure it can be updated and accessed properly,
TaskbarInsetsController is now holding the nav bar insets provider to
make the update. It will be used always even if the height has been
updated. Other necessary changes are made to reflect the change.
Test: DisplayPolicyInsetsTests
Test: m
Bug: 274724339
Change-Id: Iec6804a01bafbbaed8591694490f29c97ea7e7fc
While in overview, makes the touchable region smaller so touches can go to the window below and trigger tapping on overview to go home.
Bug: 269985301
Test: Manual (TAPL in a following CL)
Flag: none
Change-Id: Ie8c7719090c387f951d78cf0fc47e6d9ed192f27
* Bubble bar typically follows the behavior of taskbar - if taskbar
is shown, the bubble bar is shown, if taskbar hides, bubble bar
hides.
* The bubble bar has 3 states: stashed, collapsed (unstashed but
the bubbles are not expanded), and expanded. When bubbles are
expanded, this means WMShell is rendering the bubble
expanded view. In this situation taskbar becomes collapsed.
Bug: 253318833
Test: manual, with other CLs, see go/bubble-bar-tests
Flag: WM_BUBBLE_BAR
Change-Id: Ic210c382e7482c259ae543a0dc083fe9305cbf5b
Additionally, this CL fixes some touchable insets issues with the
overlay window. Dragging and dropping is now reliable from taskbar while
All Apps or EDU is also open.
Change-Id: Ia612c1b5266a8fb2b7005a773fbd2b00ec4824db
Bug: 279465803
Bug: 275890048
Bug: 264463659
Flag: PERSISTENT_TASKBAR_OVER_TASKBAR_ALL_APPS (Teamfood)
Test: Taskbar is functional over All Apps and EDU.
Now we base it on the current tappableElement insets, which will only be
> 0 for the unstashed, persistent taskbar which draws rounded corners.
This inset also stays stable during temporary stash transitions such as
when the IME is showing.
Flag: ENABLE_TRANSIENT_TASKBAR=true, ENABLE_TASKBAR_PINNING=true
Test: in split screen for both transient and pinned (persistent)
taskbar, ensure split screen divider bottom is drawn appropriately
Fixes: 278028503
Change-Id: Iab56c5dc8f9fc81c34aa01f41b5212dd5c6fd7f0
Taskbar never needs a semi-transparent scrim drawn by the decor view at
the insets area, because taskbar has the background color on its own if
needed.
Bug: 197615177
Test: SystemUIGoogleBiometricsScreenshotTests
Change-Id: Ic49c8af3ecbefcc83d1bd987812625c7e2f37157
- Setting the override frame for the gesture insets sources prevents
the insets from being calculated correctly for the IME window
- Update the set of provided insets based on the current nav mode
so that we don't report gesture insets in button nav
Bug: 265614886
Test: Dump IME window insets for button/gesture nav
Change-Id: I22f9d09a66b50d6e2fb5002af19058657a06404d
This CL was generated automatically from the following command:
$ external/ktfmt/prepare_upgrade.py --repo=packages/apps/Launcher3/ --build_id=9645412 --bug_id=266197805
This CL formats all files already correctly formatted with the upcoming
version of ktfmt.
Bug: 266197805
Test: Presubmits
Change-Id: Ide7d63a75fed98aabe348821355356c77f00a9ec
Merged-In: Ide7d63a75fed98aabe348821355356c77f00a9ec
Bug: 231648761
Fixes: 269392826
Test: Unable to reproduce 269392826, but verified this doesn't
break existing paths to adjust the insets
Change-Id: I8aa82f3fb77e627ac02352ef31b788b81c2ca901
This uses ktfmt on the PREUPLOAD hook to check file formatting.
Bug: 264851618
Test: manual
Change-Id: I8bdeabd9c1ed571a464707e6912419ad3190a169
Merged-In: I8bdeabd9c1ed571a464707e6912419ad3190a169
- ITYPE_BOTTOM_MANDATORY_GESTURES should always be > 0 in gesture
navigation mode, but before we were setting it equal to tappableHeight
which is 0 if the taskbar is stashed. Fixed it to be contentHeight
instead.
- Updated VIS insets to only override them to be 0 for tappableElement,
not for others like navigationBars. We still only override this for
gesture navigation; 3 button mode will continue reporting the same as
we report to the underlying apps.
Test: manually with 3 button mode, gesture nav mode with taskbar
stashed/unstashed; checked that TaskbarInsetsController dump looks as
expected, and that behaviors like Assistant and IME look correct
Flag: none
Fixes: 262516176
Change-Id: I5a1cdf5a9956777d3189ef6042493e2f5aa9b162
Bug: 260101467
Test: open chrome, enter url to pull up ime, swipe up to show taskbar,
tap on taskbar icon
Change-Id: Ic8be6c2bb82fc9b8ab83572cb8622ac157078ea9
Having EDU in the same window as Taskbar causes it to be above All Apps
and other system views such as the notification tray. This change
refactors the existing All Apps window to accomodate more AFVs so that
EDU can also exist in it.
Demo: http://shortn/_Qcki3gwvf7
Test: Manual
Fix: 232177330
Change-Id: I1bef31d798041a90a0c3e033e71be63898fa5fbc
- When taskbar is unstashed in Launcher (e.g. overview), make the unstashed height touchable
- When AllApps button is pressed in taskbar overview, also stash taskbar
Bug: 245320601
Test: manual
Change-Id: Iadd0bea13cf9a779c68e953d25f21f663c15865a
Test: Invoke assistant on tablet on both geture nav and 3 button mode;
In gesture nav mode: assistant shows at the very bottom of the screen,
layered on top of the taskbar background (in z order)
In 3 button mode: assistant shows right above the taskbar, which only
shows the 3 buttons (no taskbar icons) while assistant is showing
Fixes: 225200928
Change-Id: I2fbc05e696b58e8801e704092aa2741cb57c05c4
The frameworks extended the API to let window provide insets to given
typed window with insetsSizeOverrides. Migrate to the method to
provide insets for IME.
Test: build
Test: the IME can receive correct insets
Bug: 225200928
Change-Id: Ic8eab5198221bc8de6eca432e8b3e11067c83d57
The WM provides a new way to provide insets, modified the code to
reflect that change.
Bug: 161689946
Test: m
Merged-In: I31bd26a5ce4c3e47f8961d4fe528f3a97ec063f8
Change-Id: I31bd26a5ce4c3e47f8961d4fe528f3a97ec063f8
- TaskbarDraglayer.width isn't initialize when Taskbar is recreated before layout, so use DeviceProfile.widthPx instead
- Also listen for DeviceProfile change in TaskbarInsetsController to update Taskbar touchableRegion
Fix: 233316713
Test: Switch to 3 button, nav button works. Swtich to gesture nav, taskbar icon can be tapped
Test: Rotate deice, whole Taskbar should still be touchable
Change-Id: I29ff86fd8616a620f98d9b5438cc586bd69fac33