Expand emergency button to match size of container when only item in separated list.

Test: Automated tests pass. Enable force grid layout (feature flags) and bug report shortcut to get a 4-item grid, then open the power menu. Emergency button should take up two rows, and space above the icon and below the text should be tappable.

Fixes: 130347549

Change-Id: If44d2fb7d90b33b9b90b3ed970c7751b4bffd0d5
This commit is contained in:
Aaron Heuckroth
2019-04-11 11:15:12 -04:00
parent 242f2c93fa
commit 0142937e81
2 changed files with 50 additions and 33 deletions

View File

@@ -20,44 +20,50 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/global_actions_grid_item_width"
android:layout_height="@dimen/global_actions_grid_item_height"
android:gravity="top|center_horizontal"
android:orientation="vertical"
android:gravity="center"
android:layout_marginTop="@dimen/global_actions_grid_item_vertical_margin"
android:layout_marginBottom="@dimen/global_actions_grid_item_vertical_margin"
android:layout_marginLeft="@dimen/global_actions_grid_item_side_margin"
android:layout_marginRight="@dimen/global_actions_grid_item_side_margin"
>
<ImageView
android:id="@*android:id/icon"
android:layout_width="@dimen/global_actions_grid_item_icon_width"
android:layout_height="@dimen/global_actions_grid_item_icon_height"
android:layout_marginTop="@dimen/global_actions_grid_item_icon_top_margin"
android:layout_marginBottom="@dimen/global_actions_grid_item_icon_bottom_margin"
android:layout_marginLeft="@dimen/global_actions_grid_item_icon_side_margin"
android:layout_marginRight="@dimen/global_actions_grid_item_icon_side_margin"
android:scaleType="centerInside"
android:alpha="?android:attr/primaryContentAlpha"
/>
<LinearLayout
android:layout_width="@dimen/global_actions_grid_item_width"
android:layout_height="@dimen/global_actions_grid_item_height"
android:gravity="top|center_horizontal"
android:orientation="vertical"
>
<ImageView
android:id="@*android:id/icon"
android:layout_width="@dimen/global_actions_grid_item_icon_width"
android:layout_height="@dimen/global_actions_grid_item_icon_height"
android:layout_marginTop="@dimen/global_actions_grid_item_icon_top_margin"
android:layout_marginBottom="@dimen/global_actions_grid_item_icon_bottom_margin"
android:layout_marginLeft="@dimen/global_actions_grid_item_icon_side_margin"
android:layout_marginRight="@dimen/global_actions_grid_item_icon_side_margin"
android:scaleType="centerInside"
android:alpha="?android:attr/primaryContentAlpha"
/>
<TextView
android:id="@*android:id/message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:gravity="center"
android:textSize="12dp"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
<TextView
android:id="@*android:id/message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:gravity="center"
android:textSize="12dp"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
<TextView
android:visibility="gone"
android:id="@*android:id/status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="?android:attr/textColorTertiary"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
<TextView
android:visibility="gone"
android:id="@*android:id/status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="?android:attr/textColorTertiary"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
</LinearLayout>
</LinearLayout>

View File

@@ -119,6 +119,17 @@ public class GlobalActionsGridLayout extends MultiListLayout {
}
}
updateSnapPosition();
updateSeparatedButtonSize();
}
private void updateSeparatedButtonSize() {
ViewGroup separated = getSeparatedView();
if (separated.getChildCount() == 1) {
View onlyChild = separated.getChildAt(0);
ViewGroup.LayoutParams childParams = onlyChild.getLayoutParams();
childParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
childParams.height = ViewGroup.LayoutParams.MATCH_PARENT;
}
}
@Override