Index: base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java |
diff --git a/base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java b/base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java |
index 4a2161644b19d8987443c6a1ede3542e7d51000a..b4b1c02364cf86e494bc702290d2f78fac0debdd 100644 |
--- a/base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java |
+++ b/base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java |
@@ -415,7 +415,13 @@ |
*/ |
public static void setStatusBarColor(Window window, int statusBarColor) { |
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { |
- window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); |
+ // If both system bars are black, we can remove these from our layout, |
+ // removing or shrinking the SurfaceFlinger overlay required for our views. |
+ if (statusBarColor == Color.BLACK && window.getNavigationBarColor() == Color.BLACK) { |
+ window.clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); |
+ } else { |
+ window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); |
+ } |
window.setStatusBarColor(statusBarColor); |
} |
} |