mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-06 22:38:37 +08:00
Don't crash if Window permission isn't granted for dev loading view
Reviewed By: AaaChiuuu Differential Revision: D5263844 fbshipit-source-id: bf10375ddc43158ce77e09682605068e28f690ef
This commit is contained in:
committed by
Facebook Github Bot
parent
fa147f02e5
commit
56969d51fa
@@ -9,9 +9,18 @@
|
||||
|
||||
package com.facebook.react.devsupport;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.Locale;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.os.Build;
|
||||
import android.provider.Settings;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.WindowManager;
|
||||
@@ -22,11 +31,7 @@ import com.facebook.react.R;
|
||||
import com.facebook.react.bridge.UiThreadUtil;
|
||||
import com.facebook.react.common.ReactConstants;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.Locale;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import static android.Manifest.permission.SYSTEM_ALERT_WINDOW;
|
||||
|
||||
/**
|
||||
* Controller to display loading messages on top of the screen. All methods are thread safe.
|
||||
@@ -52,7 +57,7 @@ public class DevLoadingViewController {
|
||||
}
|
||||
|
||||
public void showMessage(final String message, final int color, final int backgroundColor) {
|
||||
if (!sEnabled) {
|
||||
if (!sEnabled || !isWindowPermissionGranted()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -148,4 +153,10 @@ public class DevLoadingViewController {
|
||||
}
|
||||
mIsVisible = visible;
|
||||
}
|
||||
|
||||
private boolean isWindowPermissionGranted() {
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
|
||||
(Settings.canDrawOverlays(mContext) ||
|
||||
PackageManager.PERMISSION_GRANTED == mContext.checkSelfPermission(SYSTEM_ALERT_WINDOW));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user