diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_docked.png new file mode 100755 index 0000000000000..0622ddc420e33 Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_docked.png differ diff --git a/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked.png new file mode 100755 index 0000000000000..c03ad203f47b9 Binary files /dev/null and b/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked.png differ diff --git a/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked.png new file mode 100755 index 0000000000000..bfe2b4a973c6b Binary files /dev/null and b/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked.png differ diff --git a/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked.png new file mode 100755 index 0000000000000..5ed0ee8c74f7d Binary files /dev/null and b/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked.png differ diff --git a/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked.png new file mode 100755 index 0000000000000..d1811629f4171 Binary files /dev/null and b/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked.png differ diff --git a/packages/SystemUI/res/drawable-land/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-land/ic_sysbar_docked.png new file mode 100755 index 0000000000000..236b70afffef8 Binary files /dev/null and b/packages/SystemUI/res/drawable-land/ic_sysbar_docked.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_docked.png new file mode 100755 index 0000000000000..93d1905d8c48e Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_docked.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked.png new file mode 100755 index 0000000000000..73ddde86cda46 Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked.png differ diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked.png new file mode 100755 index 0000000000000..1e84732f755ae Binary files /dev/null and b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked.png differ diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked.png old mode 100644 new mode 100755 index f3be2ee1ecb05..ee3ffde568bc3 Binary files a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked.png and b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked.png differ 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 99896f8b7f233..56a7dbed52cb4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -25,7 +25,6 @@ import android.app.ActivityManagerNative; 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; import android.graphics.drawable.Drawable; @@ -90,14 +89,13 @@ public class NavigationBarView extends LinearLayout { private final NavTransitionListener mTransitionListener = new NavTransitionListener(); private OnVerticalChangedListener mOnVerticalChangedListener; - private boolean mIsLayoutRtl; private boolean mLayoutTransitionsEnabled = true; private boolean mWakeAndUnlocking; private boolean mCarMode = false; private boolean mDockedStackExists; private final SparseArray mButtonDisatchers = new SparseArray<>(); - private int mDensity; + private Configuration mConfiguration; private class NavTransitionListener implements TransitionListener { private boolean mBackTransitioning; @@ -183,13 +181,13 @@ public class NavigationBarView extends LinearLayout { mDisplay = ((WindowManager) context.getSystemService( Context.WINDOW_SERVICE)).getDefaultDisplay(); - final Resources res = getContext().getResources(); mVertical = false; mShowMenu = false; mGestureHelper = new NavigationBarGestureHelper(context); - mDensity = context.getResources().getConfiguration().densityDpi; - getIcons(context); + mConfiguration = new Configuration(); + mConfiguration.updateFrom(context.getResources().getConfiguration()); + updateIcons(context, Configuration.EMPTY, mConfiguration); mBarTransitions = new NavigationBarTransitions(this); @@ -263,7 +261,7 @@ public class NavigationBarView extends LinearLayout { return mButtonDisatchers.get(R.id.ime_switcher); } - private void getCarModeIcons(Context ctx) { + private void updateCarModeIcons(Context ctx) { mBackCarModeIcon = ctx.getDrawable(R.drawable.ic_sysbar_back_carmode); mBackLandCarModeIcon = mBackCarModeIcon; mBackAltCarModeIcon = ctx.getDrawable(R.drawable.ic_sysbar_back_ime_carmode); @@ -271,22 +269,27 @@ public class NavigationBarView extends LinearLayout { mHomeCarModeIcon = ctx.getDrawable(R.drawable.ic_sysbar_home_carmode); } - private void getIcons(Context ctx) { - mBackIcon = ctx.getDrawable(R.drawable.ic_sysbar_back); - mBackLandIcon = mBackIcon; - mBackAltIcon = ctx.getDrawable(R.drawable.ic_sysbar_back_ime); - mBackAltLandIcon = mBackAltIcon; + private void updateIcons(Context ctx, Configuration oldConfig, Configuration newConfig) { + if (oldConfig.orientation != newConfig.orientation) { + mDockedIcon = ctx.getDrawable(R.drawable.ic_sysbar_docked); + } + if (oldConfig.densityDpi != newConfig.densityDpi) { + mBackIcon = ctx.getDrawable(R.drawable.ic_sysbar_back); + mBackLandIcon = mBackIcon; + mBackAltIcon = ctx.getDrawable(R.drawable.ic_sysbar_back_ime); + mBackAltLandIcon = mBackAltIcon; - mHomeDefaultIcon = ctx.getDrawable(R.drawable.ic_sysbar_home); + mHomeDefaultIcon = ctx.getDrawable(R.drawable.ic_sysbar_home); - mRecentIcon = ctx.getDrawable(R.drawable.ic_sysbar_recent); - mDockedIcon = ctx.getDrawable(R.drawable.ic_sysbar_docked); - getCarModeIcons(ctx); + mRecentIcon = ctx.getDrawable(R.drawable.ic_sysbar_recent); + updateCarModeIcons(ctx); + } } @Override public void setLayoutDirection(int layoutDirection) { - getIcons(getContext()); + // Reload all the icons + updateIcons(getContext(), Configuration.EMPTY, mConfiguration); super.setLayoutDirection(layoutDirection); } @@ -598,10 +601,9 @@ public class NavigationBarView extends LinearLayout { // we are switching to. setNavigationIconHints(mNavigationIconHints, true); } - if (mDensity != newConfig.densityDpi) { - mDensity = newConfig.densityDpi; - getIcons(getContext()); - } + updateIcons(getContext(), mConfiguration, newConfig); + updateRecentsIcon(); + mConfiguration.updateFrom(newConfig); } /**