From b1c1ea5fac3457e099aba824ae30b63207e7c6e8 Mon Sep 17 00:00:00 2001 From: BlackyHawky Date: Mon, 23 Oct 2023 08:55:03 +0200 Subject: [PATCH] Fix white bar on top after Android 12 upgrade by @Helium314 (#238) Co-authored-by: Helium314 --- .../openboard/inputmethod/latin/LatinIME.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java index 297ef6376..5248b25db 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java @@ -12,6 +12,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; import android.content.res.Resources; +import android.graphics.Color; import android.inputmethodservice.InputMethodService; import android.media.AudioManager; import android.os.Build; @@ -56,8 +57,6 @@ import org.dslul.openboard.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import org.dslul.openboard.inputmethod.latin.common.Constants; import org.dslul.openboard.inputmethod.latin.common.CoordinateUtils; import org.dslul.openboard.inputmethod.latin.common.InputPointers; -import org.dslul.openboard.inputmethod.latin.common.StringUtils; -import org.dslul.openboard.inputmethod.latin.common.StringUtilsKt; import org.dslul.openboard.inputmethod.latin.define.DebugFlags; import org.dslul.openboard.inputmethod.latin.define.ProductionFlags; import org.dslul.openboard.inputmethod.latin.inputlogic.InputLogic; @@ -1077,8 +1076,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen @Override public void onWindowShown() { super.onWindowShown(); - if (isInputViewShown()) + if (isInputViewShown()) { setNavigationBarColor(); + workaroundForHuaweiStatusBarIssue(); + } } @Override @@ -2040,4 +2041,16 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen view.setSystemUiVisibility(mOriginalNavBarFlags); } + // On HUAWEI devices with Android 12: a white bar may appear in landscape mode (issue #231) + // We therefore need to make the color of the status bar transparent + private void workaroundForHuaweiStatusBarIssue() { + final Window window = getWindow().getWindow(); + if (window == null) { + return; + } + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.S && Build.MANUFACTURER.equals("HUAWEI")) { + window.setStatusBarColor(Color.TRANSPARENT); + } + } + }