Skip to content

Commit

Permalink
Showing 12 changed files with 63 additions and 50 deletions.
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -37,11 +37,11 @@ On iOS, you must add location usage descriptions and background modes to your `I
On Android, you must add the Google Play Services library to your project, then add the SDK to your project, preferably using Gradle. Finally, initialize the SDK in `onCreate()` in `MainApplication.java`, passing in your Radar publishable API key:
```java
import com.onradar.sdk.Radar;
import io.radar.sdk.Radar;
// ...
Radar.initialize(getApplicationContext(), publishableKey);
Radar.initialize(publishableKey);
```

To get a Radar publishable API key, [sign up for a Radar account](https://radar.io).
@@ -139,7 +139,6 @@ Radar.trackOnce().then((result) => {
`err` will be a string, one of:

- `ERROR_PUBLISHABLE_KEY`: the SDK was not initialized
- `ERROR_USER_ID`: the user was not identified
- `ERROR_PERMISSIONS`: the user has not granted location permissions for the app
- `ERROR_LOCATION`: location services were unavailable, or the location request timed out
- `ERROR_NETWORK`: the network was unavailable, or the network connection timed out
23 changes: 17 additions & 6 deletions android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
buildscript {
repositories {
maven {
url 'https://maven.google.com'
}
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
classpath 'com.android.tools.build:gradle:3.1.3'
}
}

apply plugin: 'com.android.library'

android {
compileSdkVersion 26
buildToolsVersion '26.0.1'
compileSdkVersion 27
buildToolsVersion '27.0.3'

defaultConfig {
minSdkVersion 16
targetSdkVersion 26
targetSdkVersion 27
versionCode 1
versionName '1.0.9'
versionName '2.0.0'
}
lintOptions {
abortOnError false
@@ -27,9 +30,17 @@ android {

repositories {
mavenCentral()
maven {
url 'https://maven.google.com'
}
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}

dependencies {
compile 'com.facebook.react:react-native:+'
compile 'com.onradar:sdk:1.2.+'
compile 'io.radar:sdk:2.0.+'
}
4 changes: 2 additions & 2 deletions android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Mon Apr 10 16:29:28 EDT 2017
#Thu Jul 19 10:39:56 EDT 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
Empty file modified android/gradlew
100644 → 100755
Empty file.
6 changes: 3 additions & 3 deletions android/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.onradar.react">
package="io.radar.react">

<application>
<receiver
android:name=".RNRadarReceiver"
android:name="io.radar.react.RNRadarReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="com.onradar.sdk.RECEIVED" />
<action android:name="io.radar.sdk.RECEIVED" />
</intent-filter>
</receiver>
</application>
Original file line number Diff line number Diff line change
@@ -1,25 +1,22 @@
package com.onradar.react;
package io.radar.react;

import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.location.Location;
import android.support.annotation.NonNull;

import android.support.v4.app.ActivityCompat;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.ReactContext;

import com.onradar.sdk.Radar;
import com.onradar.sdk.RadarCallback;
import com.onradar.sdk.RadarReceiver;
import com.onradar.sdk.model.RadarEvent;
import com.onradar.sdk.model.RadarUser;
import io.radar.sdk.Radar;
import io.radar.sdk.Radar.RadarCallback;
import io.radar.sdk.model.RadarEvent;
import io.radar.sdk.model.RadarUser;

public class RNRadarModule extends ReactContextBaseJavaModule {

@@ -49,14 +46,16 @@ public void setPlacesProvider(String providerStr) {

@ReactMethod
public void getPermissionsStatus(Promise promise) {
promise.resolve(RNRadarUtils.stringForPermissionsStatus(Radar.checkSelfPermissions()));
promise.resolve(RNRadarUtils.stringForPermissionsStatus(
ActivityCompat.checkSelfPermission(getReactApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
));
}

@ReactMethod
public void requestPermissions(boolean background) {
Activity activity = getCurrentActivity();
if (activity != null) {
Radar.requestPermissions(activity);
ActivityCompat.requestPermissions(activity, new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, 0);
}
}

@@ -74,7 +73,7 @@ public void stopTracking() {
public void trackOnce(final Promise promise) {
Radar.trackOnce(new RadarCallback() {
@Override
public void onCallback(@NonNull Radar.RadarStatus status, Location location, RadarEvent[] events, RadarUser user) {
public void onComplete(@NonNull Radar.RadarStatus status, Location location, RadarEvent[] events, RadarUser user) {
if (promise == null)
return;

@@ -106,7 +105,7 @@ public void updateLocation(ReadableMap locationMap, final Promise promise) {
location.setAccuracy(accuracy);
Radar.updateLocation(location, new RadarCallback() {
@Override
public void onCallback(@NonNull Radar.RadarStatus status, Location location, RadarEvent[] events, RadarUser user) {
public void onComplete(@NonNull Radar.RadarStatus status, Location location, RadarEvent[] events, RadarUser user) {
if (promise == null)
return;

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.onradar.react;
package io.radar.react;

import java.util.Arrays;
import java.util.Collections;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.onradar.react;
package io.radar.react;

import android.content.Context;
import android.location.Location;
@@ -12,10 +12,10 @@
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.modules.core.DeviceEventManagerModule;

import com.onradar.sdk.Radar;
import com.onradar.sdk.RadarReceiver;
import com.onradar.sdk.model.RadarEvent;
import com.onradar.sdk.model.RadarUser;
import io.radar.sdk.Radar;
import io.radar.sdk.RadarReceiver;
import io.radar.sdk.model.RadarEvent;
import io.radar.sdk.model.RadarUser;

public class RNRadarReceiver extends RadarReceiver {

Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.onradar.react;
package io.radar.react;

import android.location.Location;

import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;
import com.onradar.sdk.Radar;
import com.onradar.sdk.model.RadarEvent;
import com.onradar.sdk.model.RadarGeofence;
import com.onradar.sdk.model.RadarPlace;
import com.onradar.sdk.model.RadarUser;
import com.onradar.sdk.model.RadarUserInsights;
import com.onradar.sdk.model.RadarUserInsightsLocation;
import com.onradar.sdk.model.RadarUserInsightsState;
import io.radar.sdk.Radar;
import io.radar.sdk.model.RadarEvent;
import io.radar.sdk.model.RadarGeofence;
import io.radar.sdk.model.RadarPlace;
import io.radar.sdk.model.RadarUser;
import io.radar.sdk.model.RadarUserInsights;
import io.radar.sdk.model.RadarUserInsightsLocation;
import io.radar.sdk.model.RadarUserInsightsState;

class RNRadarUtils {

12 changes: 9 additions & 3 deletions ios/RNRadar.m
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@

@implementation RNRadar {
BOOL hasListeners;
CLLocationManager *locationManager;
}

RCT_EXPORT_MODULE();
@@ -16,10 +17,15 @@ - (instancetype)init {
self = [super init];
if (self) {
[Radar setDelegate:self];
locationManager = [CLLocationManager new];
}
return self;
}

+ (BOOL)requiresMainQueueSetup {
return YES;
}

- (NSArray<NSString *> *)supportedEvents {
return @[@"events", @"location", @"error"];
}
@@ -63,14 +69,14 @@ - (void)didFailWithStatus:(RadarStatus)status {
}

RCT_REMAP_METHOD(getPermissionsStatus, getPermissionsStatusWithResolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
resolve([RNRadarUtils stringForPermissionsStatus:[Radar authorizationStatus]]);
resolve([RNRadarUtils stringForPermissionsStatus:[CLLocationManager authorizationStatus]]);
}

RCT_EXPORT_METHOD(requestPermissions:(BOOL)background) {
if (background) {
[Radar requestAlwaysAuthorization];
[locationManager requestAlwaysAuthorization];
} else {
[Radar requestWhenInUseAuthorization];
[locationManager requestWhenInUseAuthorization];
}
}

2 changes: 0 additions & 2 deletions ios/RNRadarUtils.m
Original file line number Diff line number Diff line change
@@ -23,8 +23,6 @@ + (NSString *)stringForStatus:(RadarStatus)status {
return @"SUCCESS";
case RadarStatusErrorPublishableKey:
return @"ERROR_PUBLISHABLE_KEY";
case RadarStatusErrorUserId:
return @"ERROR_USER_ID";
case RadarStatusErrorPermissions:
return @"ERROR_PERMISSIONS";
case RadarStatusErrorLocation:
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
"description": "React Native module for Radar, the location platform for mobile apps",
"homepage": "https://radar.io",
"license": "Apache-2.0",
"version": "1.0.17",
"version": "2.0.0",
"main": "js/index.js",
"dependencies": {},
"peerDependencies": {

0 comments on commit f209463

Please sign in to comment.