Merge background task into develop #14
@ -1,12 +1,14 @@
|
|||||||
package com.uam.wmi.findmytutor.service;
|
package com.uam.wmi.findmytutor.service;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.location.Location;
|
import android.location.Location;
|
||||||
import android.location.LocationManager;
|
import android.location.LocationManager;
|
||||||
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
@ -15,18 +17,28 @@ import android.support.v4.app.NotificationCompat;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
|
import com.uam.wmi.findmytutor.model.Coordinate;
|
||||||
|
import com.uam.wmi.findmytutor.network.ApiClient;
|
||||||
|
import com.uam.wmi.findmytutor.utils.PrefUtils;
|
||||||
|
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
|
import io.reactivex.disposables.CompositeDisposable;
|
||||||
|
import io.reactivex.observers.DisposableSingleObserver;
|
||||||
|
import io.reactivex.schedulers.Schedulers;
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class BackgroundLocalizationService extends Service {
|
public class BackgroundLocalizationService extends Service {
|
||||||
|
|
||||||
public static String str_receiver = "background.location.broadcast";
|
public static String str_receiver = "background.location.broadcast";
|
||||||
private static final String TAG = "MyLocationService";
|
private static final String TAG = "MyLocationService";
|
||||||
private LocationManager mLocationManager = null;
|
private LocationManager mLocationManager = null;
|
||||||
private static final int LOCATION_INTERVAL = 10000;
|
private static final int LOCATION_INTERVAL = 1000;
|
||||||
private static final float LOCATION_DISTANCE = 10f;
|
private static final float LOCATION_DISTANCE = 10f;
|
||||||
private Handler mHandler = new Handler();
|
private Handler mHandler = new Handler();
|
||||||
private static long notify_interval = 100000;
|
private static long notify_interval = 10000;
|
||||||
Location mLastLocation;
|
Location mLastLocation;
|
||||||
Intent intent;
|
Intent intent;
|
||||||
LocationManager locationManager;
|
LocationManager locationManager;
|
||||||
@ -218,7 +230,8 @@ public class BackgroundLocalizationService extends Service {
|
|||||||
private void fn_update(Location location){
|
private void fn_update(Location location){
|
||||||
intent.putExtra("latitude",location.getLatitude());
|
intent.putExtra("latitude",location.getLatitude());
|
||||||
intent.putExtra("longitude",location.getLongitude());
|
intent.putExtra("longitude",location.getLongitude());
|
||||||
sendBroadcast(intent);
|
new Task(location).execute();
|
||||||
|
// sendBroadcast(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendToBroadcast(Location location) {
|
private void sendToBroadcast(Location location) {
|
||||||
@ -226,7 +239,8 @@ public class BackgroundLocalizationService extends Service {
|
|||||||
|
|
||||||
intent.putExtra("latitude",location.getLatitude());
|
intent.putExtra("latitude",location.getLatitude());
|
||||||
intent.putExtra("longitude",location.getLongitude());
|
intent.putExtra("longitude",location.getLongitude());
|
||||||
sendBroadcast(intent);
|
new Task(location).execute();
|
||||||
|
//sendBroadcast(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getLocation() {
|
private void getLocation() {
|
||||||
@ -258,4 +272,55 @@ public class BackgroundLocalizationService extends Service {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class Task extends AsyncTask {
|
||||||
|
private Double latitude;
|
||||||
|
private Double longitude;
|
||||||
|
|
||||||
|
private CompositeDisposable disposable = new CompositeDisposable();
|
||||||
|
private CoordinateService coordinateService = ApiClient.getClient(getApplicationContext())
|
||||||
|
.create(CoordinateService.class);
|
||||||
|
|
||||||
|
private Task(Location location) {
|
||||||
|
this.latitude = location.getLatitude();
|
||||||
|
this.longitude = location.getLongitude();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Object doInBackground(Object[] objects) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
Coordinate coordinate = new Coordinate(
|
||||||
|
this.latitude,
|
||||||
|
this.longitude,
|
||||||
|
PrefUtils.getUserStatus(getApplicationContext()),
|
||||||
|
PrefUtils.getUserId(getApplicationContext())
|
||||||
|
);
|
||||||
|
|
||||||
|
disposable.add(
|
||||||
|
coordinateService
|
||||||
|
.postCoordinate(coordinate)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribeWith(new DisposableSingleObserver<Coordinate>() {
|
||||||
|
@SuppressLint("LongLogTag")
|
||||||
|
@Override
|
||||||
|
public void onSuccess(Coordinate coord) {
|
||||||
|
Log.e("CoordinateService onSuccess", String.valueOf(coord));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Throwable e) {
|
||||||
|
Log.e("LoginError", "onError: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
Timber.e(String.valueOf(e));
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user