Create handlers for coming in and out from building
This commit is contained in:
parent
5e51be5d0b
commit
0cec17dd16
@ -3,6 +3,7 @@ package com.uam.wmi.findmytutor.model;
|
|||||||
import android.util.Range;
|
import android.util.Range;
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.uam.wmi.findmytutor.utils.Consts;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -14,8 +15,8 @@ import io.swagger.annotations.ApiModelProperty;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class Coordinate extends BaseResponse {
|
public class Coordinate extends BaseResponse {
|
||||||
Range<Double> latitudeRange = Range.create(52.46598, 52.467545);
|
private Range<Double> latitudeRange = Consts.latitudeRange;
|
||||||
Range<Double> longtitudeRange = Range.create(16.926099, 16.927794);
|
private Range<Double> longtitudeRange = Consts.longitudeRange;
|
||||||
|
|
||||||
@SerializedName("coordinateId")
|
@SerializedName("coordinateId")
|
||||||
private UUID coordinateId = null;
|
private UUID coordinateId = null;
|
||||||
|
@ -63,15 +63,15 @@ public class BackgroundLocalizationService extends Service {
|
|||||||
private static final String TAG = "MyLocationService";
|
private static final String TAG = "MyLocationService";
|
||||||
private static final int LOCATION_INTERVAL = 1000;
|
private static final int LOCATION_INTERVAL = 1000;
|
||||||
private static final float LOCATION_DISTANCE = 5f;
|
private static final float LOCATION_DISTANCE = 5f;
|
||||||
public static String str_receiver = "background.location.broadcast";
|
|
||||||
private static long notify_interval = 10000;
|
private static long notify_interval = 10000;
|
||||||
private static long notify_interval_inside_building = 10000;
|
private static long notify_interval_inside_building = 10000;
|
||||||
private static long notify_interval_outside_building = 20000;
|
private static long notify_interval_outside_building = 360000;
|
||||||
|
|
||||||
//private static long notify_interval_outside_building = 900000;
|
//private static long notify_interval_outside_building = 900000;
|
||||||
private CircularFifoQueue<Location> coordinatesHistory = new CircularFifoQueue<Location>(5);
|
private static int coordinatesHistoryLength = 10;
|
||||||
|
private CircularFifoQueue<Location> coordinatesHistory = new CircularFifoQueue<Location>(coordinatesHistoryLength);
|
||||||
Location mLastLocation;
|
Location mLastLocation;
|
||||||
Boolean stopService = false;
|
Boolean stopService = false;
|
||||||
Intent intent;
|
|
||||||
ArrayList<String> providers = new ArrayList<String>();
|
ArrayList<String> providers = new ArrayList<String>();
|
||||||
LocationListener[] mLocationListeners;
|
LocationListener[] mLocationListeners;
|
||||||
|
|
||||||
@ -171,22 +171,27 @@ public class BackgroundLocalizationService extends Service {
|
|||||||
|
|
||||||
|
|
||||||
private void changeBackgroundMode() {
|
private void changeBackgroundMode() {
|
||||||
Predicate<Boolean> p2 = v -> !v;
|
|
||||||
if(coordinatesHistory.size() > 4){
|
if(coordinatesHistory.size() > 4){
|
||||||
Boolean shouldExtendTimeInterval = Stream.of(coordinatesHistory)
|
Boolean shouldExtendTimeInterval = Stream.of(coordinatesHistory)
|
||||||
.map(MapUtils::checkIfCoordinateIsValid).takeWhile( s-> !s).toList().size() == 5;
|
.map(MapUtils::checkIfCoordinateIsValid).takeWhile( s-> !s).toList().size() == coordinatesHistory.size();
|
||||||
|
|
||||||
|
Boolean shouldAbbreviateTimeInterval = Stream.of(coordinatesHistory).
|
||||||
|
map(MapUtils::checkIfCoordinateIsValid).toList().get(coordinatesHistory.size() -1);
|
||||||
|
|
||||||
|
|
||||||
if(shouldExtendTimeInterval){
|
if(shouldExtendTimeInterval){
|
||||||
notify_interval = notify_interval_outside_building;
|
notify_interval = notify_interval_outside_building;
|
||||||
}else{
|
}else if (shouldAbbreviateTimeInterval){
|
||||||
notify_interval = notify_interval_inside_building;
|
notify_interval = notify_interval_inside_building;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.e("COORD_HISTORY", String.valueOf(Stream.of(coordinatesHistory)
|
Log.e("COORD_HISTORY", String.valueOf(Stream.of(coordinatesHistory)
|
||||||
.map(MapUtils::checkIfCoordinateIsValid).toList()));
|
.map(MapUtils::checkIfCoordinateIsValid).toList()));
|
||||||
Log.e("COORD_HISTORY", String.valueOf(coordinatesHistory));
|
|
||||||
Log.e("NEW INTERVAL", String.valueOf(notify_interval));
|
Log.e("COORD_HISTORY", String.valueOf(Stream.of(coordinatesHistory)
|
||||||
|
.map(x -> x.getLatitude() + " " + x.getLongitude()).toList()));
|
||||||
|
Log.e("COORD_NEW INTERVAL", String.valueOf(notify_interval));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -255,9 +260,6 @@ public class BackgroundLocalizationService extends Service {
|
|||||||
Log.e("Best localization:", String.valueOf(bestLocation));
|
Log.e("Best localization:", String.valueOf(bestLocation));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fn_update(Location location) {
|
private void fn_update(Location location) {
|
||||||
|
@ -7,8 +7,8 @@ public class Consts {
|
|||||||
public final static Integer searchMapZoom = 13;
|
public final static Integer searchMapZoom = 13;
|
||||||
public final static Double presenceLatitude = 52.466365;
|
public final static Double presenceLatitude = 52.466365;
|
||||||
public final static Double presenceLongitude = 16.926792;
|
public final static Double presenceLongitude = 16.926792;
|
||||||
public final static String presenceApproximatedName = "unknown";
|
public final static String presenceApproximatedName = "Unknown";
|
||||||
public final static Range<Double> latitudeRange = Range.create(52.466709, 52.467007);
|
public final static Range<Double> latitudeRange = Range.create(52.466092, 52.467529);
|
||||||
public final static Range<Double> longtitudeRange = Range.create(16.926159, 16.926976);
|
public final static Range<Double> longitudeRange = Range.create(16.926159, 16.927759);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,30 +2,21 @@ package com.uam.wmi.findmytutor.utils;
|
|||||||
|
|
||||||
import android.animation.TypeEvaluator;
|
import android.animation.TypeEvaluator;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
|
||||||
import android.location.Location;
|
import android.location.Location;
|
||||||
import android.view.Gravity;
|
import android.util.Log;
|
||||||
import android.view.View;
|
|
||||||
import android.widget.FrameLayout;
|
|
||||||
import android.content.res.AssetManager;
|
|
||||||
|
|
||||||
import com.mapbox.mapboxsdk.annotations.Polygon;
|
|
||||||
import com.mapbox.mapboxsdk.annotations.PolygonOptions;
|
|
||||||
import com.mapbox.mapboxsdk.camera.CameraPosition;
|
import com.mapbox.mapboxsdk.camera.CameraPosition;
|
||||||
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
|
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
|
||||||
import com.mapbox.mapboxsdk.geometry.LatLng;
|
import com.mapbox.mapboxsdk.geometry.LatLng;
|
||||||
import com.mapbox.mapboxsdk.geometry.LatLngBounds;
|
import com.mapbox.mapboxsdk.geometry.LatLngBounds;
|
||||||
import com.mapbox.mapboxsdk.maps.MapView;
|
import com.mapbox.mapboxsdk.maps.MapView;
|
||||||
import com.mapbox.mapboxsdk.maps.MapboxMap;
|
import com.mapbox.mapboxsdk.maps.MapboxMap;
|
||||||
import com.mapbox.mapboxsdk.style.layers.FillLayer;
|
|
||||||
import com.mapbox.mapboxsdk.style.layers.Layer;
|
|
||||||
import com.uam.wmi.findmytutor.model.Coordinate;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
import static com.uam.wmi.findmytutor.utils.Consts.latitudeRange;
|
import static com.uam.wmi.findmytutor.utils.Consts.latitudeRange;
|
||||||
import static com.uam.wmi.findmytutor.utils.Consts.longtitudeRange;
|
import static com.uam.wmi.findmytutor.utils.Consts.longitudeRange;
|
||||||
|
|
||||||
public class MapUtils {
|
public class MapUtils {
|
||||||
|
|
||||||
@ -85,7 +76,7 @@ public class MapUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Boolean checkIfCoordinateIsValid(Location coordinate){
|
public static Boolean checkIfCoordinateIsValid(Location coordinate){
|
||||||
return (!latitudeRange.contains(coordinate.getLatitude()) && !longtitudeRange.contains(coordinate.getLongitude()));
|
return latitudeRange.contains(coordinate.getLatitude()) && longitudeRange.contains(coordinate.getLongitude());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function for marker animation
|
// Function for marker animation
|
||||||
|
Loading…
Reference in New Issue
Block a user