diff --git a/src/com/android/settings/FallbackHome.java b/src/com/android/settings/FallbackHome.java index 5f7b6392369..84a3283b738 100644 --- a/src/com/android/settings/FallbackHome.java +++ b/src/com/android/settings/FallbackHome.java @@ -18,6 +18,8 @@ package com.android.settings; import android.app.Activity; import android.app.ProgressDialog; +import android.app.WallpaperColors; +import android.app.WallpaperManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -68,15 +70,27 @@ public class FallbackHome extends Activity { // we don't flash the wallpaper before SUW mProvisioned = Settings.Global.getInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 0) != 0; + int flags; if (!mProvisioned) { setTheme(R.style.FallbackHome_SetupWizard); - getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN - | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); + flags = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; } else { - getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + flags = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION; } + // Set the system ui flags to light status bar if the wallpaper supports dark text to match + // current system ui color tints. + final WallpaperColors colors = getSystemService(WallpaperManager.class) + .getWallpaperColors(WallpaperManager.FLAG_SYSTEM); + if (colors != null + && (colors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_TEXT) != 0) { + flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR + | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR; + } + getWindow().getDecorView().setSystemUiVisibility(flags); + registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_USER_UNLOCKED)); maybeFinish(); }