summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res/values/dimens.xml3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java19
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java68
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java2
5 files changed, 36 insertions, 58 deletions
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index fe67808f6cb0..987d1fb07157 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -104,9 +104,6 @@
<dimen name="navigation_key_padding">0dp</dimen>
- <dimen name="navigation_key_width_sw600dp_land">162dp</dimen>
- <dimen name="navigation_key_padding_sw600dp_land">42dp</dimen>
-
<!-- The width of the view containing the menu/ime navigation bar icons -->
<dimen name="navigation_extra_key_width">36dp</dimen>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java
index 1dbea163e9be..379e7a487f4f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java
@@ -40,6 +40,7 @@ public class ButtonDispatcher {
private int mImageResource = -1;
private Drawable mImageDrawable;
private View mCurrentView;
+ private boolean mVertical;
public ButtonDispatcher(int id) {
mId = id;
@@ -49,13 +50,6 @@ public class ButtonDispatcher {
mViews.clear();
}
- void addView(View view, boolean landscape) {
- addView(view);
- if (view instanceof ButtonInterface) {
- ((ButtonInterface) view).setLandscape(landscape);
- }
- }
-
void addView(View view) {
mViews.add(view);
view.setOnClickListener(mClickListener);
@@ -75,6 +69,10 @@ public class ButtonDispatcher {
} else if (mImageDrawable != null) {
((ButtonInterface) view).setImageDrawable(mImageDrawable);
}
+
+ if (view instanceof ButtonInterface) {
+ ((ButtonInterface) view).setVertical(mVertical);
+ }
}
public int getId() {
@@ -186,12 +184,13 @@ public class ButtonDispatcher {
}
}
- public void setLandscape(boolean landscape) {
+ public void setVertical(boolean vertical) {
+ mVertical = vertical;
final int N = mViews.size();
for (int i = 0; i < N; i++) {
final View view = mViews.get(i);
if (view instanceof ButtonInterface) {
- ((ButtonInterface) view).setLandscape(landscape);
+ ((ButtonInterface) view).setVertical(vertical);
}
}
}
@@ -206,7 +205,7 @@ public class ButtonDispatcher {
void abortCurrentGesture();
- void setLandscape(boolean landscape);
+ void setVertical(boolean vertical);
void setCarMode(boolean carMode);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java
index 06c8b685ff63..59d12eaa13ad 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java
@@ -17,12 +17,14 @@ package com.android.systemui.statusbar.phone;
import android.annotation.Nullable;
import android.content.Context;
import android.content.res.Configuration;
-import android.content.res.Resources;
import android.util.AttributeSet;
import android.util.SparseArray;
+import android.view.Display;
+import android.view.Display.Mode;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.Space;
@@ -63,12 +65,13 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi
protected FrameLayout mRot0;
protected FrameLayout mRot90;
+ private boolean isRot0Landscape;
private SparseArray<ButtonDispatcher> mButtonDispatchers;
private String mCurrentLayout;
- private View mLastRot0;
- private View mLastRot90;
+ private View mLastPortrait;
+ private View mLastLandscape;
private boolean mAlternativeOrder;
@@ -76,6 +79,10 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi
super(context, attrs);
mDensity = context.getResources().getConfiguration().densityDpi;
createInflaters();
+ Display display = ((WindowManager)
+ context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
+ Mode displayMode = display.getMode();
+ isRot0Landscape = displayMode.getPhysicalWidth() > displayMode.getPhysicalHeight();
}
private void createInflaters() {
@@ -204,17 +211,17 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi
String[] center = sets[1].split(BUTTON_SEPARATOR);
String[] end = sets[2].split(BUTTON_SEPARATOR);
// Inflate these in start to end order or accessibility traversal will be messed up.
- inflateButtons(start, (ViewGroup) mRot0.findViewById(R.id.ends_group), false);
- inflateButtons(start, (ViewGroup) mRot90.findViewById(R.id.ends_group), true);
+ inflateButtons(start, (ViewGroup) mRot0.findViewById(R.id.ends_group), isRot0Landscape);
+ inflateButtons(start, (ViewGroup) mRot90.findViewById(R.id.ends_group), !isRot0Landscape);
- inflateButtons(center, (ViewGroup) mRot0.findViewById(R.id.center_group), false);
- inflateButtons(center, (ViewGroup) mRot90.findViewById(R.id.center_group), true);
+ inflateButtons(center, (ViewGroup) mRot0.findViewById(R.id.center_group), isRot0Landscape);
+ inflateButtons(center, (ViewGroup) mRot90.findViewById(R.id.center_group), !isRot0Landscape);
addGravitySpacer((LinearLayout) mRot0.findViewById(R.id.ends_group));
addGravitySpacer((LinearLayout) mRot90.findViewById(R.id.ends_group));
- inflateButtons(end, (ViewGroup) mRot0.findViewById(R.id.ends_group), false);
- inflateButtons(end, (ViewGroup) mRot90.findViewById(R.id.ends_group), true);
+ inflateButtons(end, (ViewGroup) mRot0.findViewById(R.id.ends_group), isRot0Landscape);
+ inflateButtons(end, (ViewGroup) mRot90.findViewById(R.id.ends_group), !isRot0Landscape);
}
private void addGravitySpacer(LinearLayout layout) {
@@ -223,7 +230,7 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi
private void inflateButtons(String[] buttons, ViewGroup parent, boolean landscape) {
for (int i = 0; i < buttons.length; i++) {
- inflateButton(buttons[i], parent, landscape, i);
+ inflateButton(buttons[i], parent, landscape);
}
}
@@ -236,27 +243,17 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi
}
@Nullable
- protected View inflateButton(String buttonSpec, ViewGroup parent, boolean landscape,
- int indexInParent) {
+ protected View inflateButton(String buttonSpec, ViewGroup parent, boolean landscape) {
LayoutInflater inflater = landscape ? mLandscapeInflater : mLayoutInflater;
float size = extractSize(buttonSpec);
String button = extractButton(buttonSpec);
View v = null;
if (HOME.equals(button)) {
v = inflater.inflate(R.layout.home, parent, false);
- if (landscape && isSw600Dp()) {
- setupLandButton(v);
- }
} else if (BACK.equals(button)) {
v = inflater.inflate(R.layout.back, parent, false);
- if (landscape && isSw600Dp()) {
- setupLandButton(v);
- }
} else if (RECENT.equals(button)) {
v = inflater.inflate(R.layout.recent_apps, parent, false);
- if (landscape && isSw600Dp()) {
- setupLandButton(v);
- }
} else if (MENU_IME.equals(button)) {
v = inflater.inflate(R.layout.menu_ime, parent, false);
} else if (NAVSPACE.equals(button)) {
@@ -280,15 +277,15 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi
params.width = (int) (params.width * size);
}
parent.addView(v);
- addToDispatchers(v, landscape);
- View lastView = landscape ? mLastRot90 : mLastRot0;
+ addToDispatchers(v);
+ View lastView = landscape ? mLastLandscape : mLastPortrait;
if (lastView != null) {
v.setAccessibilityTraversalAfter(lastView.getId());
}
if (landscape) {
- mLastRot90 = v;
+ mLastLandscape = v;
} else {
- mLastRot0 = v;
+ mLastPortrait = v;
}
return v;
}
@@ -327,37 +324,22 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi
return buttonSpec.substring(0, buttonSpec.indexOf(SIZE_MOD_START));
}
- private void addToDispatchers(View v, boolean landscape) {
+ private void addToDispatchers(View v) {
if (mButtonDispatchers != null) {
final int indexOfKey = mButtonDispatchers.indexOfKey(v.getId());
if (indexOfKey >= 0) {
- mButtonDispatchers.valueAt(indexOfKey).addView(v, landscape);
+ mButtonDispatchers.valueAt(indexOfKey).addView(v);
} else if (v instanceof ViewGroup) {
final ViewGroup viewGroup = (ViewGroup)v;
final int N = viewGroup.getChildCount();
for (int i = 0; i < N; i++) {
- addToDispatchers(viewGroup.getChildAt(i), landscape);
+ addToDispatchers(viewGroup.getChildAt(i));
}
}
}
}
- private boolean isSw600Dp() {
- Configuration configuration = mContext.getResources().getConfiguration();
- return (configuration.smallestScreenWidthDp >= 600);
- }
- /**
- * This manually sets the width of sw600dp landscape buttons because despite
- * overriding the configuration from the overridden resources aren't loaded currently.
- */
- private void setupLandButton(View v) {
- Resources res = mContext.getResources();
- v.getLayoutParams().width = res.getDimensionPixelOffset(
- R.dimen.navigation_key_width_sw600dp_land);
- int padding = res.getDimensionPixelOffset(R.dimen.navigation_key_padding_sw600dp_land);
- v.setPadding(padding, v.getPaddingTop(), padding, v.getPaddingBottom());
- }
private void clearViews() {
if (mButtonDispatchers != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index a0d1b4203557..245d4da2e43f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -579,7 +579,7 @@ public class NavigationBarView extends LinearLayout {
updateTaskSwitchHelper();
setNavigationIconHints(mNavigationIconHints, true);
- getHomeButton().setLandscape(mVertical);
+ getHomeButton().setVertical(mVertical);
}
private void updateTaskSwitchHelper() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
index e6066aaa4c31..b8018bda76de 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
@@ -275,7 +275,7 @@ public class KeyButtonView extends ImageView implements ButtonDispatcher.ButtonI
}
@Override
- public void setLandscape(boolean landscape) {
+ public void setVertical(boolean vertical) {
//no op
}