Adds LongPressHandlingView to KeyguardRootView.
- The settings popup was previously migrated to KeyguardRootView but the
long-press handling view that handles the long-press to show the
settings popup was not.
- The reason is was working is by accident: the KeyguardRootView was
rendering on top (z order) of the NotificationPanelView and the
NotificaitonPanelView did contain the original LongPressHandlingView.
Hence, long-press touches were passing through KeyguardRootView and
did in fact work to show the settings popup menu.
- This CL moves the LongPressHandlingView into KeyguardRootView and
removes it from the NotificationPanelView based on the feature flag.
In addition:
- Adding the LongPressHandlingView to KeyguardRootView meant adding an
additional ConstraintLayout "section":
DefaultLongPressHandlingSection.
- The interface for KeyguardSection was moved to the shared.model
package because it was previously in the data layer but referenced
from the UI layer, which breaks the Clean Architecture Dependnecy Rule.
- The long-press handling view binder was updtes to also monitor for
interactions on the same view that need to dismiss the settings popup
menu, greatly simplifying what external invocations need to do to
connect the long-press to the settings popup bindings.
Fix: 278057014
Test: manually verified that long-pressing empty space on the lock
screen brings up the settings popup with and without the "split bottom
area" feature flag being enabled.
Test: manually verified that tapping/touching outside the popup menu
once it shows up, hides it. Again, with the flag on and off.
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a34dbc6eb406d416ebfb155d10f97344280be7a8)
Merged-In: I59bb4d54fb92c55266fed71dfa652c8025a6dd6c
Change-Id: I59bb4d54fb92c55266fed71dfa652c8025a6dd6c
25 files changed