use of com.getcapacitor.JSObject in project capacitor-radar by radarlabs.
the class RadarPlugin method trackOnce.
@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) {
if (status == Radar.RadarStatus.SUCCESS && location != null && events != null && user != null) {
JSObject ret = new JSObject();
ret.put("status", status.toString());
ret.put("location", RadarPlugin.jsObjectForJSONObject(Radar.jsonForLocation(location)));
ret.put("events", RadarPlugin.jsArrayForJSONArray(RadarEvent.toJson(events)));
ret.put("user", RadarPlugin.jsObjectForJSONObject(user.toJson()));
call.resolve(ret);
} else {
call.reject(status.toString());
}
}
};
if (call.hasOption("latitude") && call.hasOption("longitude") && call.hasOption("accuracy")) {
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);
}
}
use of com.getcapacitor.JSObject in project capacitor-radar by radarlabs.
the class RadarPlugin method setMetadata.
@PluginMethod()
public void setMetadata(PluginCall call) {
JSObject metadata = call.getObject("metadata");
Radar.setMetadata(RadarPlugin.jsonObjectForJSObject(metadata));
call.resolve();
}
use of com.getcapacitor.JSObject in project capacitor-radar by radarlabs.
the class RadarPlugin method updateTrip.
@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 = 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 status, @Nullable RadarTrip trip, @Nullable RadarEvent[] events) {
JSObject ret = new JSObject();
ret.put("status", status.toString());
if (trip != null) {
ret.put("trip", RadarPlugin.jsObjectForJSONObject(trip.toJson()));
}
if (events != null) {
ret.put("events", RadarPlugin.jsArrayForArray(events));
}
call.resolve(ret);
}
});
}
use of com.getcapacitor.JSObject in project capacitor-radar by radarlabs.
the class RadarPlugin method geocode.
@PluginMethod()
public void geocode(final PluginCall call) throws JSONException {
if (!call.hasOption("query")) {
call.reject("query is required");
return;
}
String query = call.getString("query");
Radar.geocode(query, new Radar.RadarGeocodeCallback() {
@Override
public void onComplete(@NotNull Radar.RadarStatus status, @Nullable RadarAddress[] addresses) {
if (status == Radar.RadarStatus.SUCCESS && addresses != null) {
JSObject ret = new JSObject();
ret.put("status", status.toString());
ret.put("addresses", RadarPlugin.jsArrayForJSONArray(RadarAddress.toJson(addresses)));
call.resolve(ret);
} else {
call.reject(status.toString());
}
}
});
}
use of com.getcapacitor.JSObject in project capacitor-radar by radarlabs.
the class RadarPlugin method getDistance.
@PluginMethod()
public void getDistance(final PluginCall call) throws JSONException {
Radar.RadarRouteCallback callback = new Radar.RadarRouteCallback() {
@Override
public void onComplete(@NotNull Radar.RadarStatus status, @Nullable RadarRoutes routes) {
if (status == Radar.RadarStatus.SUCCESS && routes != null) {
JSObject ret = new JSObject();
ret.put("status", status.toString());
ret.put("points", RadarPlugin.jsObjectForJSONObject(routes.toJson()));
call.resolve(ret);
} else {
call.reject(status.toString());
}
}
};
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");
Location destination = new Location("RadarSDK");
destination.setLatitude(destinationLatitude);
destination.setLongitude(destinationLongitude);
destination.setAccuracy(5);
if (!call.hasOption("modes")) {
call.reject("modes is required");
return;
}
EnumSet<Radar.RadarRouteMode> modes = EnumSet.noneOf(Radar.RadarRouteMode.class);
List<String> 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);
}
if (!call.hasOption("units")) {
call.reject("units is required");
return;
}
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");
double originLatitude = originObj.getDouble("latitude");
double originLongitude = originObj.getDouble("longitude");
Location origin = new Location("RadarSDK");
origin.setLatitude(originLatitude);
origin.setLongitude(originLongitude);
Radar.getDistance(origin, destination, modes, units, callback);
} else {
Radar.getDistance(destination, modes, units, callback);
}
}
Aggregations