manual location connected to sharing tab and uses bg task for sending cors
This commit is contained in:
parent
fca6cd936c
commit
da944c37d5
@ -140,8 +140,10 @@ public class MapActivity extends BaseActivity
|
||||
|
||||
removeLocationButton.setOnClickListener(view -> {
|
||||
Log.e(tag + "Manual", "manual coords sending stopped");
|
||||
stopBackgroundLocalizationTask();
|
||||
|
||||
// TODO to remove after BGserv
|
||||
manualLocHandler.removeCallbacks(manualLocStatusChecker);
|
||||
// manualLocHandler.removeCallbacks(manualLocStatusChecker);
|
||||
|
||||
removeLocationButton.setVisibility(View.GONE);
|
||||
Toast.makeText(MapActivity.this, "Your marker will disappear in next couple minutes", Toast.LENGTH_SHORT).show();
|
||||
@ -156,7 +158,9 @@ public class MapActivity extends BaseActivity
|
||||
|
||||
|
||||
setToggleMapBoundsArea();
|
||||
if (PrefUtils.getIsTutor(this)){
|
||||
setOnMapLongClickListener();
|
||||
}
|
||||
// addStaticLayer();
|
||||
}
|
||||
|
||||
@ -264,43 +268,44 @@ public class MapActivity extends BaseActivity
|
||||
PrefUtils.getUserId(getApplicationContext()),
|
||||
PrefUtils.getLocationLevel(getApplicationContext())
|
||||
);
|
||||
PrefUtils.putManualLocation(this, latLng);
|
||||
|
||||
// TODO remove after BG sending
|
||||
manualLocStatusChecker = () -> {
|
||||
try {
|
||||
Log.e(tag + "Manual", "sending manual coords");
|
||||
// TODO ^^^ wrapper to removve
|
||||
disposable.add(
|
||||
coordinateService
|
||||
.postCoordinate(droppedMarkercoordinate)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribeWith(new DisposableSingleObserver<Coordinate>() {
|
||||
@SuppressLint("LongLogTag")
|
||||
@Override
|
||||
public void onSuccess(Coordinate coord) {
|
||||
Log.e(tag + "POST", String.valueOf(coord));
|
||||
}
|
||||
|
||||
@SuppressLint("LongLogTag")
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
|
||||
Log.e(tag + "onError", e.getMessage());
|
||||
|
||||
if (e instanceof HttpException) {
|
||||
ResponseBody responseBody = ((HttpException) e).response().errorBody();
|
||||
Log.e(tag + "onError", RestApiHelper.getErrorMessage(responseBody));
|
||||
|
||||
}
|
||||
}
|
||||
}));
|
||||
// TODO \/\/\/\/\/ wrapper to removve
|
||||
} finally {
|
||||
manualLocHandler.postDelayed(manualLocStatusChecker, mInterval);
|
||||
}
|
||||
};
|
||||
manualLocStatusChecker.run();
|
||||
// // TODO remove after BG sending
|
||||
// manualLocStatusChecker = () -> {
|
||||
// try {
|
||||
// Log.e(tag + "Manual", "sending manual coords");
|
||||
// // TODO ^^^ wrapper to removve
|
||||
// disposable.add(
|
||||
// coordinateService
|
||||
// .postCoordinate(droppedMarkercoordinate)
|
||||
// .subscribeOn(Schedulers.io())
|
||||
// .observeOn(AndroidSchedulers.mainThread())
|
||||
// .subscribeWith(new DisposableSingleObserver<Coordinate>() {
|
||||
// @SuppressLint("LongLogTag")
|
||||
// @Override
|
||||
// public void onSuccess(Coordinate coord) {
|
||||
// Log.e(tag + "POST", String.valueOf(coord));
|
||||
// }
|
||||
//
|
||||
// @SuppressLint("LongLogTag")
|
||||
// @Override
|
||||
// public void onError(Throwable e) {
|
||||
//
|
||||
// Log.e(tag + "onError", e.getMessage());
|
||||
//
|
||||
// if (e instanceof HttpException) {
|
||||
// ResponseBody responseBody = ((HttpException) e).response().errorBody();
|
||||
// Log.e(tag + "onError", RestApiHelper.getErrorMessage(responseBody));
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// }));
|
||||
// // TODO \/\/\/\/\/ wrapper to removve
|
||||
// } finally {
|
||||
// manualLocHandler.postDelayed(manualLocStatusChecker, mInterval);
|
||||
// }
|
||||
// };
|
||||
// manualLocStatusChecker.run();
|
||||
|
||||
|
||||
} catch (IllegalArgumentException e) {
|
||||
|
@ -105,7 +105,6 @@ public class SharingFragment extends PreferenceFragment {
|
||||
locationLevelMapping.put(2, SharingLevel.EXACT.toString());
|
||||
locationLevelMapping.put(3, SharingLevel.MANUAL.toString());
|
||||
|
||||
|
||||
statusMapping = new HashMap<Integer, String>();
|
||||
statusMapping.put(0,"available");
|
||||
statusMapping.put(1,"consultation");
|
||||
@ -119,6 +118,7 @@ public class SharingFragment extends PreferenceFragment {
|
||||
});
|
||||
|
||||
/** Sharing level list **/
|
||||
locationMode.setSummary(PrefUtils.getLocationLevel(getApplicationContext()));
|
||||
locationMode.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
PrefUtils.storeLocationMode(getApplicationContext(),locationLevelMapping.get(Integer.parseInt((String) newValue)));
|
||||
if(PrefUtils.getLocationLevel(getApplicationContext()) == "manual"){
|
||||
|
@ -28,6 +28,7 @@ import com.google.android.gms.location.LocationServices;
|
||||
import com.google.android.gms.tasks.OnSuccessListener;
|
||||
import com.jakewharton.retrofit2.adapter.rxjava2.HttpException;
|
||||
import com.mapbox.geojson.Point;
|
||||
import com.mapbox.mapboxsdk.geometry.LatLng;
|
||||
import com.uam.wmi.findmytutor.model.Coordinate;
|
||||
import com.uam.wmi.findmytutor.network.ApiClient;
|
||||
import com.uam.wmi.findmytutor.utils.ApproximatedLocalization;
|
||||
@ -304,15 +305,20 @@ public class BackgroundLocalizationService extends Service {
|
||||
@Override
|
||||
protected Object doInBackground(Object[] objects) {
|
||||
|
||||
if (PrefUtils.getLocationLevel(getApplicationContext()).equals(SharingLevel.PRESENCE.toString())) {
|
||||
String locationLevel = PrefUtils.getLocationLevel(getApplicationContext());
|
||||
|
||||
if (locationLevel.equals(SharingLevel.PRESENCE.toString())) {
|
||||
latitude = presenceLatitude;
|
||||
longitude = presencelongitude;
|
||||
approximatedBuildingPart = presenceApproximatedName;
|
||||
} else if (PrefUtils.getLocationLevel(getApplicationContext()).equals(SharingLevel.APPROXIMATED.toString())) {
|
||||
} else if (locationLevel.equals(SharingLevel.APPROXIMATED.toString())) {
|
||||
List<Double> points = approximatedLocalization.getMiddlePointOfBuildingPart(approximatedBuildingPart);
|
||||
|
||||
latitude = points.get(0);
|
||||
longitude = points.get(1);
|
||||
} else if (locationLevel.equals(SharingLevel.MANUAL.toString())) {
|
||||
LatLng latLng = PrefUtils.getManualLocation(getApplicationContext());
|
||||
latitude = latLng.getLatitude();
|
||||
longitude = latLng.getLongitude();
|
||||
}
|
||||
|
||||
try {
|
||||
@ -323,7 +329,7 @@ public class BackgroundLocalizationService extends Service {
|
||||
approximatedBuildingPart,
|
||||
(PrefUtils.isStatusEnabled(getApplicationContext())) ? PrefUtils.getUserStatus(getApplicationContext()) : "",
|
||||
PrefUtils.getUserId(getApplicationContext()),
|
||||
PrefUtils.getLocationLevel(getApplicationContext())
|
||||
locationLevel
|
||||
);
|
||||
|
||||
disposable.add(
|
||||
|
@ -5,6 +5,8 @@ import android.content.SharedPreferences;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.util.Log;
|
||||
|
||||
import com.mapbox.mapboxsdk.geometry.LatLng;
|
||||
import com.uam.wmi.findmytutor.activity.SharingFragment;
|
||||
import com.auth0.android.jwt.Claim;
|
||||
import com.auth0.android.jwt.JWT;
|
||||
@ -20,11 +22,11 @@ public class PrefUtils {
|
||||
return context.getSharedPreferences("com.uam.wmi.findmytutor_preferences", Context.MODE_PRIVATE);
|
||||
}
|
||||
|
||||
public static void getAllKeys(Context context){
|
||||
Map<String,?> keys = getSharedPreferences(context).getAll();
|
||||
public static void getAllKeys(Context context) {
|
||||
Map<String, ?> keys = getSharedPreferences(context).getAll();
|
||||
|
||||
for(Map.Entry<String,?> entry : keys.entrySet()){
|
||||
Log.d("map values",entry.getKey() + ": " + entry.getValue().toString());
|
||||
for (Map.Entry<String, ?> entry : keys.entrySet()) {
|
||||
Log.d("map values", entry.getKey() + ": " + entry.getValue().toString());
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,14 +56,16 @@ public class PrefUtils {
|
||||
return getSharedPreferences(context).getString("USER_ID", null);
|
||||
}
|
||||
|
||||
public static boolean isStatusEnabled(Context context){
|
||||
return getSharedPreferences(context).getBoolean("key_status_enabled",false);
|
||||
public static boolean isStatusEnabled(Context context) {
|
||||
return getSharedPreferences(context).getBoolean("key_status_enabled", false);
|
||||
|
||||
}
|
||||
|
||||
public static String getUserStatus(Context context) {
|
||||
return getSharedPreferences(context).getString("status_entry", "Available");
|
||||
}
|
||||
public static void storeStatus(Context context, String status){
|
||||
|
||||
public static void storeStatus(Context context, String status) {
|
||||
SharedPreferences.Editor editor = getSharedPreferences(context).edit();
|
||||
editor.putString("status_entry", status);
|
||||
editor.apply();
|
||||
@ -91,15 +95,17 @@ public class PrefUtils {
|
||||
return getSharedPreferences(context).getBoolean("key_sharing_enabled", false);
|
||||
}
|
||||
|
||||
public static void storeEnableSharingLocalization(Context context,Boolean isChecked) {
|
||||
public static void storeEnableSharingLocalization(Context context, Boolean isChecked) {
|
||||
SharedPreferences.Editor editor = getSharedPreferences(context).edit();
|
||||
editor.putBoolean("key_sharing_enabled", isChecked);
|
||||
editor.apply();
|
||||
}
|
||||
public static String getLocationLevel(Context context){
|
||||
|
||||
public static String getLocationLevel(Context context) {
|
||||
return getSharedPreferences(context).getString("location_mode", "exact");
|
||||
}
|
||||
public static void storeLocationMode(Context context, String mode){
|
||||
|
||||
public static void storeLocationMode(Context context, String mode) {
|
||||
SharedPreferences.Editor editor = getSharedPreferences(context).edit();
|
||||
editor.putString("location_mode", mode);
|
||||
editor.apply();
|
||||
@ -150,4 +156,22 @@ public class PrefUtils {
|
||||
editor.putBoolean("BACKGROUND_SERVICE_STATUS", status);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public static void putManualLocation(Context context, LatLng latLng) {
|
||||
SharedPreferences.Editor editor = getSharedPreferences(context).edit();
|
||||
|
||||
editor.putString("location_mode", "manual");
|
||||
editor.putBoolean("key_sharing_enabled", true);
|
||||
editor.putLong("longitude_manual_location", Double.doubleToRawLongBits(latLng.getLongitude()));
|
||||
editor.putLong("latitude_manual_location", Double.doubleToRawLongBits(latLng.getLatitude()));
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public static LatLng getManualLocation(Context context) {
|
||||
return new LatLng(
|
||||
Double.longBitsToDouble(getSharedPreferences(context).getLong("latitude_manual_location", 0)),
|
||||
Double.longBitsToDouble(getSharedPreferences(context).getLong("longitude_manual_location", 0))
|
||||
);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user