Skip to content

Commit c664cc5

Browse files
yummylauyummylau
yummylau
authored and
yummylau
committed
#修复OneUI2系统版本前三星s8/note8等设备导航栏可见性判断错误的问题
1 parent 3befa9b commit c664cc5

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

lib/utilcode/src/main/java/com/blankj/utilcode/util/BarUtils.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77
import android.graphics.Color;
88
import android.graphics.Point;
99
import android.os.Build;
10+
import android.provider.Settings;
1011
import android.support.annotation.ColorInt;
1112
import android.support.annotation.NonNull;
1213
import android.support.annotation.RequiresApi;
1314
import android.support.annotation.RequiresPermission;
1415
import android.support.v4.widget.DrawerLayout;
16+
import android.text.TextUtils;
1517
import android.util.TypedValue;
1618
import android.view.Display;
1719
import android.view.KeyCharacterMap;
@@ -565,9 +567,26 @@ public static boolean isNavBarVisible(@NonNull final Window window) {
565567
}
566568
}
567569
if (isVisible) {
570+
571+
// 对于三星手机,android10以下非OneUI2的版本,比如 s8,note8 等设备上,导航栏显示存在bug:"当用户隐藏导航栏时显示输入法的时候导航栏会跟随显示",会导致隐藏输入法之后判断错误
572+
// 这个问题在 OneUI 2 & android 10 版本已修复
573+
String manufacturer = "";
574+
if (!TextUtils.isEmpty(Build.MANUFACTURER )){
575+
manufacturer = Build.MANUFACTURER.trim();
576+
}
577+
if (manufacturer.toLowerCase().contains("samsung")
578+
&& Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
579+
try {
580+
return Settings.Global.getInt(window.getContext().getContentResolver(), "navigationbar_hide_bar_enabled") == 0;
581+
} catch (Exception e) {
582+
//nothing to do
583+
}
584+
}
585+
568586
int visibility = decorView.getSystemUiVisibility();
569587
isVisible = (visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
570588
}
589+
571590
return isVisible;
572591
}
573592

0 commit comments

Comments
 (0)