package com.reactnativenavigation.react; import android.annotation.TargetApi; import android.content.Context; import android.content.Intent; import android.os.Build; import android.provider.Settings; import android.util.Log; import android.widget.Toast; import com.facebook.react.common.ReactConstants; import com.reactnativenavigation.NavigationApplication; public class ReactDevPermission { public static boolean shouldAskPermission() { return NavigationApplication.instance.isDebug() && Build.VERSION.SDK_INT >= 23 && !Settings.canDrawOverlays(NavigationApplication.instance); } @TargetApi(23) public static void askPermission(Context context) { if (shouldAskPermission()) { Intent serviceIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); context.startActivity(serviceIntent); String msg = "Overlay permissions needs to be granted in order for react native apps to run in dev mode"; Log.w(ReactConstants.TAG, "======================================\n\n"); Log.w(ReactConstants.TAG, msg); Log.w(ReactConstants.TAG, "\n\n======================================"); for (int i = 0; i < 5; i++) { Toast.makeText(context, msg, Toast.LENGTH_LONG).show(); } } } }