DO NOT MERGE Use round highlight for navigation buttons

Make the focus highlight and touch ripple for buttons in the navigation
bar be round rather than square.

Also fix a bug in the dimming logic. The alpha was applied to the icon
initially, but when the state changed, the alpha was applied to the
entire button.

Launcher in master is quite different so it this change is limited to
rvc-qpr-dev for now.

Test: manual
Bug: 174614908
Bug: 168317872
Change-Id: I9b80946887ad85a73ddd281f7afcc9fcc8280a64
This commit is contained in:
Danny Epstein
2020-12-02 18:30:32 -08:00
parent 571568a861
commit 9242e6ee6a
3 changed files with 37 additions and 2 deletions

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2020 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true">
<shape android:shape="oval">
<solid android:color="@color/car_ui_rotary_focus_fill_color"/>
<stroke android:width="@dimen/car_ui_rotary_focus_stroke_width"
android:color="@color/car_ui_rotary_focus_stroke_color"/>
</shape>
</item>
<item>
<ripple android:color="@color/car_ui_ripple_color">
<item android:id="@android:id/mask">
<shape android:shape="oval">
<solid android:color="@android:color/white"/>
</shape>
</item>
</ripple>
</item>
</selector>

View File

@@ -40,6 +40,6 @@
<style name="NavigationBarButton">
<item name="android:layout_height">96dp</item>
<item name="android:layout_width">96dp</item>
<item name="android:background">?android:attr/selectableItemBackground</item>
<item name="android:background">@drawable/navigation_bar_button_bg</item>
</style>
</resources>

View File

@@ -99,7 +99,8 @@ public class CarNavigationButton extends LinearLayout {
if (mHighlightWhenSelected) {
// Always apply selected alpha if the button does not toggle alpha based on selection
// state.
setAlpha(!mHighlightWhenSelected || mSelected ? mSelectedAlpha : mUnselectedAlpha);
mIcon.setAlpha(
!mHighlightWhenSelected || mSelected ? mSelectedAlpha : mUnselectedAlpha);
}
if (mShowMoreWhenSelected && mMoreIcon != null) {
mMoreIcon.setVisibility(selected ? VISIBLE : GONE);