When the navigation bar was originally introduced to phones (in change Ic613a335) we wanted it to stick to the same spot on the display so that it felt as much as possible like a physical button array; pressing the same fingertip-sized spot on the glass should always invoke BACK, etc. This meant flipping the nav bar to a vertical orientation when the phone was in landscape, and then juggling around the window insets and other system windows to make room for it. For reasons that are now lost to time, in that original implementation we made the vertical navigation bar narrower: 42dp (versus 48dp for the horizontal navigation bar, which incidentally is always horizontal on tablet-type devices). Nobody really noticed (except app developers looking to hardcode this value instead of just using fitSystemWindows or the new WindowInsets). Here we finally make the navigation bars match perfectly in portrait and landscape. Bug: 23724209 Change-Id: I861be84b41c6a227d269469686c8c66a32029f1d
332 lines
14 KiB
XML
332 lines
14 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
/* apps/common/assets/default/default/skins/StatusBar.xml
|
|
**
|
|
** Copyright 2011, 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.
|
|
*/
|
|
-->
|
|
|
|
<com.android.systemui.statusbar.phone.NavigationBarView
|
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:systemui="http://schemas.android.com/apk/res-auto"
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
android:background="@drawable/system_bar_background"
|
|
>
|
|
|
|
<FrameLayout android:id="@+id/rot0"
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
>
|
|
|
|
<LinearLayout
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
android:orientation="horizontal"
|
|
android:clipChildren="false"
|
|
android:clipToPadding="false"
|
|
android:id="@+id/nav_buttons"
|
|
android:animateLayoutChanges="true"
|
|
>
|
|
|
|
<!-- navigation controls -->
|
|
<View
|
|
android:layout_width="@dimen/navigation_side_padding"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="0"
|
|
android:visibility="invisible"
|
|
/>
|
|
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/back"
|
|
android:layout_width="@dimen/navigation_key_width"
|
|
android:layout_height="match_parent"
|
|
android:src="@drawable/ic_sysbar_back"
|
|
systemui:keyCode="4"
|
|
android:layout_weight="0"
|
|
android:scaleType="center"
|
|
android:contentDescription="@string/accessibility_back"
|
|
/>
|
|
<View
|
|
android:layout_width="0dp"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="1"
|
|
android:visibility="invisible"
|
|
/>
|
|
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/home"
|
|
android:layout_width="@dimen/navigation_key_width"
|
|
android:layout_height="match_parent"
|
|
android:src="@drawable/ic_sysbar_home"
|
|
systemui:keyCode="3"
|
|
systemui:keyRepeat="false"
|
|
android:layout_weight="0"
|
|
android:scaleType="center"
|
|
android:contentDescription="@string/accessibility_home"
|
|
/>
|
|
<View
|
|
android:layout_width="0dp"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="1"
|
|
android:visibility="invisible"
|
|
/>
|
|
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/recent_apps"
|
|
android:layout_width="@dimen/navigation_key_width"
|
|
android:layout_height="match_parent"
|
|
android:src="@drawable/ic_sysbar_recent"
|
|
android:layout_weight="0"
|
|
android:scaleType="center"
|
|
android:contentDescription="@string/accessibility_recent"
|
|
/>
|
|
<FrameLayout
|
|
android:layout_width="@dimen/navigation_side_padding"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="0" >
|
|
<com.android.systemui.statusbar.policy.KeyButtonView
|
|
android:id="@+id/menu"
|
|
android:layout_width="@dimen/navigation_extra_key_width"
|
|
android:layout_height="match_parent"
|
|
android:contentDescription="@string/accessibility_menu"
|
|
android:src="@drawable/ic_sysbar_menu"
|
|
android:visibility="invisible"
|
|
android:scaleType="centerInside"
|
|
android:layout_gravity="end"
|
|
systemui:keyCode="82" />
|
|
|
|
<com.android.systemui.statusbar.policy.KeyButtonView
|
|
android:id="@+id/ime_switcher"
|
|
android:layout_width="@dimen/navigation_extra_key_width"
|
|
android:layout_height="match_parent"
|
|
android:contentDescription="@string/accessibility_ime_switch_button"
|
|
android:scaleType="centerInside"
|
|
android:src="@drawable/ic_ime_switcher_default"
|
|
android:visibility="invisible"
|
|
android:layout_gravity="end" />
|
|
</FrameLayout>
|
|
|
|
</LinearLayout>
|
|
|
|
<!-- lights out layout to match exactly -->
|
|
<LinearLayout
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
android:orientation="horizontal"
|
|
android:id="@+id/lights_out"
|
|
android:visibility="gone"
|
|
>
|
|
<ImageView
|
|
android:layout_width="@dimen/navigation_key_width"
|
|
android:layout_height="match_parent"
|
|
android:layout_marginStart="@dimen/navigation_side_padding"
|
|
android:src="@drawable/ic_sysbar_lights_out_dot_small"
|
|
android:scaleType="center"
|
|
android:layout_weight="0"
|
|
android:contentDescription="@string/accessibility_back"
|
|
/>
|
|
<View
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="1"
|
|
android:visibility="invisible"
|
|
/>
|
|
<ImageView
|
|
android:layout_width="@dimen/navigation_key_width"
|
|
android:layout_height="match_parent"
|
|
android:src="@drawable/ic_sysbar_lights_out_dot_large"
|
|
android:scaleType="center"
|
|
android:layout_weight="0"
|
|
android:contentDescription="@string/accessibility_home"
|
|
/>
|
|
<View
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="1"
|
|
android:visibility="invisible"
|
|
/>
|
|
<ImageView
|
|
android:layout_width="@dimen/navigation_key_width"
|
|
android:layout_marginEnd="@dimen/navigation_side_padding"
|
|
android:layout_height="match_parent"
|
|
android:src="@drawable/ic_sysbar_lights_out_dot_small"
|
|
android:scaleType="center"
|
|
android:layout_weight="0"
|
|
android:contentDescription="@string/accessibility_recent"
|
|
/>
|
|
</LinearLayout>
|
|
|
|
<com.android.systemui.statusbar.policy.DeadZone
|
|
android:id="@+id/deadzone"
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
systemui:minSize="@dimen/navigation_bar_deadzone_size"
|
|
systemui:maxSize="@dimen/navigation_bar_deadzone_size_max"
|
|
systemui:holdTime="@integer/navigation_bar_deadzone_hold"
|
|
systemui:decayTime="@integer/navigation_bar_deadzone_decay"
|
|
systemui:orientation="horizontal"
|
|
android:layout_gravity="top"
|
|
/>
|
|
</FrameLayout>
|
|
|
|
<FrameLayout android:id="@+id/rot90"
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
android:visibility="gone"
|
|
android:paddingTop="0dp"
|
|
>
|
|
|
|
<LinearLayout
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
android:orientation="vertical"
|
|
android:clipChildren="false"
|
|
android:clipToPadding="false"
|
|
android:id="@+id/nav_buttons"
|
|
android:animateLayoutChanges="true"
|
|
>
|
|
|
|
<!-- navigation controls -->
|
|
<FrameLayout
|
|
android:layout_weight="0"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="@dimen/navigation_side_padding" >
|
|
<com.android.systemui.statusbar.policy.KeyButtonView
|
|
android:id="@+id/ime_switcher"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="@dimen/navigation_extra_key_width"
|
|
android:contentDescription="@string/accessibility_ime_switch_button"
|
|
android:scaleType="centerInside"
|
|
android:src="@drawable/ic_ime_switcher_default"
|
|
android:layout_gravity="top"
|
|
android:visibility="invisible" />
|
|
|
|
<com.android.systemui.statusbar.policy.KeyButtonView
|
|
android:id="@+id/menu"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="40dp"
|
|
android:contentDescription="@string/accessibility_menu"
|
|
android:src="@drawable/ic_sysbar_menu"
|
|
android:scaleType="centerInside"
|
|
android:layout_gravity="top"
|
|
android:visibility="invisible"
|
|
systemui:keyCode="82" />
|
|
</FrameLayout>
|
|
|
|
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/recent_apps"
|
|
android:layout_height="@dimen/navigation_key_width"
|
|
android:layout_width="match_parent"
|
|
android:src="@drawable/ic_sysbar_recent"
|
|
android:scaleType="center"
|
|
android:layout_weight="0"
|
|
android:contentDescription="@string/accessibility_recent"
|
|
/>
|
|
<View
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
android:layout_weight="1"
|
|
android:visibility="invisible"
|
|
/>
|
|
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/home"
|
|
android:layout_height="@dimen/navigation_key_width"
|
|
android:layout_width="match_parent"
|
|
android:src="@drawable/ic_sysbar_home"
|
|
android:scaleType="center"
|
|
systemui:keyCode="3"
|
|
systemui:keyRepeat="false"
|
|
android:layout_weight="0"
|
|
android:contentDescription="@string/accessibility_home"
|
|
/>
|
|
<View
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
android:layout_weight="1"
|
|
android:visibility="invisible"
|
|
/>
|
|
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/back"
|
|
android:layout_height="@dimen/navigation_key_width"
|
|
android:layout_width="match_parent"
|
|
android:src="@drawable/ic_sysbar_back"
|
|
android:scaleType="center"
|
|
systemui:keyCode="4"
|
|
android:layout_weight="0"
|
|
android:contentDescription="@string/accessibility_back"
|
|
/>
|
|
<View
|
|
android:layout_height="@dimen/navigation_side_padding"
|
|
android:layout_width="match_parent"
|
|
android:layout_weight="0"
|
|
android:visibility="invisible"
|
|
/>
|
|
</LinearLayout>
|
|
|
|
<!-- lights out layout to match exactly -->
|
|
<LinearLayout
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
android:orientation="vertical"
|
|
android:id="@+id/lights_out"
|
|
android:visibility="gone"
|
|
>
|
|
<ImageView
|
|
android:layout_height="@dimen/navigation_key_width"
|
|
android:layout_marginTop="@dimen/navigation_side_padding"
|
|
android:layout_width="match_parent"
|
|
android:src="@drawable/ic_sysbar_lights_out_dot_small"
|
|
android:scaleType="center"
|
|
android:layout_weight="0"
|
|
android:contentDescription="@string/accessibility_recent"
|
|
/>
|
|
<View
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
android:layout_weight="1"
|
|
android:visibility="invisible"
|
|
/>
|
|
<ImageView
|
|
android:layout_height="@dimen/navigation_key_width"
|
|
android:layout_width="match_parent"
|
|
android:src="@drawable/ic_sysbar_lights_out_dot_large"
|
|
android:scaleType="center"
|
|
android:layout_weight="0"
|
|
android:contentDescription="@string/accessibility_home"
|
|
/>
|
|
<View
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
android:layout_weight="1"
|
|
android:visibility="invisible"
|
|
/>
|
|
<ImageView
|
|
android:layout_height="@dimen/navigation_key_width"
|
|
android:layout_marginBottom="@dimen/navigation_side_padding"
|
|
android:layout_width="match_parent"
|
|
android:src="@drawable/ic_sysbar_lights_out_dot_small"
|
|
android:scaleType="center"
|
|
android:layout_weight="0"
|
|
android:contentDescription="@string/accessibility_back"
|
|
/>
|
|
</LinearLayout>
|
|
|
|
<com.android.systemui.statusbar.policy.DeadZone
|
|
android:id="@+id/deadzone"
|
|
android:layout_height="match_parent"
|
|
android:layout_width="match_parent"
|
|
systemui:minSize="@dimen/navigation_bar_deadzone_size"
|
|
systemui:maxSize="@dimen/navigation_bar_deadzone_size_max"
|
|
systemui:holdTime="@integer/navigation_bar_deadzone_hold"
|
|
systemui:decayTime="@integer/navigation_bar_deadzone_decay"
|
|
systemui:orientation="vertical"
|
|
android:layout_gravity="top"
|
|
/>
|
|
</FrameLayout>
|
|
|
|
</com.android.systemui.statusbar.phone.NavigationBarView>
|