diff --git a/.circleci/config.yml b/.circleci/config.yml
index 7593b0b..7cca8c1 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -3,7 +3,7 @@ jobs:
android:
working_directory: ~/capacitor-radar
docker:
- - image: circleci/android:api-28-node
+ - image: cimg/android:2022.04.1-node
steps:
- checkout:
path: ~/capacitor-radar
@@ -17,7 +17,7 @@ jobs:
- run: cd example/android && ./gradlew assembleDebug
ios:
macos:
- xcode: "12.3.0"
+ xcode: 13.1.0
working_directory: ~/capacitor-radar
steps:
- checkout:
@@ -25,7 +25,7 @@ jobs:
- run: npm install
- run: npm run build
- run: sudo npm install -g @ionic/cli
- - run: sudo chown -R 501:20 "/Users/distiller/.npm"
+ - run: sudo chown -R 502:20 "/Users/distiller/.npm"
- run: cd example && npm install
- run: cd example && ionic build
- run: cd example && npx cap sync
diff --git a/.github/workflows/bump-native-sdks.yml b/.github/workflows/bump-native-sdks.yml
new file mode 100644
index 0000000..59e91ab
--- /dev/null
+++ b/.github/workflows/bump-native-sdks.yml
@@ -0,0 +1,105 @@
+# Bump Native SDK version numbers whenever a repository dispatch of a release
+# is received
+name: Bump Native SDKs
+on:
+ repository_dispatch:
+ types: ['ios-sdk-release', 'android-sdk-release']
+jobs:
+ update_android_sdk_version:
+ runs-on: ubuntu-latest
+ if: github.event.client_payload.platform == 'android'
+ steps:
+ - name: Event Information
+ run: echo ${{ github.event.client_payload.release }}
+
+ # checkout the repo
+ - uses: actions/checkout@v2
+
+ # copy the build.gradle template file to its final destination
+ - name: Copy android/build.gradle template file
+ uses: canastro/copy-action@master
+ with:
+ source: 'android/build.gradle.template'
+ target: 'android/build.gradle'
+
+ # render the build.gradle template using the input sdk version
+ - name: Render radar-sdk-android release version onto android/build.gradle
+ uses: jayamanikharyono/jinja-action@v0.1
+ with:
+ data: version=${{ github.event.client_payload.release }}
+ path: 'android/build.gradle'
+
+ # copy the template file to its final destination
+ - name: Copy example/android/app/build.gradle template file
+ uses: canastro/copy-action@master
+ with:
+ source: 'example/android/app/build.gradle.template'
+ target: 'example/android/app/build.gradle'
+
+ # render the template using the input sdk version
+ - name: Render radar-sdk-android release version onto example/android/app/build.gradle
+ uses: jayamanikharyono/jinja-action@v0.1
+ with:
+ data: version=${{ github.event.client_payload.release }}
+ path: 'example/android/app/build.gradle'
+
+ # Update package.json to latest version
+ - name: Update package.json to latest
+ run: npm version ${{ github.event.client_payload.release }} --commit-hooks false --git-tag-version false
+
+ # open a pull request with the new sdk version
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@v3
+ with:
+ title: Automated radar-sdk-android version bump to ${{ github.event.client_payload.release }}
+ reviewers: radarlabs/eng
+ token: ${{ secrets.GITHUB_TOKEN }}
+ update_ios_sdk_version:
+ runs-on: ubuntu-latest
+ if: github.event.client_payload.platform == 'ios'
+ steps:
+ - name: Event Information
+ run: echo ${{ github.event.client_payload.release }}
+
+ # checkout the repo
+ - uses: actions/checkout@v2
+
+ # copy the podfile template to its final destination
+ - name: Copy ios/Cartfile.resolved template
+ uses: canastro/copy-action@master
+ with:
+ source: 'ios/Podfile.template'
+ target: 'ios/Podfile'
+
+ # render the podfile template with the sdk version
+ - name: Render radar-sdk-ios release version onto Cartfile template
+ uses: jayamanikharyono/jinja-action@v0.1
+ with:
+ data: version=${{ github.event.client_payload.release }}
+ path: 'ios/Podfile'
+
+ # copy the podspec template to its final destination
+ - name: Copy the podspec template
+ uses: canastro/copy-action@master
+ with:
+ source: 'CapacitorRadar.podspec.template'
+ target: 'CapacitorRadar.podspec'
+
+ # render the podspec template with the sdk version
+ - name: Render radar-sdk-ios release version onto podspec template
+ uses: jayamanikharyono/jinja-action@v0.1
+ with:
+ data: version=${{ github.event.client_payload.release }}
+ path: 'CapacitorRadar.podspec'
+
+ # Update package.json to latest version
+ - name: Update package.json to latest
+ run: npm version ${{ github.event.client_payload.release }} --commit-hooks false --git-tag-version false
+
+ # open a pull request with the new sdk version
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@v3
+ with:
+ title: Automated radar-sdk-ios version bump to ${{ github.event.client_payload.release }}
+ reviewers: radarlabs/eng
+ token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/radar-release-actions.yml b/.github/workflows/radar-release-actions.yml
index 6d095b9..e354bf8 100644
--- a/.github/workflows/radar-release-actions.yml
+++ b/.github/workflows/radar-release-actions.yml
@@ -1,4 +1,4 @@
-name: Publish Package to npmjs
+name: Publish to npm
on:
release:
types: [ published ]
@@ -7,7 +7,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- # Setup .npmrc file to publish to npm
- uses: actions/setup-node@v2
with:
node-version: '16.x'
@@ -15,4 +14,4 @@ jobs:
- run: npm ci
- run: npm publish
env:
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
\ No newline at end of file
diff --git a/CapacitorRadar.podspec b/CapacitorRadar.podspec
index ac07f80..f1bd7f5 100644
--- a/CapacitorRadar.podspec
+++ b/CapacitorRadar.podspec
@@ -11,6 +11,6 @@
s.source_files = 'ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}'
s.ios.deployment_target = '12.0'
s.dependency 'Capacitor'
- s.dependency 'RadarSDK', '~> 3.3.1'
+ s.dependency 'RadarSDK', '~> 3.4.4'
s.static_framework = true
end
diff --git a/CapacitorRadar.podspec.template b/CapacitorRadar.podspec.template
new file mode 100644
index 0000000..113ea52
--- /dev/null
+++ b/CapacitorRadar.podspec.template
@@ -0,0 +1,16 @@
+
+ Pod::Spec.new do |s|
+ package = JSON.parse(File.read(File.join(File.dirname(__FILE__), 'package.json')))
+ s.name = 'CapacitorRadar'
+ s.version = package['version']
+ s.summary = package['description']
+ s.license = package['license']
+ s.homepage = 'radarlabs/capacitor-radar'
+ s.author = 'Radar Labs, Inc.'
+ s.source = { :git => 'radarlabs/capacitor-radar', :tag => s.version.to_s }
+ s.source_files = 'ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}'
+ s.ios.deployment_target = '12.0'
+ s.dependency 'Capacitor'
+ s.dependency 'RadarSDK', '~> {{ version }}'
+ s.static_framework = true
+ end
diff --git a/README.md b/README.md
index d3733c6..973f463 100644
--- a/README.md
+++ b/README.md
@@ -2,15 +2,15 @@
[![npm](https://img.shields.io/npm/v/capacitor-radar.svg)](https://www.npmjs.com/package/capacitor-radar)
-[Radar](https://radar.io) is the leading geofencing and location tracking platform.
+[Radar](https://radar.com) is the leading geofencing and location tracking platform.
The Radar SDK abstracts away cross-platform differences between location services, allowing you to add geofencing, location tracking, trip tracking, geocoding, and search to your apps with just a few lines of code.
## Documentation
-See the Radar overview documentation [here](https://radar.io/documentation).
+See the Radar overview documentation [here](https://radar.com/documentation).
-Then, see the Radar Capacitor plugin documentation [here](https://radar.io/documentation/sdk/capacitor).
+Then, see the Radar Capacitor plugin documentation [here](https://radar.com/documentation/sdk/capacitor).
## Examples
@@ -18,4 +18,4 @@ See an example app in `example/`.
## Support
-Have questions? We're here to help! Email us at [support@radar.io](mailto:support@radar.io).
+Have questions? We're here to help! Email us at [support@radar.com](mailto:support@radar.com).
diff --git a/android/build.gradle b/android/build.gradle
index 48076e5..6b9b026 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,7 +1,7 @@
buildscript {
repositories {
- mavenCentral()
google()
+ mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.3'
@@ -27,29 +27,18 @@ android {
lintOptions {
abortOnError false
}
- testOptions {
- unitTests.includeAndroidResources = true
- }
}
repositories {
google()
mavenCentral()
- jcenter() //needed for cordova framework
}
-
dependencies {
- implementation 'io.radar:sdk:3.3.3'
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':capacitor-android')
- //Version is defined in capacitor-android's build.gradle
- implementation 'org.apache.cordova:framework:'
-
- testImplementation 'junit:junit:4.13.2'
- testImplementation 'androidx.test:core:1.4.0'
- testImplementation "androidx.test.ext:junit:1.1.3"
- testImplementation 'org.mockito:mockito-core:3.6.28'
- testImplementation 'org.robolectric:robolectric:4.5.1'
- testImplementation 'org.json:json:20210307'
+ testImplementation 'junit:junit:4.12'
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
+ androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+ implementation 'io.radar:sdk:3.4.7'
}
-
diff --git a/android/build.gradle.template b/android/build.gradle.template
new file mode 100644
index 0000000..ff06f41
--- /dev/null
+++ b/android/build.gradle.template
@@ -0,0 +1,44 @@
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:7.0.3'
+ }
+}
+
+apply plugin: 'com.android.library'
+
+android {
+ compileSdkVersion 31
+ defaultConfig {
+ minSdkVersion 21
+ targetSdkVersion 31
+ versionCode 1
+ versionName '1.0'
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+ lintOptions {
+ abortOnError false
+ }
+}
+
+repositories {
+ google()
+ mavenCentral()
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation project(':capacitor-android')
+ testImplementation 'junit:junit:4.12'
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
+ androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+ implementation 'io.radar:sdk:{{ version }}'
+}
diff --git a/android/gradle.properties b/android/gradle.properties
index c7fb972..e78e65c 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -15,5 +15,4 @@ org.gradle.jvmargs=-Xmx1536m
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
-
-android.useAndroidX=true
\ No newline at end of file
+android.useAndroidX=true
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index 8e2d6c2..94c665c 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/android/src/main/java/io/radar/capacitor/RadarPlugin.java b/android/src/main/java/io/radar/capacitor/RadarPlugin.java
index 148211c..3c138b9 100644
--- a/android/src/main/java/io/radar/capacitor/RadarPlugin.java
+++ b/android/src/main/java/io/radar/capacitor/RadarPlugin.java
@@ -2,16 +2,15 @@
import android.Manifest;
import android.content.Context;
+import android.content.IntentFilter;
import android.location.Location;
import android.os.Build;
-import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import com.getcapacitor.JSArray;
import com.getcapacitor.JSObject;
-import com.getcapacitor.PermissionState;
import com.getcapacitor.Plugin;
import com.getcapacitor.PluginCall;
import com.getcapacitor.PluginMethod;
@@ -28,11 +27,11 @@
import java.util.EnumSet;
import java.util.Iterator;
import java.util.List;
-import java.util.Locale;
import io.radar.sdk.Radar;
import io.radar.sdk.RadarReceiver;
import io.radar.sdk.RadarTrackingOptions;
+import io.radar.sdk.RadarTrackingOptions.RadarTrackingOptionsForegroundService;
import io.radar.sdk.RadarTripOptions;
import io.radar.sdk.model.RadarAddress;
import io.radar.sdk.model.RadarContext;
@@ -48,191 +47,166 @@ public class RadarPlugin extends Plugin {
private static final String TAG = "RadarPlugin";
protected static RadarPlugin sPlugin;
- private final RadarPluginReceiver mReceiver = new RadarPluginReceiver();
- public static class RadarPluginReceiver extends RadarReceiver {
- @Override
- public void onEventsReceived(@NonNull Context context, @NonNull RadarEvent[] events, @Nullable RadarUser user) {
- if (sPlugin == null) {
- return;
- }
+ @Override
+ public void load() {
+ sPlugin = this;
- try {
- JSObject ret = new JSObject();
- ret.put("events", RadarPlugin.jsArrayForJSONArray(RadarEvent.toJson(events)));
- if (user != null) {
- ret.put("user", RadarPlugin.jsObjectForJSONObject(user.toJson()));
+ Radar.setReceiver(new RadarReceiver() {
+ @Override
+ public void onEventsReceived(@NonNull Context context, @NonNull RadarEvent[] events, @Nullable RadarUser user) {
+ if (sPlugin == null) {
+ return;
}
- sPlugin.notifyListeners("events", ret);
- } catch (Exception e) {
- Log.e(TAG, "Exception", e);
- }
- }
- @Override
- public void onLocationUpdated(@NonNull Context context, @NonNull Location location, @NonNull RadarUser user) {
- if (sPlugin == null) {
- return;
+ try {
+ JSObject ret = new JSObject();
+ ret.put("events", RadarPlugin.jsArrayForJSONArray(RadarEvent.toJson(events)));
+ if (user != null) {
+ ret.put("user", RadarPlugin.jsObjectForJSONObject(user.toJson()));
+ }
+ sPlugin.notifyListeners("events", ret);
+ } catch (Exception e) {
+ Log.e(TAG, "Exception", e);
+ }
}
- try {
- JSObject ret = new JSObject();
- ret.put("location", RadarPlugin.jsObjectForJSONObject(Radar.jsonForLocation(location)));
- ret.put("user", RadarPlugin.jsObjectForJSONObject(user.toJson()));
- sPlugin.notifyListeners("location", ret);
- } catch (Exception e) {
- Log.e(TAG, "Exception", e);
- }
- }
+ @Override
+ public void onLocationUpdated(@NonNull Context context, @NonNull Location location, @NonNull RadarUser user) {
+ if (sPlugin == null) {
+ return;
+ }
- @Override
- public void onClientLocationUpdated(@NonNull Context context,
- @NonNull Location location,
- boolean stopped,
- @NonNull Radar.RadarLocationSource source) {
- if (sPlugin == null) {
- return;
+ try {
+ JSObject ret = new JSObject();
+ ret.put("location", RadarPlugin.jsObjectForJSONObject(Radar.jsonForLocation(location)));
+ ret.put("user", RadarPlugin.jsObjectForJSONObject(user.toJson()));
+ sPlugin.notifyListeners("location", ret);
+ } catch (Exception e) {
+ Log.e(TAG, "Exception", e);
+ }
}
- try {
- JSObject ret = new JSObject();
- ret.put("location", RadarPlugin.jsObjectForJSONObject(Radar.jsonForLocation(location)));
- ret.put("stopped", stopped);
- ret.put("source", Radar.stringForSource(source));
- sPlugin.notifyListeners("clientLocation", ret);
- } catch (Exception e) {
- Log.e(TAG, "Exception", e);
- }
- }
+ @Override
+ public void onClientLocationUpdated(@NonNull Context context, @NonNull Location location, boolean stopped, @NonNull Radar.RadarLocationSource source) {
+ if (sPlugin == null) {
+ return;
+ }
- @Override
- public void onError(@NonNull Context context,
- @NonNull Radar.RadarStatus status) {
- if (sPlugin == null) {
- return;
+ try {
+ JSObject ret = new JSObject();
+ ret.put("location", RadarPlugin.jsObjectForJSONObject(Radar.jsonForLocation(location)));
+ ret.put("stopped", stopped);
+ ret.put("source", Radar.stringForSource(source));
+ sPlugin.notifyListeners("clientLocation", ret);
+ } catch (Exception e) {
+ Log.e(TAG, "Exception", e);
+ }
}
- try {
- JSObject ret = new JSObject();
- ret.put("status", status.toString());
- sPlugin.notifyListeners("error", ret);
- } catch (Exception e) {
- Log.e(TAG, "Exception", e);
- }
- }
+ @Override
+ public void onError(@NonNull Context context, @NonNull Radar.RadarStatus status) {
+ if (sPlugin == null) {
+ return;
+ }
- @Override
- public void onLog(@NonNull Context context, @NonNull String message) {
- if (sPlugin == null) {
- return;
+ try {
+ JSObject ret = new JSObject();
+ ret.put("status", status.toString());
+ sPlugin.notifyListeners("error", ret);
+ } catch (Exception e) {
+ Log.e(TAG, "Exception", e);
+ }
}
- try {
- JSObject ret = new JSObject();
- ret.put("message", message);
- sPlugin.notifyListeners("log", ret);
- } catch (Exception e) {
- Log.e(TAG, "Exception", e);
- }
- }
- }
+ @Override
+ public void onLog(@NonNull Context context, @NonNull String message) {
+ if (sPlugin == null) {
+ return;
+ }
- @Override
- public void load() {
- sPlugin = this;
- String publishableKey = getContext().getString(R.string.radar_publishableKey);
- if (publishableKey == null || TextUtils.isEmpty(publishableKey)) {
- boolean ignoreWarning = getContext().getResources().getBoolean(R.bool.ignore_radar_initialize_warning);
- if (!ignoreWarning) {
- Log.w(TAG, "Radar could not initialize. Did you set string 'radar_publishableKey' in strings.xml?");
+ try {
+ JSObject ret = new JSObject();
+ ret.put("message", message);
+ sPlugin.notifyListeners("log", ret);
+ } catch (Exception e) {
+ Log.e(TAG, "Exception", e);
+ }
}
- } else {
- Radar.initialize(getContext(), publishableKey, mReceiver);
- }
+ });
}
- @PluginMethod
+ @PluginMethod()
public void initialize(PluginCall call) {
String publishableKey = call.getString("publishableKey");
- Radar.initialize(this.getContext(), publishableKey, mReceiver);
+ Radar.initialize(this.getContext(), publishableKey);
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void setUserId(PluginCall call) {
String userId = call.getString("userId");
Radar.setUserId(userId);
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void setDescription(PluginCall call) {
String description = call.getString("description");
Radar.setDescription(description);
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void setMetadata(PluginCall call) {
JSObject metadata = call.getObject("metadata");
Radar.setMetadata(RadarPlugin.jsonObjectForJSObject(metadata));
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void getLocationPermissionsStatus(PluginCall call) {
- boolean foreground = false;
- String locationAuthorization = "NOT_DETERMINED";
- PermissionState gpsPermissionState = getPermissionState(Manifest.permission.ACCESS_FINE_LOCATION);
- PermissionState wifiPermissionState = getPermissionState(Manifest.permission.ACCESS_COARSE_LOCATION);
- if (PermissionState.GRANTED == gpsPermissionState || PermissionState.GRANTED == wifiPermissionState) {
- locationAuthorization = "GRANTED_FOREGROUND";
- foreground = true;
- } else if (PermissionState.DENIED == gpsPermissionState
- || PermissionState.DENIED == wifiPermissionState
- || PermissionState.PROMPT_WITH_RATIONALE == gpsPermissionState
- || PermissionState.PROMPT_WITH_RATIONALE == wifiPermissionState) {
- locationAuthorization = "DENIED";
- }
+ boolean foreground = hasPermission(Manifest.permission.ACCESS_FINE_LOCATION);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+ String status;
+ if (Build.VERSION.SDK_INT >= 29) {
if (foreground) {
- PermissionState backgroundState = getPermissionState(Manifest.permission.ACCESS_BACKGROUND_LOCATION);
- if (PermissionState.GRANTED == backgroundState) {
- locationAuthorization = "GRANTED_BACKGROUND";
- }
+ boolean background = hasPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION);
+ status = background ? "GRANTED_BACKGROUND" : "GRANTED_FOREGROUND";
+ } else {
+ status = "DENIED";
}
+ } else {
+ status = foreground ? "GRANTED_FOREGROUND" : "DENIED";
}
JSObject ret = new JSObject();
- ret.put("status", locationAuthorization);
+ ret.put("status", status);
call.resolve(ret);
}
- @PluginMethod
+ @PluginMethod()
public void requestLocationPermissions(PluginCall call) {
+ boolean foreground = hasPermission(Manifest.permission.ACCESS_FINE_LOCATION);
+
if (!call.hasOption("background")) {
call.reject("background is required");
+
return;
}
- //noinspection ConstantConditions
boolean background = call.getBoolean("background", false);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ if (Build.VERSION.SDK_INT >= 23) {
int requestCode = 0;
- if (background && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
- pluginRequestPermissions(new String[]{
- Manifest.permission.ACCESS_FINE_LOCATION,
- Manifest.permission.ACCESS_BACKGROUND_LOCATION
- }, requestCode);
+ if (foreground && background && Build.VERSION.SDK_INT >= 29) {
+ pluginRequestPermissions(new String[] { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_BACKGROUND_LOCATION }, requestCode);
} else {
- pluginRequestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, requestCode);
+ pluginRequestPermissions(new String[] { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION }, requestCode);
}
}
call.resolve();
}
-
- @PluginMethod
+ @PluginMethod()
public void getLocation(final PluginCall call) throws JSONException {
Radar.getLocation(new Radar.RadarLocationCallback() {
@Override
@@ -250,14 +224,11 @@ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable Location loc
});
}
- @PluginMethod
+ @PluginMethod()
public void trackOnce(final PluginCall call) {
Radar.RadarTrackCallback callback = new Radar.RadarTrackCallback() {
@Override
- public void onComplete(@NotNull Radar.RadarStatus status,
- @Nullable Location location,
- @Nullable RadarEvent[] events,
- @Nullable RadarUser user) {
+ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable Location location, @Nullable RadarEvent[] events, @Nullable RadarUser user) {
if (status == Radar.RadarStatus.SUCCESS && location != null && events != null && user != null) {
JSObject ret = new JSObject();
ret.put("status", status.toString());
@@ -272,67 +243,52 @@ public void onComplete(@NotNull Radar.RadarStatus status,
};
if (call.hasOption("latitude") && call.hasOption("longitude") && call.hasOption("accuracy")) {
- Double latitude = call.getDouble("latitude");
- Double longitude = call.getDouble("longitude");
- Double accuracy = call.getDouble("accuracy");
- if (latitude != null && longitude != null && accuracy != null) {
- Location location = new Location("RadarSDK");
- location.setLatitude(latitude);
- location.setLongitude(longitude);
- location.setAccuracy(accuracy.floatValue());
-
- Radar.trackOnce(location, callback);
- } else {
- Radar.trackOnce(callback);
- }
+ double latitude = call.getDouble("latitude");
+ double longitude = call.getDouble("longitude");
+ float accuracy = call.getDouble("accuracy").floatValue();
+ Location location = new Location("RadarSDK");
+ location.setLatitude(latitude);
+ location.setLongitude(longitude);
+ location.setAccuracy(accuracy);
+
+ Radar.trackOnce(location, callback);
} else {
Radar.trackOnce(callback);
}
}
- @PluginMethod
+ @PluginMethod()
public void startTrackingEfficient(PluginCall call) {
Radar.startTracking(RadarTrackingOptions.EFFICIENT);
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void startTrackingResponsive(PluginCall call) {
Radar.startTracking(RadarTrackingOptions.RESPONSIVE);
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void startTrackingContinuous(PluginCall call) {
Radar.startTracking(RadarTrackingOptions.CONTINUOUS);
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void startTrackingCustom(PluginCall call) {
JSObject trackingOptionsObj = call.getObject("options");
JSONObject trackingOptionsJson = RadarPlugin.jsonObjectForJSObject(trackingOptionsObj);
- if (trackingOptionsJson != null) {
- RadarTrackingOptions trackingOptions = RadarTrackingOptions.fromJson(trackingOptionsJson);
- Radar.startTracking(trackingOptions);
- call.resolve();
- } else {
- call.reject("options is required");
- }
+ RadarTrackingOptions trackingOptions = RadarTrackingOptions.fromJson(trackingOptionsJson);
+ Radar.startTracking(trackingOptions);
+ call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void mockTracking(final PluginCall call) throws JSONException {
if (!call.hasOption("origin")) {
call.reject("origin is required");
- return;
- }
- if (!call.hasOption("destination")) {
- call.reject("destination is required");
- return;
- }
- if (!call.hasOption("mode")) {
- call.reject("mode is required");
+
return;
}
JSObject originObj = call.getObject("origin");
@@ -343,6 +299,11 @@ public void mockTracking(final PluginCall call) throws JSONException {
origin.setLongitude(originLongitude);
origin.setAccuracy(5);
+ if (!call.hasOption("destination")) {
+ call.reject("destination is required");
+
+ return;
+ }
JSObject destinationObj = call.getObject("destination");
double destinationLatitude = destinationObj.getDouble("latitude");
double destinationLongitude = destinationObj.getDouble("longitude");
@@ -351,44 +312,50 @@ public void mockTracking(final PluginCall call) throws JSONException {
destination.setLongitude(destinationLongitude);
destination.setAccuracy(5);
+ if (!call.hasOption("mode")) {
+ call.reject("mode is required");
+
+ return;
+ }
String modeStr = call.getString("mode");
Radar.RadarRouteMode mode = Radar.RadarRouteMode.CAR;
- if (modeStr != null) {
- switch (modeStr) {
- case "FOOT":
- case "foot":
- mode = Radar.RadarRouteMode.FOOT;
- break;
- case "BIKE":
- case "bike":
- mode = Radar.RadarRouteMode.BIKE;
- break;
- case "CAR":
- case "car":
- mode = Radar.RadarRouteMode.CAR;
- break;
- default:
- Log.e(TAG, "No mode for string " + modeStr);
- break;
- }
+ if (modeStr.equals("FOOT") || modeStr.equals("foot")) {
+ mode = Radar.RadarRouteMode.FOOT;
+ } else if (modeStr.equals("BIKE") || modeStr.equals("bike")) {
+ mode = Radar.RadarRouteMode.BIKE;
+ } else if (modeStr.equals("CAR") || modeStr.equals("car")) {
+ mode = Radar.RadarRouteMode.CAR;
}
- //noinspection ConstantConditions
int steps = call.getInt("steps", 10);
- //noinspection ConstantConditions
int interval = call.getInt("interval", 1);
- Radar.mockTracking(origin, destination, mode, steps, interval, (Radar.RadarTrackCallback) null);
+ Radar.mockTracking(origin, destination, mode, steps, interval, new Radar.RadarTrackCallback() {
+ @Override
+ public void onComplete(@NotNull Radar.RadarStatus radarStatus, @Nullable Location location, @Nullable RadarEvent[] radarEvents, @Nullable RadarUser radarUser) {
+
+ }
+ });
+
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void stopTracking(PluginCall call) {
Radar.stopTracking();
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
+ public void setForegroundServiceOptions(PluginCall call) {
+ JSObject optionsObj = call.getObject("options");
+ JSONObject optionsJson = RadarPlugin.jsonObjectForJSObject(optionsObj);
+ RadarTrackingOptionsForegroundService options = RadarTrackingOptionsForegroundService.fromJson(optionsJson);
+ Radar.setForegroundServiceOptions(options);
+ call.resolve();
+ }
+
+ @PluginMethod()
public void startTrip(PluginCall call) {
JSObject optionsObj = call.getObject("options");
JSONObject optionsJson = RadarPlugin.jsonObjectForJSObject(optionsObj);
@@ -399,16 +366,16 @@ public void startTrip(PluginCall call) {
RadarTripOptions options = RadarTripOptions.fromJson(optionsJson);
Radar.startTrip(options, new Radar.RadarTripCallback() {
@Override
- public void onComplete(@NonNull Radar.RadarStatus radarStatus,
- @Nullable RadarTrip radarTrip,
- @Nullable RadarEvent[] radarEvents) {
+ public void onComplete(@NonNull Radar.RadarStatus status,
+ @Nullable RadarTrip trip,
+ @Nullable RadarEvent[] events) {
JSObject ret = new JSObject();
- ret.put("status", radarStatus.toString());
- if (radarTrip != null) {
- ret.put("trip", RadarPlugin.jsObjectForJSONObject(radarTrip.toJson()));
+ ret.put("status", status.toString());
+ if (trip != null) {
+ ret.put("trip", RadarPlugin.jsObjectForJSONObject(trip.toJson()));
}
- if (radarEvents != null) {
- ret.put("events", RadarPlugin.jsArrayForArray(radarEvents));
+ if (events != null) {
+ ret.put("events", RadarPlugin.jsArrayForArray(events));
}
call.resolve(ret);
}
@@ -416,119 +383,108 @@ public void onComplete(@NonNull Radar.RadarStatus radarStatus,
}
@PluginMethod
- public void completeTrip(PluginCall call) {
- Radar.completeTrip(new Radar.RadarTripCallback() {
+ public void updateTrip(PluginCall call) {
+ JSObject optionsObj = call.getObject("options");
+ JSONObject optionsJson = RadarPlugin.jsonObjectForJSObject(optionsObj);
+ if (optionsJson == null) {
+ call.reject("options is required");
+ return;
+ }
+ RadarTripOptions options = RadarTripOptions.fromJson(optionsJson);
+ RadarTrip.RadarTripStatus status = RadarTrip.RadarTripStatus.UNKNOWN;
+ if (call.hasOption("status")) {
+ String statusStr = call.getString("status");
+ if (statusStr.equals("STARTED") || statusStr.equals("started")) {
+ status = RadarTrip.RadarTripStatus.STARTED;
+ } else if (statusStr.equals("APPROACHING") || statusStr.equals("approaching")) {
+ status = RadarTrip.RadarTripStatus.APPROACHING;
+ } else if (statusStr.equals("ARRIVED") || statusStr.equals("arrived")) {
+ status = RadarTrip.RadarTripStatus.ARRIVED;
+ } else if (statusStr.equals("COMPLETED") || statusStr.equals("completed")) {
+ status = RadarTrip.RadarTripStatus.COMPLETED;
+ } else if (statusStr.equals("CANCELED") || statusStr.equals("canceled")) {
+ status = RadarTrip.RadarTripStatus.CANCELED;
+ }
+ }
+
+ Radar.updateTrip(options, status, new Radar.RadarTripCallback() {
@Override
- public void onComplete(@NonNull Radar.RadarStatus radarStatus,
- @Nullable RadarTrip radarTrip,
- @Nullable RadarEvent[] radarEvents) {
+ public void onComplete(@NonNull Radar.RadarStatus status,
+ @Nullable RadarTrip trip,
+ @Nullable RadarEvent[] events) {
JSObject ret = new JSObject();
- ret.put("status", radarStatus.toString());
- if (radarTrip != null) {
- ret.put("trip", RadarPlugin.jsObjectForJSONObject(radarTrip.toJson()));
+ ret.put("status", status.toString());
+ if (trip != null) {
+ ret.put("trip", RadarPlugin.jsObjectForJSONObject(trip.toJson()));
}
- if (radarEvents != null) {
- ret.put("events", RadarPlugin.jsArrayForArray(radarEvents));
+ if (events != null) {
+ ret.put("events", RadarPlugin.jsArrayForArray(events));
}
call.resolve(ret);
}
});
}
- @PluginMethod
- public void cancelTrip(PluginCall call) {
- Radar.cancelTrip(new Radar.RadarTripCallback() {
+ @PluginMethod()
+ public void completeTrip(PluginCall call) {
+ Radar.completeTrip(new Radar.RadarTripCallback() {
@Override
- public void onComplete(@NonNull Radar.RadarStatus radarStatus,
- @Nullable RadarTrip radarTrip,
- @Nullable RadarEvent[] radarEvents) {
+ public void onComplete(@NonNull Radar.RadarStatus status,
+ @Nullable RadarTrip trip,
+ @Nullable RadarEvent[] events) {
JSObject ret = new JSObject();
- ret.put("status", radarStatus.toString());
- if (radarTrip != null) {
- ret.put("trip", RadarPlugin.jsObjectForJSONObject(radarTrip.toJson()));
+ ret.put("status", status.toString());
+ if (trip != null) {
+ ret.put("trip", RadarPlugin.jsObjectForJSONObject(trip.toJson()));
}
- if (radarEvents != null) {
- ret.put("events", RadarPlugin.jsArrayForArray(radarEvents));
+ if (events != null) {
+ ret.put("events", RadarPlugin.jsArrayForArray(events));
}
call.resolve(ret);
}
});
}
- @PluginMethod
- public void updateTrip(PluginCall call) {
- JSObject optionsObj = call.getObject("options");
- JSONObject optionsJson = RadarPlugin.jsonObjectForJSObject(optionsObj);
- if (optionsJson == null) {
- call.reject("options is required");
- return;
- }
- RadarTripOptions options = RadarTripOptions.fromJson(optionsJson);
- RadarTrip.RadarTripStatus status = null;
- if (call.hasOption("status")) {
- String statusStr = call.getString("status");
- if (statusStr != null) {
- for (RadarTrip.RadarTripStatus tripStatus : RadarTrip.RadarTripStatus.values()) {
- if (tripStatus.name().equalsIgnoreCase(statusStr)) {
- status = tripStatus;
- break;
- }
- }
- if (status == null) {
- call.reject(Radar.RadarStatus.ERROR_BAD_REQUEST.toString());
- return;
- }
- }
- }
- status = status == null ? RadarTrip.RadarTripStatus.UNKNOWN : status;
- Radar.updateTrip(options, status, new Radar.RadarTripCallback() {
+ @PluginMethod()
+ public void cancelTrip(PluginCall call) {
+ Radar.cancelTrip(new Radar.RadarTripCallback() {
@Override
- public void onComplete(@NonNull Radar.RadarStatus radarStatus,
- @Nullable RadarTrip radarTrip,
- @Nullable RadarEvent[] radarEvents) {
+ public void onComplete(@NonNull Radar.RadarStatus status,
+ @Nullable RadarTrip trip,
+ @Nullable RadarEvent[] events) {
JSObject ret = new JSObject();
- ret.put("status", radarStatus.name());
- if (radarTrip != null) {
- ret.put("trip", RadarPlugin.jsObjectForJSONObject(radarTrip.toJson()));
+ ret.put("status", status.toString());
+ if (trip != null) {
+ ret.put("trip", RadarPlugin.jsObjectForJSONObject(trip.toJson()));
}
- if (radarEvents != null) {
- ret.put("events", RadarPlugin.jsArrayForArray(radarEvents));
+ if (events != null) {
+ ret.put("events", RadarPlugin.jsArrayForArray(events));
}
call.resolve(ret);
}
});
}
- @PluginMethod
+ @PluginMethod()
public void acceptEvent(PluginCall call) {
String eventId = call.getString("eventId");
String verifiedPlaceId = call.getString("verifiedPlaceId");
- if (eventId == null) {
- call.reject("eventId is required");
- return;
- }
Radar.acceptEvent(eventId, verifiedPlaceId);
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void rejectEvent(PluginCall call) {
String eventId = call.getString("eventId");
- if (eventId == null) {
- call.reject("eventId is required");
- return;
- }
Radar.rejectEvent(eventId);
call.resolve();
}
- @PluginMethod
+ @PluginMethod()
public void getContext(final PluginCall call) {
Radar.RadarContextCallback callback = new Radar.RadarContextCallback() {
@Override
- public void onComplete(@NotNull Radar.RadarStatus status,
- @Nullable Location location,
- @Nullable RadarContext context) {
+ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable Location location, @Nullable RadarContext context) {
if (status == Radar.RadarStatus.SUCCESS && location != null && context != null) {
JSObject ret = new JSObject();
ret.put("status", status.toString());
@@ -542,30 +498,24 @@ public void onComplete(@NotNull Radar.RadarStatus status,
};
if (call.hasOption("latitude") && call.hasOption("longitude")) {
- Double latitude = call.getDouble("latitude");
- Double longitude = call.getDouble("longitude");
- if (latitude == null || longitude == null) {
- Radar.getContext(callback);
- } else {
- Location location = new Location("RadarSDK");
- location.setLatitude(latitude);
- location.setLongitude(longitude);
- location.setAccuracy(5);
-
- Radar.getContext(location, callback);
- }
+ double latitude = call.getDouble("latitude");
+ double longitude = call.getDouble("longitude");
+ Location location = new Location("RadarSDK");
+ location.setLatitude(latitude);
+ location.setLongitude(longitude);
+ location.setAccuracy(5);
+
+ Radar.getContext(location, callback);
} else {
Radar.getContext(callback);
}
}
- @PluginMethod
+ @PluginMethod()
public void searchPlaces(final PluginCall call) throws JSONException {
Radar.RadarSearchPlacesCallback callback = new Radar.RadarSearchPlacesCallback() {
@Override
- public void onComplete(@NotNull Radar.RadarStatus status,
- @Nullable Location location,
- @Nullable RadarPlace[] places) {
+ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable Location location, @Nullable RadarPlace[] places) {
if (status == Radar.RadarStatus.SUCCESS && location != null && places != null) {
JSObject ret = new JSObject();
ret.put("status", status.toString());
@@ -578,12 +528,10 @@ public void onComplete(@NotNull Radar.RadarStatus status,
}
};
- //noinspection ConstantConditions
int radius = call.getInt("radius", 1000);
String[] chains = RadarPlugin.stringArrayForJSArray(call.getArray("chains"));
String[] categories = RadarPlugin.stringArrayForJSArray(call.getArray("categories"));
String[] groups = RadarPlugin.stringArrayForJSArray(call.getArray("groups"));
- //noinspection ConstantConditions
int limit = call.getInt("limit", 10);
if (call.hasOption("near")) {
@@ -601,7 +549,7 @@ public void onComplete(@NotNull Radar.RadarStatus status,
}
}
- @PluginMethod
+ @PluginMethod()
public void searchGeofences(final PluginCall call) throws JSONException {
Radar.RadarSearchGeofencesCallback callback = new Radar.RadarSearchGeofencesCallback() {
@Override
@@ -618,10 +566,8 @@ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable Location loc
}
};
- //noinspection ConstantConditions
int radius = call.getInt("radius", 1000);
String[] tags = RadarPlugin.stringArrayForJSArray(call.getArray("tags"));
- //noinspection ConstantConditions
int limit = call.getInt("limit", 10);
if (call.hasOption("near")) {
@@ -639,20 +585,18 @@ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable Location loc
}
}
- @PluginMethod
+ @PluginMethod()
public void autocomplete(final PluginCall call) throws JSONException {
if (!call.hasOption("query")) {
call.reject("query is required");
+
return;
}
String query = call.getString("query");
- if (query == null) {
- call.reject("query is required");
- return;
- }
if (!call.hasOption("near")) {
call.reject("near is required");
+
return;
}
JSObject nearObj = call.getObject("near");
@@ -663,7 +607,6 @@ public void autocomplete(final PluginCall call) throws JSONException {
near.setLongitude(longitude);
near.setAccuracy(5);
- //noinspection ConstantConditions
int limit = call.getInt("limit", 10);
Radar.autocomplete(query, near, limit, new Radar.RadarGeocodeCallback() {
@@ -681,17 +624,14 @@ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable RadarAddress
});
}
- @PluginMethod
+ @PluginMethod()
public void geocode(final PluginCall call) throws JSONException {
if (!call.hasOption("query")) {
call.reject("query is required");
+
return;
}
String query = call.getString("query");
- if (query == null) {
- call.reject("query is required");
- return;
- }
Radar.geocode(query, new Radar.RadarGeocodeCallback() {
@Override
@@ -708,7 +648,7 @@ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable RadarAddress
});
}
- @PluginMethod
+ @PluginMethod()
public void reverseGeocode(final PluginCall call) throws JSONException {
Radar.RadarGeocodeCallback callback = new Radar.RadarGeocodeCallback() {
@Override
@@ -725,24 +665,20 @@ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable RadarAddress
};
if (call.hasOption("latitude") && call.hasOption("longitude")) {
- Double latitude = call.getDouble("latitude");
- Double longitude = call.getDouble("longitude");
- if (latitude == null || longitude == null) {
- Radar.reverseGeocode(callback);
- } else {
- Location location = new Location("RadarSDK");
- location.setLatitude(latitude);
- location.setLongitude(longitude);
- location.setAccuracy(5);
-
- Radar.reverseGeocode(location, callback);
- }
+ double latitude = call.getDouble("latitude");
+ double longitude = call.getDouble("longitude");
+ Location location = new Location("RadarSDK");
+ location.setLatitude(latitude);
+ location.setLongitude(longitude);
+ location.setAccuracy(5);
+
+ Radar.reverseGeocode(location, callback);
} else {
Radar.reverseGeocode(callback);
}
}
- @PluginMethod
+ @PluginMethod()
public void ipGeocode(final PluginCall call) throws JSONException {
Radar.ipGeocode(new Radar.RadarIpGeocodeCallback() {
@Override
@@ -760,20 +696,8 @@ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable RadarAddress
});
}
- @PluginMethod
+ @PluginMethod()
public void getDistance(final PluginCall call) throws JSONException {
- if (!call.hasOption("destination")) {
- call.reject("destination is required");
- return;
- }
- if (!call.hasOption("modes")) {
- call.reject("modes is required");
- return;
- }
- if (!call.hasOption("units")) {
- call.reject("units is required");
- return;
- }
Radar.RadarRouteCallback callback = new Radar.RadarRouteCallback() {
@Override
public void onComplete(@NotNull Radar.RadarStatus status, @Nullable RadarRoutes routes) {
@@ -787,6 +711,12 @@ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable RadarRoutes
}
}
};
+
+ if (!call.hasOption("destination")) {
+ call.reject("destination is required");
+
+ return;
+ }
JSObject destinationObj = call.getObject("destination");
double destinationLatitude = destinationObj.getDouble("latitude");
double destinationLongitude = destinationObj.getDouble("longitude");
@@ -795,29 +725,30 @@ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable RadarRoutes
destination.setLongitude(destinationLongitude);
destination.setAccuracy(5);
+ if (!call.hasOption("modes")) {
+ call.reject("modes is required");
+
+ return;
+ }
EnumSet modes = EnumSet.noneOf(Radar.RadarRouteMode.class);
- List modesList = new ArrayList<>(call.getArray("modes").toList());
- for (Radar.RadarRouteMode mode : Radar.RadarRouteMode.values()) {
- int index = modesList.indexOf(mode.name());
- if (index >= 0) {
- modes.add(mode);
- modesList.remove(index);
- } else {
- index = modesList.indexOf(mode.name().toLowerCase(Locale.ROOT));
- if (index >= 0) {
- modes.add(mode);
- modesList.remove(index);
- }
- }
+ List modesList = call.getArray("modes").toList();
+ if (modesList.contains("FOOT") || modesList.contains("foot")) {
+ modes.add(Radar.RadarRouteMode.FOOT);
+ }
+ if (modesList.contains("BIKE") || modesList.contains("bike")) {
+ modes.add(Radar.RadarRouteMode.BIKE);
+ }
+ if (modesList.contains("CAR") || modesList.contains("car")) {
+ modes.add(Radar.RadarRouteMode.CAR);
}
- String unitsStr = call.getString("units");
- if (unitsStr == null) {
+ if (!call.hasOption("units")) {
call.reject("units is required");
+
return;
}
- Radar.RadarRouteUnits units = unitsStr.equalsIgnoreCase("METRIC")
- ? Radar.RadarRouteUnits.METRIC : Radar.RadarRouteUnits.IMPERIAL;
+ String unitsStr = call.getString("units");
+ Radar.RadarRouteUnits units = unitsStr.equals("METRIC") || unitsStr.equals("metric") ? Radar.RadarRouteUnits.METRIC : Radar.RadarRouteUnits.IMPERIAL;
if (call.hasOption("origin")) {
JSObject originObj = call.getObject("origin");
@@ -834,45 +765,6 @@ public void onComplete(@NotNull Radar.RadarStatus status, @Nullable RadarRoutes
}
}
- @PluginMethod
- public void setLogLevel(final PluginCall call) {
- if (!call.hasOption("level")) {
- call.reject("level is required");
- return;
- }
- String levelStr = call.getString("level");
- Radar.RadarLogLevel level = Radar.RadarLogLevel.INFO;
- if (levelStr != null) {
- switch (levelStr) {
- case "NONE":
- case "none":
- level = Radar.RadarLogLevel.NONE;
- break;
- case "ERROR":
- case "error":
- level = Radar.RadarLogLevel.ERROR;
- break;
- case "WARNING":
- case "warning":
- level = Radar.RadarLogLevel.WARNING;
- break;
- case "INFO":
- case "info":
- level = Radar.RadarLogLevel.INFO;
- break;
- case "DEBUG":
- case "debug":
- level = Radar.RadarLogLevel.DEBUG;
- break;
- default:
- Log.e(TAG, "No level for string " + levelStr);
- break;
- }
- }
- Radar.setLogLevel(level);
- call.resolve();
- }
-
private static JSObject jsObjectForJSONObject(JSONObject jsonObj) {
try {
if (jsonObj == null) {
@@ -903,8 +795,9 @@ private static JSONObject jsonObjectForJSObject(JSObject jsObj) {
Iterator keys = jsObj.keys();
while (keys.hasNext()) {
String key = keys.next();
- jsObj.get(key);
- obj.put(key, jsObj.get(key));
+ if (jsObj.get(key) != null) {
+ obj.put(key, jsObj.get(key));
+ }
}
return obj;
} catch (JSONException j) {
@@ -912,10 +805,6 @@ private static JSONObject jsonObjectForJSObject(JSObject jsObj) {
}
}
- private static JSArray jsArrayForArray(Object[] array) {
- return jsArrayForJSONArray(new JSONArray(Arrays.asList(array)));
- }
-
private static JSArray jsArrayForJSONArray(JSONArray jsonArr) {
try {
if (jsonArr == null) {
@@ -932,6 +821,10 @@ private static JSArray jsArrayForJSONArray(JSONArray jsonArr) {
}
}
+ private static JSArray jsArrayForArray(Object[] array) {
+ return jsArrayForJSONArray(new JSONArray(Arrays.asList(array)));
+ }
+
private static String[] stringArrayForJSArray(JSArray jsArr) {
try {
if (jsArr == null) {
diff --git a/android/src/main/res/values/bools.xml b/android/src/main/res/values/bools.xml
deleted file mode 100644
index 578af5a..0000000
--- a/android/src/main/res/values/bools.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
- false
-
\ No newline at end of file
diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml
index 92b757b..6789e13 100644
--- a/android/src/main/res/values/strings.xml
+++ b/android/src/main/res/values/strings.xml
@@ -1,3 +1,3 @@
-
+ Just a simple string
diff --git a/android/src/test/java/com/getcapacitor/ExampleUnitTest.java b/android/src/test/java/com/getcapacitor/ExampleUnitTest.java
new file mode 100644
index 0000000..06806a7
--- /dev/null
+++ b/android/src/test/java/com/getcapacitor/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.getcapacitor;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() throws Exception {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/android/src/test/java/io/radar/capacitor/PermissionsTest.java b/android/src/test/java/io/radar/capacitor/PermissionsTest.java
deleted file mode 100644
index 7df5c65..0000000
--- a/android/src/test/java/io/radar/capacitor/PermissionsTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package io.radar.capacitor;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.Manifest;
-import android.os.Build;
-import android.webkit.WebView;
-
-import androidx.appcompat.app.AppCompatActivity;
-
-import com.getcapacitor.Bridge;
-import com.getcapacitor.CapConfig;
-import com.getcapacitor.JSObject;
-import com.getcapacitor.PermissionState;
-import com.getcapacitor.Plugin;
-import com.getcapacitor.PluginCall;
-import com.getcapacitor.cordova.MockCordovaInterfaceImpl;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.robolectric.ParameterizedRobolectricTestRunner;
-import org.robolectric.ParameterizedRobolectricTestRunner.Parameter;
-import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
-import org.robolectric.annotation.Config;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Parameterized test to verify location permission statuses
- */
-@RunWith(ParameterizedRobolectricTestRunner.class)
-@Config(sdk = Build.VERSION_CODES.Q)
-public class PermissionsTest {
-
- private RadarPlugin mPlugin;
- private TestBridge mBridge;
-
- @Parameter
- public PermissionState mGpsLocationPermission;
-
- @Parameter(1)
- public PermissionState mWifiLocationPermission;
-
- @Parameter(2)
- public PermissionState mBackgroundLocationPermission;
-
- @Parameters(name = "{index}: " +
- "gpsLocationPermission? {0}. " +
- "wifiLocationPermission? {1}. " +
- "backgroundLocationPermission? {2}")
- public static Iterable