diff --git a/android/build.gradle b/android/build.gradle
index 650c273..190588d 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,94 +1,25 @@
-buildscript {
- // Buildscript is evaluated before everything else so we can't use getExtOrDefault
- def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["DetectDeveloperMode_kotlinVersion"]
-
- repositories {
- google()
- mavenCentral()
- }
-
- dependencies {
- classpath "com.android.tools.build:gradle:7.2.1"
- // noinspection DifferentKotlinGradleVersion
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
-def isNewArchitectureEnabled() {
- return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
-}
-
-apply plugin: "com.android.library"
-apply plugin: "kotlin-android"
-
-if (isNewArchitectureEnabled()) {
- apply plugin: "com.facebook.react"
-}
-
-def getExtOrDefault(name) {
- return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["DetectDeveloperMode_" + name]
+def safeExtGet(prop, fallback) {
+ rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}
-def getExtOrIntegerDefault(name) {
- return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["DetectDeveloperMode_" + name]).toInteger()
-}
-
-def supportsNamespace() {
- def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
- def major = parsed[0].toInteger()
- def minor = parsed[1].toInteger()
-
- // Namespace support was added in 7.3.0
- return (major == 7 && minor >= 3) || major >= 8
-}
+apply plugin: 'com.android.library'
android {
- if (supportsNamespace()) {
- namespace "com.detectdevelopermode"
-
- sourceSets {
- main {
- manifest.srcFile "src/main/AndroidManifestNew.xml"
- }
+ compileSdkVersion safeExtGet('compileSdkVersion', 33)
+ buildToolsVersion safeExtGet('buildToolsVersion', "33.0.0")
+
+ defaultConfig {
+ minSdkVersion safeExtGet('minSdkVersion', 23)
+ targetSdkVersion safeExtGet('targetSdkVersion', 33)
+ versionCode 1
+ versionName "1.0"
}
- }
-
- compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
-
- defaultConfig {
- minSdkVersion getExtOrIntegerDefault("minSdkVersion")
- targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
-
- }
-
- buildTypes {
- release {
- minifyEnabled false
+ lintOptions {
+ warning 'InvalidPackage'
}
- }
-
- lintOptions {
- disable "GradleCompatible"
- }
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-}
-
-repositories {
- mavenCentral()
- google()
}
-def kotlin_version = getExtOrDefault("kotlinVersion")
-
dependencies {
- // For < 0.71, this will be from the local maven repo
- // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
- //noinspection GradleDynamicVersion
- implementation "com.facebook.react:react-native:+"
- implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
+ implementation 'com.facebook.react:react-native:+'
+ implementation 'com.scottyab:rootbeer-lib:0.0.9'
}
-
diff --git a/android/gradle.properties b/android/gradle.properties
deleted file mode 100644
index 8e323fc..0000000
--- a/android/gradle.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-DetectDeveloperMode_kotlinVersion=1.7.0
-DetectDeveloperMode_minSdkVersion=21
-DetectDeveloperMode_targetSdkVersion=31
-DetectDeveloperMode_compileSdkVersion=31
-DetectDeveloperMode_ndkversion=21.4.7075529
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index 0e78919..bde2d1f 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -1,25 +1,3 @@
-
-
-
-
-
-
-
-
-
-
+ package="com.DetectDeveloperMode">
diff --git a/android/src/main/AndroidManifestNew.xml b/android/src/main/AndroidManifestNew.xml
deleted file mode 100644
index a2f47b6..0000000
--- a/android/src/main/AndroidManifestNew.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/android/src/main/java/com/DetectDeveloperMode/DetectDeveloperModeModule.java b/android/src/main/java/com/DetectDeveloperMode/DetectDeveloperModeModule.java
new file mode 100644
index 0000000..7aa9030
--- /dev/null
+++ b/android/src/main/java/com/DetectDeveloperMode/DetectDeveloperModeModule.java
@@ -0,0 +1,48 @@
+package com.DetectDeveloperMode;
+
+import android.content.pm.ApplicationInfo;
+import android.os.AsyncTask;
+import android.os.Build;
+import android.os.Debug;
+import android.provider.Settings;
+
+import com.facebook.react.bridge.Promise;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.bridge.ReactContext;
+import com.facebook.react.bridge.ReactContextBaseJavaModule;
+import com.facebook.react.bridge.ReactMethod;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Nullable;
+
+public class DetectDeveloperModeModule extends ReactContextBaseJavaModule {
+
+ ReactApplicationContext reactContext;
+
+
+ public DetectDeveloperModeModule(ReactApplicationContext reactContext, boolean loadConstantsAsynchronously) {
+ super(reactContext);
+
+ this.reactContext = reactContext;
+
+ }
+
+ @Override
+ public String getName() {
+ return "DetectDeveloperMode";
+ }
+
+
+ @ReactMethod
+ public void isDevelopmentSettingsMode(Promise p) {
+ boolean isDevelopmentSettingsMode;
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
+ isDevelopmentSettingsMode = Settings.System.getInt(this.reactContext.getContentResolver(), Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED, 0) != 1;
+ } else {
+ isDevelopmentSettingsMode = Settings.Global.getInt(this.reactContext.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) == 1;
+ }
+ p.resolve(isDevelopmentSettingsMode);
+ }
+}
diff --git a/android/src/main/java/com/DetectDeveloperMode/DetectDeveloperModePackage.java b/android/src/main/java/com/DetectDeveloperMode/DetectDeveloperModePackage.java
new file mode 100644
index 0000000..76a2357
--- /dev/null
+++ b/android/src/main/java/com/DetectDeveloperMode/DetectDeveloperModePackage.java
@@ -0,0 +1,44 @@
+package com.DetectDeveloperMode;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import com.facebook.react.ReactPackage;
+import com.facebook.react.bridge.JavaScriptModule;
+import com.facebook.react.bridge.NativeModule;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.uimanager.ViewManager;
+
+public class DetectDeveloperModePackage implements ReactPackage {
+
+ private boolean mLoadConstantsAsynchronously;
+
+ public DetectDeveloperModePackage() {
+ this(false);
+ }
+
+ public DetectDeveloperModePackage(boolean loadConstantsAsynchronously) {
+ mLoadConstantsAsynchronously = loadConstantsAsynchronously;
+ }
+
+ @Override
+ public List createNativeModules(ReactApplicationContext reactContext) {
+ List modules = new ArrayList<>();
+ modules.add(new DetectDeveloperModeModule(reactContext, mLoadConstantsAsynchronously));
+ return modules;
+ }
+
+ // Deprecated RN 0.47
+ public List> createJSModules() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public List createViewManagers(
+ ReactApplicationContext reactContext) {
+ return Collections.emptyList();
+ }
+
+}
diff --git a/android/src/main/java/com/detectdevelopermode/DetectDeveloperModeModule.kt b/android/src/main/java/com/detectdevelopermode/DetectDeveloperModeModule.kt
deleted file mode 100644
index 244fbab..0000000
--- a/android/src/main/java/com/detectdevelopermode/DetectDeveloperModeModule.kt
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.detectdevelopermode
-
-import com.facebook.react.bridge.ReactApplicationContext
-import com.facebook.react.bridge.ReactContextBaseJavaModule
-import com.facebook.react.bridge.ReactMethod
-import com.facebook.react.bridge.Promise
-
-class DetectDeveloperModeModule(reactContext: ReactApplicationContext) :
- ReactContextBaseJavaModule(reactContext) {
-
- override fun getName(): String {
- return NAME
- }
-
- // Example method
- // See https://reactnative.dev/docs/native-modules-android
- @ReactMethod
- fun multiply(a: Double, b: Double, promise: Promise) {
- promise.resolve(a * b)
- }
-
- companion object {
- const val NAME = "DetectDeveloperMode"
- }
-}
diff --git a/android/src/main/java/com/detectdevelopermode/DetectDeveloperModePackage.kt b/android/src/main/java/com/detectdevelopermode/DetectDeveloperModePackage.kt
deleted file mode 100644
index dc5ffbd..0000000
--- a/android/src/main/java/com/detectdevelopermode/DetectDeveloperModePackage.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.detectdevelopermode
-
-import android.provider.Settings
-import com.facebook.react.bridge.ReactApplicationContext
-import com.facebook.react.bridge.ReactContextBaseJavaModule
-import com.facebook.react.bridge.ReactMethod
-import com.facebook.react.bridge.Promise
-
-class DetectDeveloperModeModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
-
- override fun getName(): String {
- return "DetectDeveloperModeModule"
- }
-
- @ReactMethod
- fun isDeveloperModeEnabled(promise: Promise) {
- try {
- val developmentSettingsEnabled = Settings.Global.getInt(
- reactApplicationContext.contentResolver,
- Settings.Global.DEVELOPMENT_SETTINGS_ENABLED
- )
- promise.resolve(developmentSettingsEnabled != 0)
- } catch (e: Settings.SettingNotFoundException) {
- promise.reject("SETTING_NOT_FOUND", e)
- }
- }
-}
diff --git a/src/index.js b/src/index.js
index 7095933..b00c5c9 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,20 +1,13 @@
import { NativeModules, Platform } from "react-native";
-const LINKING_ERROR =
- `The package 'react-native-detect-developer-mode' doesn't seem to be linked. Make sure: \n\n` +
- Platform.select({ ios: "- You have run 'pod install'\n", default: "" }) +
- "- You rebuilt the app after installing the package\n" +
- "- You are not using Expo Go\n";
+const { DetectDeveloperMode } = NativeModules;
-const DetectDeveloperMode = NativeModules.DetectDeveloperMode;
+if (DetectDeveloperMode == null) console.warn("DetectDeveloperMode is not available, check your native dependencies have linked correctly and ensure your app has been rebuilt");
-if (!DetectDeveloperMode) {
- throw new Error(LINKING_ERROR);
-}
-
-export function isDeveloperModeEnabled() {
- if (!DetectDeveloperMode.isDeveloperModeEnabled) {
- throw new Error(LINKING_ERROR);
+export default {
+ isDevelopmentSettingsMode: () => {
+ // API only available on Android, return false for all other platforms.
+ if (Platform.OS !== "android") return Promise.resolve(false);
+ return DetectDeveloperMode.isDevelopmentSettingsMode();
}
- return DetectDeveloperMode.isDeveloperModeEnabled();
-}
+};