Fixing bottom part of QS not getting any touches in split shade
The main issue was that QS and notifications container had padding of the size of taskbar. It was because taskbar is included in window insets and container doesn't check where insets come from. If insets are coming from taskbar only they should be ignored because taskbar should disappear when shade is expanded. But if they're coming from taskabar and navigation buttons are visible, they shouldn't be ignored as then taskbar always stays on the screen - that's assessed with checking if gesture navigation is available (if not, it means button navigation). Also because buttons are on the right side only and taskbar might or might not be visible, QS is just taking full height and notifications (that are on the right) have bigger spacing from the bottom. Because this change involved using a few extra objects not available in NotificationsQuickSettingsContainer and I wanted to avoid doing everything in NotificationPanelViewController (it's big enough) and just passing results to NotificationsQuickSettingsContainer, I introduced controller for it: NotificationsQSContainerController. Now this controller has all the logic for determining bottom spacing. There can be a few more things that can be moved from NPVC to NotificationsQSContainerController but it's a start. Also now QS views and its children views instead of talking directly to container, they talk to controller via QSContainerController interface, which is a nice side-effect improvement. Fixes: 194989891 Fixes: 200291264 Test: Home screen (so taskbar is hidden) -> go to split shade -> use anything that is close to the bottom of QS side (music widget, rearranging QS tiles, etc) I'll add unit tests if the change overall looks good Change-Id: I91ab8ec26dd2ef60562ffb9fdbc0e5739745ca0b
Loading
Please register or sign in to comment