Collapse the control bar when it is expanded and loses focus
Fixes: 168320103
Test: manual
Change-Id: If6c3a4dd4474c68e128c71c981ef6988b2334029
diff --git a/car-apps-common/src/com/android/car/apps/common/ControlBar.java b/car-apps-common/src/com/android/car/apps/common/ControlBar.java
index 4ed3d45..4181867 100644
--- a/car-apps-common/src/com/android/car/apps/common/ControlBar.java
+++ b/car-apps-common/src/com/android/car/apps/common/ControlBar.java
@@ -95,6 +95,8 @@
private ExpandCollapseCallback mExpandCollapseCallback;
// The root of the transition animation.
private ViewGroup mTransitionRoot;
+ // Whether this control bar has focus.
+ private boolean mHasFocus;
// Default number of columns, if unspecified
private static final int DEFAULT_COLUMNS = 3;
@@ -165,6 +167,15 @@
mDefaultExpandCollapseView.setContentDescription(context.getString(
R.string.control_bar_expand_collapse_button));
mDefaultExpandCollapseView.setOnClickListener(v -> onExpandCollapse());
+
+ // Collapse the control bar when it is expanded and loses focus.
+ getViewTreeObserver().addOnGlobalFocusChangeListener((oldFocus, newFocus) -> {
+ boolean hasFocus = hasFocus();
+ if (mHasFocus && !hasFocus && mIsExpanded) {
+ onExpandCollapse();
+ }
+ mHasFocus = hasFocus;
+ });
}
private int getSlotIndex(@SlotPosition int slotPosition) {