Loading src/com/android/launcher3/Launcher.java +19 −19 Original line number Diff line number Diff line Loading @@ -280,7 +280,6 @@ public class Launcher extends Activity private boolean mVisible; private boolean mHasFocus; private boolean mAttached; private boolean mIsLightStatusBar; /** Maps launcher activity components to their list of shortcut ids. */ private MultiHashMap<ComponentKey, String> mDeepShortcutMap = new MultiHashMap<>(); Loading Loading @@ -485,33 +484,34 @@ public class Launcher extends Activity private void loadExtractedColorsAndColorItems() { // TODO: do this in pre-N as well, once the extraction part is complete. if (mExtractedColors != null && Utilities.isNycOrAbove()) { if (Utilities.isNycOrAbove()) { mExtractedColors.load(this); mHotseat.updateColor(mExtractedColors, !mPaused); mWorkspace.getPageIndicator().updateColor(mExtractedColors); setLightStatusBar(shouldBeLightStatusBar()); // It's possible that All Apps is visible when this is run, // so always use light status bar in that case. activateLightStatusBar(isAllAppsVisible()); } } /** Returns whether a light status bar (dark icons) should be used based on the wallpaper. */ public boolean shouldBeLightStatusBar() { return mExtractedColors.getColor(ExtractedColors.STATUS_BAR_INDEX, ExtractedColors.DEFAULT_LIGHT) == ExtractedColors.DEFAULT_LIGHT; } public void setLightStatusBar(boolean lightStatusBar) { // Already set correctly if (mIsLightStatusBar == lightStatusBar) { return; } mIsLightStatusBar = lightStatusBar; int systemUiFlags = getWindow().getDecorView().getSystemUiVisibility(); /** * Sets the status bar to be light or not. Light status bar means dark icons. * @param activate if true, make sure the status bar is light, otherwise base on wallpaper. */ public void activateLightStatusBar(boolean activate) { boolean lightStatusBar = activate || mExtractedColors.getColor(ExtractedColors.STATUS_BAR_INDEX, ExtractedColors.DEFAULT_DARK) == ExtractedColors.DEFAULT_LIGHT; int oldSystemUiFlags = getWindow().getDecorView().getSystemUiVisibility(); int newSystemUiFlags = oldSystemUiFlags; if (lightStatusBar) { systemUiFlags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; newSystemUiFlags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; } else { systemUiFlags &= ~(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); newSystemUiFlags &= ~(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } if (newSystemUiFlags != oldSystemUiFlags) { getWindow().getDecorView().setSystemUiVisibility(newSystemUiFlags); } getWindow().getDecorView().setSystemUiVisibility(systemUiFlags); } private LauncherCallbacks mLauncherCallbacks; Loading src/com/android/launcher3/allapps/AllAppsTransitionController.java +2 −2 Original line number Diff line number Diff line Loading @@ -277,8 +277,8 @@ public class AllAppsTransitionController implements TouchController, VerticalPul } // Use a light status bar (dark icons) if all apps is behind at least half of the status // bar. If the status bar is already light due to wallpaper extraction, keep it that way. boolean enable = shift <= mStatusBarHeight / 2 || mLauncher.shouldBeLightStatusBar(); mLauncher.setLightStatusBar(enable); boolean forceLight = shift <= mStatusBarHeight / 2; mLauncher.activateLightStatusBar(forceLight); } /** Loading Loading
src/com/android/launcher3/Launcher.java +19 −19 Original line number Diff line number Diff line Loading @@ -280,7 +280,6 @@ public class Launcher extends Activity private boolean mVisible; private boolean mHasFocus; private boolean mAttached; private boolean mIsLightStatusBar; /** Maps launcher activity components to their list of shortcut ids. */ private MultiHashMap<ComponentKey, String> mDeepShortcutMap = new MultiHashMap<>(); Loading Loading @@ -485,33 +484,34 @@ public class Launcher extends Activity private void loadExtractedColorsAndColorItems() { // TODO: do this in pre-N as well, once the extraction part is complete. if (mExtractedColors != null && Utilities.isNycOrAbove()) { if (Utilities.isNycOrAbove()) { mExtractedColors.load(this); mHotseat.updateColor(mExtractedColors, !mPaused); mWorkspace.getPageIndicator().updateColor(mExtractedColors); setLightStatusBar(shouldBeLightStatusBar()); // It's possible that All Apps is visible when this is run, // so always use light status bar in that case. activateLightStatusBar(isAllAppsVisible()); } } /** Returns whether a light status bar (dark icons) should be used based on the wallpaper. */ public boolean shouldBeLightStatusBar() { return mExtractedColors.getColor(ExtractedColors.STATUS_BAR_INDEX, ExtractedColors.DEFAULT_LIGHT) == ExtractedColors.DEFAULT_LIGHT; } public void setLightStatusBar(boolean lightStatusBar) { // Already set correctly if (mIsLightStatusBar == lightStatusBar) { return; } mIsLightStatusBar = lightStatusBar; int systemUiFlags = getWindow().getDecorView().getSystemUiVisibility(); /** * Sets the status bar to be light or not. Light status bar means dark icons. * @param activate if true, make sure the status bar is light, otherwise base on wallpaper. */ public void activateLightStatusBar(boolean activate) { boolean lightStatusBar = activate || mExtractedColors.getColor(ExtractedColors.STATUS_BAR_INDEX, ExtractedColors.DEFAULT_DARK) == ExtractedColors.DEFAULT_LIGHT; int oldSystemUiFlags = getWindow().getDecorView().getSystemUiVisibility(); int newSystemUiFlags = oldSystemUiFlags; if (lightStatusBar) { systemUiFlags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; newSystemUiFlags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; } else { systemUiFlags &= ~(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); newSystemUiFlags &= ~(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } if (newSystemUiFlags != oldSystemUiFlags) { getWindow().getDecorView().setSystemUiVisibility(newSystemUiFlags); } getWindow().getDecorView().setSystemUiVisibility(systemUiFlags); } private LauncherCallbacks mLauncherCallbacks; Loading
src/com/android/launcher3/allapps/AllAppsTransitionController.java +2 −2 Original line number Diff line number Diff line Loading @@ -277,8 +277,8 @@ public class AllAppsTransitionController implements TouchController, VerticalPul } // Use a light status bar (dark icons) if all apps is behind at least half of the status // bar. If the status bar is already light due to wallpaper extraction, keep it that way. boolean enable = shift <= mStatusBarHeight / 2 || mLauncher.shouldBeLightStatusBar(); mLauncher.setLightStatusBar(enable); boolean forceLight = shift <= mStatusBarHeight / 2; mLauncher.activateLightStatusBar(forceLight); } /** Loading