package com.kickstarter.libs.utils;
import android.annotation.TargetApi;
import android.support.annotation.ColorInt;
import android.support.annotation.NonNull;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import com.kickstarter.libs.ApiCapabilities;
import com.kickstarter.libs.BaseActivity;
public final class StatusBarUtils {
private StatusBarUtils() {}
@SuppressWarnings("InlinedApi")
@TargetApi(21)
public static void apply(final @NonNull BaseActivity activity, final @ColorInt int color) {
if (!ApiCapabilities.canSetStatusBarColor()) {
return;
}
final Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(color);
}
public static void apply(final @NonNull BaseActivity activity, final @ColorInt int color,
final boolean overlayShouldBeLight) {
apply(activity, color);
setIconOverlay(activity, overlayShouldBeLight);
}
public static void setDarkStatusBarIcons(final @NonNull BaseActivity activity) {
setIconOverlay(activity, true);
}
public static void setLightStatusBarIcons(final @NonNull BaseActivity activity) {
setIconOverlay(activity, false);
}
@SuppressWarnings("InlinedApi")
private static void setIconOverlay(final @NonNull BaseActivity activity, final boolean light) {
if (!ApiCapabilities.canSetDarkStatusBarIcons()) {
return;
}
final int uiFlag = light ?
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR :
View.SYSTEM_UI_FLAG_VISIBLE;
final Window window = activity.getWindow();
window.getDecorView().setSystemUiVisibility(uiFlag);
}
}