Loading packages/SystemUI/res/layout-ldrtl/navigation_bar.xmldeleted 100644 → 0 +0 −328 Original line number Diff line number Diff line <?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/com.android.systemui" 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_extra_key_width" 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:background="@drawable/ripple_drawable" android:contentDescription="@string/accessibility_back" /> <View android:layout_width="match_parent" 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:background="@drawable/ripple_drawable" android:contentDescription="@string/accessibility_home" /> <View android:layout_width="match_parent" 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:background="@drawable/ripple_drawable" android:contentDescription="@string/accessibility_recent" /> <FrameLayout android:layout_width="@dimen/navigation_extra_key_width" 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:background="@drawable/ripple_drawable" 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:background="@drawable/ripple_drawable" /> </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="80dp" android:layout_height="match_parent" android:layout_marginStart="40dp" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0" /> <View android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:visibility="invisible" /> <ImageView android:layout_width="80dp" android:layout_height="match_parent" android:src="@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0" /> <View android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:visibility="invisible" /> <ImageView android:layout_width="80dp" android:layout_marginEnd="40dp" android:layout_height="match_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0" /> </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_width="@dimen/navigation_extra_key_width" android:layout_height="40dp" android:layout_weight="0" > <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/menu" android:layout_height="@dimen/navigation_extra_key_width" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_menu_land" systemui:keyCode="82" android:layout_weight="0" android:visibility="invisible" android:contentDescription="@string/accessibility_menu" android:background="@drawable/ripple_drawable" /> <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/ime_switcher" android:layout_height="@dimen/navigation_extra_key_width" android:layout_width="match_parent" android:contentDescription="@string/accessibility_ime_switch_button" android:scaleType="centerInside" android:src="@drawable/ic_ime_switcher_default" android:visibility="invisible" android:background="@drawable/ripple_drawable" /> </FrameLayout> <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/back" android:layout_height="80dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_back_land" android:scaleType="center" systemui:keyCode="4" android:layout_weight="0" android:contentDescription="@string/accessibility_back" android:background="@drawable/ripple_drawable" /> <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="80dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_home_land" systemui:keyCode="3" systemui:keyRepeat="false" android:layout_weight="0" android:contentDescription="@string/accessibility_home" android:background="@drawable/ripple_drawable" /> <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/recent_apps" android:layout_height="80dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_recent_land" android:layout_weight="0" android:contentDescription="@string/accessibility_recent" android:background="@drawable/ripple_drawable" /> <View android:layout_height="40dp" 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="80dp" android:layout_marginTop="40dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0" /> <View android:layout_height="match_parent" android:layout_width="match_parent" android:layout_weight="1" android:visibility="invisible" /> <ImageView android:layout_height="80dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0" /> <View android:layout_height="match_parent" android:layout_width="match_parent" android:layout_weight="1" android:visibility="invisible" /> <ImageView android:layout_height="80dp" android:layout_marginBottom="40dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0" /> </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> <!-- not used --> <View android:id="@+id/rot270" android:layout_height="match_parent" android:layout_width="match_parent" android:visibility="gone" /> </com.android.systemui.statusbar.phone.NavigationBarView> packages/SystemUI/res/layout-sw600dp/navigation_bar.xml +0 −8 Original line number Diff line number Diff line Loading @@ -314,12 +314,4 @@ android:layout_gravity="top" /> </FrameLayout> <!-- not used --> <View android:id="@+id/rot270" android:layout_height="match_parent" android:layout_width="match_parent" android:visibility="gone" /> </com.android.systemui.statusbar.phone.NavigationBarView> packages/SystemUI/res/layout/navigation_bar.xml +0 −7 Original line number Diff line number Diff line Loading @@ -322,11 +322,4 @@ /> </FrameLayout> <!-- not used --> <View android:id="@+id/rot270" android:layout_height="match_parent" android:layout_width="match_parent" android:visibility="gone" /> </com.android.systemui.statusbar.phone.NavigationBarView> packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +58 −5 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.animation.TimeInterpolator; import android.animation.ValueAnimator; import android.app.StatusBarManager; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Point; import android.graphics.Rect; Loading @@ -48,13 +49,12 @@ import com.android.systemui.statusbar.policy.KeyButtonView; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; public class NavigationBarView extends LinearLayout { final static boolean DEBUG = false; final static String TAG = "PhoneStatusBar/NavigationBarView"; final static boolean NAVBAR_ALWAYS_AT_RIGHT = true; // slippery nav bar when everything is disabled, e.g. during setup final static boolean SLIPPERY_WHEN_DISABLED = true; Loading Loading @@ -87,6 +87,7 @@ public class NavigationBarView extends LinearLayout { private final NavTransitionListener mTransitionListener = new NavTransitionListener(); private OnVerticalChangedListener mOnVerticalChangedListener; private boolean mIsLtr; private class NavTransitionListener implements TransitionListener { private boolean mBackTransitioning; Loading Loading @@ -387,13 +388,13 @@ public class NavigationBarView extends LinearLayout { mRotatedViews[Surface.ROTATION_90] = findViewById(R.id.rot90); mRotatedViews[Surface.ROTATION_270] = NAVBAR_ALWAYS_AT_RIGHT ? findViewById(R.id.rot90) : findViewById(R.id.rot270); mRotatedViews[Surface.ROTATION_270] = mRotatedViews[Surface.ROTATION_90]; mCurrentView = mRotatedViews[Surface.ROTATION_0]; getImeSwitchButton().setOnClickListener(mImeSwitcherClickListener); updateLTROrder(); } public boolean isVertical() { Loading Loading @@ -456,6 +457,58 @@ public class NavigationBarView extends LinearLayout { super.onSizeChanged(w, h, oldw, oldh); } @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); updateLTROrder(); } /** * In landscape, the LinearLayout is not auto mirrored since it is vertical. Therefore we * have to do it manually */ private void updateLTROrder() { boolean isLtr = getResources().getConfiguration() .getLayoutDirection() == LAYOUT_DIRECTION_RTL; if (mIsLtr != isLtr) { // We swap all children of the 90 and 270 degree layouts, since they are vertical View rotation90 = mRotatedViews[Surface.ROTATION_90]; swapChildrenOrderIfVertical(rotation90.findViewById(R.id.nav_buttons)); View rotation270 = mRotatedViews[Surface.ROTATION_270]; if (rotation90 != rotation270) { swapChildrenOrderIfVertical(rotation270.findViewById(R.id.nav_buttons)); } mIsLtr = isLtr; } } /** * Swaps the children order of a LinearLayout if it's orientation is Vertical * * @param group The LinearLayout to swap the children from. */ private void swapChildrenOrderIfVertical(View group) { if (group instanceof LinearLayout) { LinearLayout linearLayout = (LinearLayout) group; if (linearLayout.getOrientation() == VERTICAL) { int childCount = linearLayout.getChildCount(); ArrayList<View> childList = new ArrayList<>(childCount); for (int i = 0; i < childCount; i++) { childList.add(linearLayout.getChildAt(i)); } linearLayout.removeAllViews(); for (int i = childCount - 1; i >= 0; i--) { linearLayout.addView(childList.get(i)); } } } } /* @Override protected void onLayout (boolean changed, int left, int top, int right, int bottom) { Loading Loading
packages/SystemUI/res/layout-ldrtl/navigation_bar.xmldeleted 100644 → 0 +0 −328 Original line number Diff line number Diff line <?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/com.android.systemui" 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_extra_key_width" 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:background="@drawable/ripple_drawable" android:contentDescription="@string/accessibility_back" /> <View android:layout_width="match_parent" 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:background="@drawable/ripple_drawable" android:contentDescription="@string/accessibility_home" /> <View android:layout_width="match_parent" 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:background="@drawable/ripple_drawable" android:contentDescription="@string/accessibility_recent" /> <FrameLayout android:layout_width="@dimen/navigation_extra_key_width" 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:background="@drawable/ripple_drawable" 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:background="@drawable/ripple_drawable" /> </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="80dp" android:layout_height="match_parent" android:layout_marginStart="40dp" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0" /> <View android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:visibility="invisible" /> <ImageView android:layout_width="80dp" android:layout_height="match_parent" android:src="@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0" /> <View android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:visibility="invisible" /> <ImageView android:layout_width="80dp" android:layout_marginEnd="40dp" android:layout_height="match_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0" /> </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_width="@dimen/navigation_extra_key_width" android:layout_height="40dp" android:layout_weight="0" > <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/menu" android:layout_height="@dimen/navigation_extra_key_width" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_menu_land" systemui:keyCode="82" android:layout_weight="0" android:visibility="invisible" android:contentDescription="@string/accessibility_menu" android:background="@drawable/ripple_drawable" /> <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/ime_switcher" android:layout_height="@dimen/navigation_extra_key_width" android:layout_width="match_parent" android:contentDescription="@string/accessibility_ime_switch_button" android:scaleType="centerInside" android:src="@drawable/ic_ime_switcher_default" android:visibility="invisible" android:background="@drawable/ripple_drawable" /> </FrameLayout> <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/back" android:layout_height="80dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_back_land" android:scaleType="center" systemui:keyCode="4" android:layout_weight="0" android:contentDescription="@string/accessibility_back" android:background="@drawable/ripple_drawable" /> <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="80dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_home_land" systemui:keyCode="3" systemui:keyRepeat="false" android:layout_weight="0" android:contentDescription="@string/accessibility_home" android:background="@drawable/ripple_drawable" /> <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/recent_apps" android:layout_height="80dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_recent_land" android:layout_weight="0" android:contentDescription="@string/accessibility_recent" android:background="@drawable/ripple_drawable" /> <View android:layout_height="40dp" 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="80dp" android:layout_marginTop="40dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0" /> <View android:layout_height="match_parent" android:layout_width="match_parent" android:layout_weight="1" android:visibility="invisible" /> <ImageView android:layout_height="80dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0" /> <View android:layout_height="match_parent" android:layout_width="match_parent" android:layout_weight="1" android:visibility="invisible" /> <ImageView android:layout_height="80dp" android:layout_marginBottom="40dp" android:layout_width="match_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0" /> </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> <!-- not used --> <View android:id="@+id/rot270" android:layout_height="match_parent" android:layout_width="match_parent" android:visibility="gone" /> </com.android.systemui.statusbar.phone.NavigationBarView>
packages/SystemUI/res/layout-sw600dp/navigation_bar.xml +0 −8 Original line number Diff line number Diff line Loading @@ -314,12 +314,4 @@ android:layout_gravity="top" /> </FrameLayout> <!-- not used --> <View android:id="@+id/rot270" android:layout_height="match_parent" android:layout_width="match_parent" android:visibility="gone" /> </com.android.systemui.statusbar.phone.NavigationBarView>
packages/SystemUI/res/layout/navigation_bar.xml +0 −7 Original line number Diff line number Diff line Loading @@ -322,11 +322,4 @@ /> </FrameLayout> <!-- not used --> <View android:id="@+id/rot270" android:layout_height="match_parent" android:layout_width="match_parent" android:visibility="gone" /> </com.android.systemui.statusbar.phone.NavigationBarView>
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +58 −5 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.animation.TimeInterpolator; import android.animation.ValueAnimator; import android.app.StatusBarManager; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Point; import android.graphics.Rect; Loading @@ -48,13 +49,12 @@ import com.android.systemui.statusbar.policy.KeyButtonView; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; public class NavigationBarView extends LinearLayout { final static boolean DEBUG = false; final static String TAG = "PhoneStatusBar/NavigationBarView"; final static boolean NAVBAR_ALWAYS_AT_RIGHT = true; // slippery nav bar when everything is disabled, e.g. during setup final static boolean SLIPPERY_WHEN_DISABLED = true; Loading Loading @@ -87,6 +87,7 @@ public class NavigationBarView extends LinearLayout { private final NavTransitionListener mTransitionListener = new NavTransitionListener(); private OnVerticalChangedListener mOnVerticalChangedListener; private boolean mIsLtr; private class NavTransitionListener implements TransitionListener { private boolean mBackTransitioning; Loading Loading @@ -387,13 +388,13 @@ public class NavigationBarView extends LinearLayout { mRotatedViews[Surface.ROTATION_90] = findViewById(R.id.rot90); mRotatedViews[Surface.ROTATION_270] = NAVBAR_ALWAYS_AT_RIGHT ? findViewById(R.id.rot90) : findViewById(R.id.rot270); mRotatedViews[Surface.ROTATION_270] = mRotatedViews[Surface.ROTATION_90]; mCurrentView = mRotatedViews[Surface.ROTATION_0]; getImeSwitchButton().setOnClickListener(mImeSwitcherClickListener); updateLTROrder(); } public boolean isVertical() { Loading Loading @@ -456,6 +457,58 @@ public class NavigationBarView extends LinearLayout { super.onSizeChanged(w, h, oldw, oldh); } @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); updateLTROrder(); } /** * In landscape, the LinearLayout is not auto mirrored since it is vertical. Therefore we * have to do it manually */ private void updateLTROrder() { boolean isLtr = getResources().getConfiguration() .getLayoutDirection() == LAYOUT_DIRECTION_RTL; if (mIsLtr != isLtr) { // We swap all children of the 90 and 270 degree layouts, since they are vertical View rotation90 = mRotatedViews[Surface.ROTATION_90]; swapChildrenOrderIfVertical(rotation90.findViewById(R.id.nav_buttons)); View rotation270 = mRotatedViews[Surface.ROTATION_270]; if (rotation90 != rotation270) { swapChildrenOrderIfVertical(rotation270.findViewById(R.id.nav_buttons)); } mIsLtr = isLtr; } } /** * Swaps the children order of a LinearLayout if it's orientation is Vertical * * @param group The LinearLayout to swap the children from. */ private void swapChildrenOrderIfVertical(View group) { if (group instanceof LinearLayout) { LinearLayout linearLayout = (LinearLayout) group; if (linearLayout.getOrientation() == VERTICAL) { int childCount = linearLayout.getChildCount(); ArrayList<View> childList = new ArrayList<>(childCount); for (int i = 0; i < childCount; i++) { childList.add(linearLayout.getChildAt(i)); } linearLayout.removeAllViews(); for (int i = childCount - 1; i >= 0; i--) { linearLayout.addView(childList.get(i)); } } } } /* @Override protected void onLayout (boolean changed, int left, int top, int right, int bottom) { Loading