|
|
@@ -4,11 +4,13 @@ package com.kfzs.duanduan.utils;
|
|
|
import android.annotation.TargetApi;
|
|
|
import android.app.Activity;
|
|
|
import android.content.Context;
|
|
|
+import android.content.res.Resources;
|
|
|
import android.graphics.Color;
|
|
|
import android.os.Build;
|
|
|
import android.support.annotation.ColorInt;
|
|
|
import android.support.design.widget.CoordinatorLayout;
|
|
|
import android.support.v4.widget.DrawerLayout;
|
|
|
+import android.util.Log;
|
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
|
import android.view.WindowManager;
|
|
|
@@ -16,6 +18,8 @@ import android.widget.LinearLayout;
|
|
|
|
|
|
import com.sheep.jiuyan.samllsheep.R;
|
|
|
|
|
|
+import java.lang.reflect.Method;
|
|
|
+
|
|
|
public class StatusBarUtils {
|
|
|
|
|
|
public static final int DEFAULT_STATUS_BAR_ALPHA = 112;
|
|
|
@@ -601,7 +605,8 @@ public class StatusBarUtils {
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
|
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
|
|
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
|
|
- activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
|
|
|
+ if (!isHaveNavigationBar(activity))
|
|
|
+ activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
|
|
|
activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
|
|
|
} else {
|
|
|
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
|
|
@@ -657,4 +662,27 @@ public class StatusBarUtils {
|
|
|
blue = (int) (blue * a + 0.5);
|
|
|
return 0xff << 24 | red << 16 | green << 8 | blue;
|
|
|
}
|
|
|
+
|
|
|
+ public static boolean isHaveNavigationBar(Activity context) {
|
|
|
+
|
|
|
+ boolean isHave = false;
|
|
|
+ Resources rs = context.getResources();
|
|
|
+ int id = rs.getIdentifier("config_showNavigationBar", "bool", "android");
|
|
|
+ if (id > 0) {
|
|
|
+ isHave = rs.getBoolean(id);
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ Class systemPropertiesClass = Class.forName("android.os.SystemProperties");
|
|
|
+ Method m = systemPropertiesClass.getMethod("get", String.class);
|
|
|
+ String navBarOverride = (String) m.invoke(systemPropertiesClass, "qemu.hw.mainkeys");
|
|
|
+ if ("1".equals(navBarOverride)) {
|
|
|
+ isHave = false;
|
|
|
+ } else if ("0".equals(navBarOverride)) {
|
|
|
+ isHave = true;
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ Log.w("TAG", e);
|
|
|
+ }
|
|
|
+ return isHave;
|
|
|
+ }
|
|
|
}
|