public static void configureStatusBar(Activity activity, int color, boolean isBlackTheme) {
if (Build.VERSION.SDK_INT >= 21 && Build.VERSION.SDK_INT <= 22) {
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
activity.getWindow().setStatusBarColor(color);
return;
}
Window window = activity.getWindow();
View view = window.getDecorView();
int flags = view.getSystemUiVisibility();
if (Build.VERSION.SDK_INT >= 26) {
if (!isBlackTheme) {
flags = flags | 0x10;
} else {
flags = flags & ~0x10;
}
window.setNavigationBarColor(color);
}
// Build.VERSION_CODES.M
if (Build.VERSION.SDK_INT >= 23) {
if (!isBlackTheme) {
flags = flags | 0x2000;
} else {
flags = flags & ~0x2000;
}
window.setStatusBarColor(color);
}
if (Build.VERSION.SDK_INT >= 28) {
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.setNavigationBarColor(color);
}
view.setSystemUiVisibility(flags);
}