Loading core/java/android/view/WindowManagerPolicy.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -1397,4 +1397,9 @@ public interface WindowManagerPolicy { * is allowed, so for example, if DOCKED_RIGHT is not allowed, DOCKED_LEFT is allowed. * is allowed, so for example, if DOCKED_RIGHT is not allowed, DOCKED_LEFT is allowed. */ */ public boolean isDockSideAllowed(int dockSide); public boolean isDockSideAllowed(int dockSide); /** * Called when the configuration has changed, and it's safe to load new values from resources. */ public void onConfigurationChanged(); } } packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java +4 −6 Original line number Original line Diff line number Diff line Loading @@ -34,8 +34,6 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; * Controls the docked stack divider. * Controls the docked stack divider. */ */ public class Divider extends SystemUI { public class Divider extends SystemUI { private static final String TAG = "Divider"; private int mDividerWindowWidth; private DividerWindowManager mWindowManager; private DividerWindowManager mWindowManager; private DividerView mView; private DividerView mView; private DockDividerVisibilityListener mDockDividerVisibilityListener; private DockDividerVisibilityListener mDockDividerVisibilityListener; Loading @@ -46,8 +44,6 @@ public class Divider extends SystemUI { @Override @Override public void start() { public void start() { mWindowManager = new DividerWindowManager(mContext); mWindowManager = new DividerWindowManager(mContext); mDividerWindowWidth = mContext.getResources().getDimensionPixelSize( com.android.internal.R.dimen.docked_stack_divider_thickness); update(mContext.getResources().getConfiguration()); update(mContext.getResources().getConfiguration()); putComponent(Divider.class, this); putComponent(Divider.class, this); mDockDividerVisibilityListener = new DockDividerVisibilityListener(); mDockDividerVisibilityListener = new DockDividerVisibilityListener(); Loading @@ -70,9 +66,11 @@ public class Divider extends SystemUI { mView = (DividerView) mView = (DividerView) LayoutInflater.from(mContext).inflate(R.layout.docked_stack_divider, null); LayoutInflater.from(mContext).inflate(R.layout.docked_stack_divider, null); mView.setVisibility(mVisible ? View.VISIBLE : View.INVISIBLE); mView.setVisibility(mVisible ? View.VISIBLE : View.INVISIBLE); final int size = mContext.getResources().getDimensionPixelSize( com.android.internal.R.dimen.docked_stack_divider_thickness); final boolean landscape = configuration.orientation == ORIENTATION_LANDSCAPE; final boolean landscape = configuration.orientation == ORIENTATION_LANDSCAPE; final int width = landscape ? mDividerWindowWidth : MATCH_PARENT; final int width = landscape ? size : MATCH_PARENT; final int height = landscape ? MATCH_PARENT : mDividerWindowWidth; final int height = landscape ? MATCH_PARENT : size; mWindowManager.add(mView, width, height); mWindowManager.add(mView, width, height); mView.setWindowManager(mWindowManager); mView.setWindowManager(mWindowManager); } } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +13 −8 Original line number Original line Diff line number Diff line Loading @@ -76,6 +76,8 @@ public class NavigationBarView extends LinearLayout { private Drawable mHomeDefaultIcon, mHomeCarModeIcon; private Drawable mHomeDefaultIcon, mHomeCarModeIcon; private Drawable mRecentIcon; private Drawable mRecentIcon; private Drawable mDockedIcon; private Drawable mDockedIcon; private Drawable mImeIcon; private Drawable mMenuIcon; private NavigationBarGestureHelper mGestureHelper; private NavigationBarGestureHelper mGestureHelper; private DeadZone mDeadZone; private DeadZone mDeadZone; Loading Loading @@ -270,7 +272,8 @@ public class NavigationBarView extends LinearLayout { } } private void updateIcons(Context ctx, Configuration oldConfig, Configuration newConfig) { private void updateIcons(Context ctx, Configuration oldConfig, Configuration newConfig) { if (oldConfig.orientation != newConfig.orientation) { if (oldConfig.orientation != newConfig.orientation || oldConfig.densityDpi != newConfig.densityDpi) { mDockedIcon = ctx.getDrawable(R.drawable.ic_sysbar_docked); mDockedIcon = ctx.getDrawable(R.drawable.ic_sysbar_docked); } } if (oldConfig.densityDpi != newConfig.densityDpi) { if (oldConfig.densityDpi != newConfig.densityDpi) { Loading @@ -280,8 +283,10 @@ public class NavigationBarView extends LinearLayout { mBackAltLandIcon = mBackAltIcon; 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); mRecentIcon = ctx.getDrawable(R.drawable.ic_sysbar_recent); mMenuIcon = ctx.getDrawable(R.drawable.ic_sysbar_menu); mImeIcon = ctx.getDrawable(R.drawable.ic_ime_switcher_default); updateCarModeIcons(ctx); updateCarModeIcons(ctx); } } } } Loading Loading @@ -348,9 +353,11 @@ public class NavigationBarView extends LinearLayout { final boolean showImeButton = ((hints & StatusBarManager.NAVIGATION_HINT_IME_SHOWN) != 0); final boolean showImeButton = ((hints & StatusBarManager.NAVIGATION_HINT_IME_SHOWN) != 0); getImeSwitchButton().setVisibility(showImeButton ? View.VISIBLE : View.INVISIBLE); getImeSwitchButton().setVisibility(showImeButton ? View.VISIBLE : View.INVISIBLE); getImeSwitchButton().setImageDrawable(mImeIcon); // Update menu button in case the IME state has changed. // Update menu button in case the IME state has changed. setMenuVisibility(mShowMenu, true); setMenuVisibility(mShowMenu, true); getMenuButton().setImageDrawable(mMenuIcon); setDisabledFlags(mDisabledFlags, true); setDisabledFlags(mDisabledFlags, true); } } Loading Loading @@ -595,14 +602,12 @@ public class NavigationBarView extends LinearLayout { super.onConfigurationChanged(newConfig); super.onConfigurationChanged(newConfig); boolean uiCarModeChanged = updateCarMode(newConfig); boolean uiCarModeChanged = updateCarMode(newConfig); updateTaskSwitchHelper(); updateTaskSwitchHelper(); if (uiCarModeChanged) { // uiMode changed either from carmode or to carmode. // replace the nav bar button icons based on which mode // we are switching to. setNavigationIconHints(mNavigationIconHints, true); } updateIcons(getContext(), mConfiguration, newConfig); updateIcons(getContext(), mConfiguration, newConfig); updateRecentsIcon(); updateRecentsIcon(); if (uiCarModeChanged || mConfiguration.densityDpi != newConfig.densityDpi) { // If car mode or density changes, we need to reset the icons. setNavigationIconHints(mNavigationIconHints, true); } mConfiguration.updateFrom(newConfig); mConfiguration.updateFrom(newConfig); } } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +6 −2 Original line number Original line Diff line number Diff line Loading @@ -3303,10 +3303,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, protected void loadDimens() { protected void loadDimens() { final Resources res = mContext.getResources(); final Resources res = mContext.getResources(); int oldBarHeight = mNaturalBarHeight; mNaturalBarHeight = res.getDimensionPixelSize( mNaturalBarHeight = res.getDimensionPixelSize( com.android.internal.R.dimen.status_bar_height); com.android.internal.R.dimen.status_bar_height); if (mStatusBarWindowManager != null && mNaturalBarHeight != oldBarHeight) { mMaxAllowedKeyguardNotifications = res.getInteger(R.integer.keyguard_max_notification_count); mStatusBarWindowManager.setBarHeight(mNaturalBarHeight); } mMaxAllowedKeyguardNotifications = res.getInteger( R.integer.keyguard_max_notification_count); if (DEBUG) Log.v(TAG, "updateResources"); if (DEBUG) Log.v(TAG, "updateResources"); } } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -323,6 +323,11 @@ public class StatusBarWindowManager implements RemoteInputController.Callback { apply(mCurrentState); apply(mCurrentState); } } public void setBarHeight(int barHeight) { mBarHeight = barHeight; apply(mCurrentState); } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("StatusBarWindowManager state:"); pw.println("StatusBarWindowManager state:"); pw.println(mCurrentState); pw.println(mCurrentState); Loading Loading
core/java/android/view/WindowManagerPolicy.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -1397,4 +1397,9 @@ public interface WindowManagerPolicy { * is allowed, so for example, if DOCKED_RIGHT is not allowed, DOCKED_LEFT is allowed. * is allowed, so for example, if DOCKED_RIGHT is not allowed, DOCKED_LEFT is allowed. */ */ public boolean isDockSideAllowed(int dockSide); public boolean isDockSideAllowed(int dockSide); /** * Called when the configuration has changed, and it's safe to load new values from resources. */ public void onConfigurationChanged(); } }
packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java +4 −6 Original line number Original line Diff line number Diff line Loading @@ -34,8 +34,6 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; * Controls the docked stack divider. * Controls the docked stack divider. */ */ public class Divider extends SystemUI { public class Divider extends SystemUI { private static final String TAG = "Divider"; private int mDividerWindowWidth; private DividerWindowManager mWindowManager; private DividerWindowManager mWindowManager; private DividerView mView; private DividerView mView; private DockDividerVisibilityListener mDockDividerVisibilityListener; private DockDividerVisibilityListener mDockDividerVisibilityListener; Loading @@ -46,8 +44,6 @@ public class Divider extends SystemUI { @Override @Override public void start() { public void start() { mWindowManager = new DividerWindowManager(mContext); mWindowManager = new DividerWindowManager(mContext); mDividerWindowWidth = mContext.getResources().getDimensionPixelSize( com.android.internal.R.dimen.docked_stack_divider_thickness); update(mContext.getResources().getConfiguration()); update(mContext.getResources().getConfiguration()); putComponent(Divider.class, this); putComponent(Divider.class, this); mDockDividerVisibilityListener = new DockDividerVisibilityListener(); mDockDividerVisibilityListener = new DockDividerVisibilityListener(); Loading @@ -70,9 +66,11 @@ public class Divider extends SystemUI { mView = (DividerView) mView = (DividerView) LayoutInflater.from(mContext).inflate(R.layout.docked_stack_divider, null); LayoutInflater.from(mContext).inflate(R.layout.docked_stack_divider, null); mView.setVisibility(mVisible ? View.VISIBLE : View.INVISIBLE); mView.setVisibility(mVisible ? View.VISIBLE : View.INVISIBLE); final int size = mContext.getResources().getDimensionPixelSize( com.android.internal.R.dimen.docked_stack_divider_thickness); final boolean landscape = configuration.orientation == ORIENTATION_LANDSCAPE; final boolean landscape = configuration.orientation == ORIENTATION_LANDSCAPE; final int width = landscape ? mDividerWindowWidth : MATCH_PARENT; final int width = landscape ? size : MATCH_PARENT; final int height = landscape ? MATCH_PARENT : mDividerWindowWidth; final int height = landscape ? MATCH_PARENT : size; mWindowManager.add(mView, width, height); mWindowManager.add(mView, width, height); mView.setWindowManager(mWindowManager); mView.setWindowManager(mWindowManager); } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +13 −8 Original line number Original line Diff line number Diff line Loading @@ -76,6 +76,8 @@ public class NavigationBarView extends LinearLayout { private Drawable mHomeDefaultIcon, mHomeCarModeIcon; private Drawable mHomeDefaultIcon, mHomeCarModeIcon; private Drawable mRecentIcon; private Drawable mRecentIcon; private Drawable mDockedIcon; private Drawable mDockedIcon; private Drawable mImeIcon; private Drawable mMenuIcon; private NavigationBarGestureHelper mGestureHelper; private NavigationBarGestureHelper mGestureHelper; private DeadZone mDeadZone; private DeadZone mDeadZone; Loading Loading @@ -270,7 +272,8 @@ public class NavigationBarView extends LinearLayout { } } private void updateIcons(Context ctx, Configuration oldConfig, Configuration newConfig) { private void updateIcons(Context ctx, Configuration oldConfig, Configuration newConfig) { if (oldConfig.orientation != newConfig.orientation) { if (oldConfig.orientation != newConfig.orientation || oldConfig.densityDpi != newConfig.densityDpi) { mDockedIcon = ctx.getDrawable(R.drawable.ic_sysbar_docked); mDockedIcon = ctx.getDrawable(R.drawable.ic_sysbar_docked); } } if (oldConfig.densityDpi != newConfig.densityDpi) { if (oldConfig.densityDpi != newConfig.densityDpi) { Loading @@ -280,8 +283,10 @@ public class NavigationBarView extends LinearLayout { mBackAltLandIcon = mBackAltIcon; 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); mRecentIcon = ctx.getDrawable(R.drawable.ic_sysbar_recent); mMenuIcon = ctx.getDrawable(R.drawable.ic_sysbar_menu); mImeIcon = ctx.getDrawable(R.drawable.ic_ime_switcher_default); updateCarModeIcons(ctx); updateCarModeIcons(ctx); } } } } Loading Loading @@ -348,9 +353,11 @@ public class NavigationBarView extends LinearLayout { final boolean showImeButton = ((hints & StatusBarManager.NAVIGATION_HINT_IME_SHOWN) != 0); final boolean showImeButton = ((hints & StatusBarManager.NAVIGATION_HINT_IME_SHOWN) != 0); getImeSwitchButton().setVisibility(showImeButton ? View.VISIBLE : View.INVISIBLE); getImeSwitchButton().setVisibility(showImeButton ? View.VISIBLE : View.INVISIBLE); getImeSwitchButton().setImageDrawable(mImeIcon); // Update menu button in case the IME state has changed. // Update menu button in case the IME state has changed. setMenuVisibility(mShowMenu, true); setMenuVisibility(mShowMenu, true); getMenuButton().setImageDrawable(mMenuIcon); setDisabledFlags(mDisabledFlags, true); setDisabledFlags(mDisabledFlags, true); } } Loading Loading @@ -595,14 +602,12 @@ public class NavigationBarView extends LinearLayout { super.onConfigurationChanged(newConfig); super.onConfigurationChanged(newConfig); boolean uiCarModeChanged = updateCarMode(newConfig); boolean uiCarModeChanged = updateCarMode(newConfig); updateTaskSwitchHelper(); updateTaskSwitchHelper(); if (uiCarModeChanged) { // uiMode changed either from carmode or to carmode. // replace the nav bar button icons based on which mode // we are switching to. setNavigationIconHints(mNavigationIconHints, true); } updateIcons(getContext(), mConfiguration, newConfig); updateIcons(getContext(), mConfiguration, newConfig); updateRecentsIcon(); updateRecentsIcon(); if (uiCarModeChanged || mConfiguration.densityDpi != newConfig.densityDpi) { // If car mode or density changes, we need to reset the icons. setNavigationIconHints(mNavigationIconHints, true); } mConfiguration.updateFrom(newConfig); mConfiguration.updateFrom(newConfig); } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +6 −2 Original line number Original line Diff line number Diff line Loading @@ -3303,10 +3303,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, protected void loadDimens() { protected void loadDimens() { final Resources res = mContext.getResources(); final Resources res = mContext.getResources(); int oldBarHeight = mNaturalBarHeight; mNaturalBarHeight = res.getDimensionPixelSize( mNaturalBarHeight = res.getDimensionPixelSize( com.android.internal.R.dimen.status_bar_height); com.android.internal.R.dimen.status_bar_height); if (mStatusBarWindowManager != null && mNaturalBarHeight != oldBarHeight) { mMaxAllowedKeyguardNotifications = res.getInteger(R.integer.keyguard_max_notification_count); mStatusBarWindowManager.setBarHeight(mNaturalBarHeight); } mMaxAllowedKeyguardNotifications = res.getInteger( R.integer.keyguard_max_notification_count); if (DEBUG) Log.v(TAG, "updateResources"); if (DEBUG) Log.v(TAG, "updateResources"); } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -323,6 +323,11 @@ public class StatusBarWindowManager implements RemoteInputController.Callback { apply(mCurrentState); apply(mCurrentState); } } public void setBarHeight(int barHeight) { mBarHeight = barHeight; apply(mCurrentState); } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("StatusBarWindowManager state:"); pw.println("StatusBarWindowManager state:"); pw.println(mCurrentState); pw.println(mCurrentState); Loading