From 0cec17dd16e18e04e1dae83847d149cff8713dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20Wrzeszczy=C5=84ski?= Date: Thu, 6 Dec 2018 21:32:13 +0100 Subject: [PATCH] Create handlers for coming in and out from building --- .../uam/wmi/findmytutor/model/Coordinate.java | 5 ++-- .../BackgroundLocalizationService.java | 26 ++++++++++--------- .../com/uam/wmi/findmytutor/utils/Consts.java | 6 ++--- .../uam/wmi/findmytutor/utils/MapUtils.java | 15 +++-------- 4 files changed, 23 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/uam/wmi/findmytutor/model/Coordinate.java b/app/src/main/java/com/uam/wmi/findmytutor/model/Coordinate.java index 9fc2acf..7334350 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/model/Coordinate.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/model/Coordinate.java @@ -3,6 +3,7 @@ package com.uam.wmi.findmytutor.model; import android.util.Range; import com.google.gson.annotations.SerializedName; +import com.uam.wmi.findmytutor.utils.Consts; import java.util.Objects; import java.util.UUID; @@ -14,8 +15,8 @@ import io.swagger.annotations.ApiModelProperty; */ public class Coordinate extends BaseResponse { - Range latitudeRange = Range.create(52.46598, 52.467545); - Range longtitudeRange = Range.create(16.926099, 16.927794); + private Range latitudeRange = Consts.latitudeRange; + private Range longtitudeRange = Consts.longitudeRange; @SerializedName("coordinateId") private UUID coordinateId = null; diff --git a/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java b/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java index 20df4d6..aca3b5f 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java @@ -63,15 +63,15 @@ public class BackgroundLocalizationService extends Service { private static final String TAG = "MyLocationService"; private static final int LOCATION_INTERVAL = 1000; 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_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 CircularFifoQueue coordinatesHistory = new CircularFifoQueue(5); + private static int coordinatesHistoryLength = 10; + private CircularFifoQueue coordinatesHistory = new CircularFifoQueue(coordinatesHistoryLength); Location mLastLocation; Boolean stopService = false; - Intent intent; ArrayList providers = new ArrayList(); LocationListener[] mLocationListeners; @@ -171,22 +171,27 @@ public class BackgroundLocalizationService extends Service { private void changeBackgroundMode() { - Predicate p2 = v -> !v; if(coordinatesHistory.size() > 4){ 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){ notify_interval = notify_interval_outside_building; - }else{ + }else if (shouldAbbreviateTimeInterval){ notify_interval = notify_interval_inside_building; } } Log.e("COORD_HISTORY", String.valueOf(Stream.of(coordinatesHistory) .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)); } - - - } private void fn_update(Location location) { diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/Consts.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/Consts.java index 7f03193..4af26c4 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/Consts.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/Consts.java @@ -7,8 +7,8 @@ public class Consts { public final static Integer searchMapZoom = 13; public final static Double presenceLatitude = 52.466365; public final static Double presenceLongitude = 16.926792; - public final static String presenceApproximatedName = "unknown"; - public final static Range latitudeRange = Range.create(52.466709, 52.467007); - public final static Range longtitudeRange = Range.create(16.926159, 16.926976); + public final static String presenceApproximatedName = "Unknown"; + public final static Range latitudeRange = Range.create(52.466092, 52.467529); + public final static Range longitudeRange = Range.create(16.926159, 16.927759); } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/MapUtils.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/MapUtils.java index c75b338..a56ca7e 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/MapUtils.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/MapUtils.java @@ -2,30 +2,21 @@ package com.uam.wmi.findmytutor.utils; import android.animation.TypeEvaluator; import android.content.Context; -import android.graphics.Color; import android.location.Location; -import android.view.Gravity; -import android.view.View; -import android.widget.FrameLayout; -import android.content.res.AssetManager; +import android.util.Log; -import com.mapbox.mapboxsdk.annotations.Polygon; -import com.mapbox.mapboxsdk.annotations.PolygonOptions; import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.geometry.LatLngBounds; import com.mapbox.mapboxsdk.maps.MapView; 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.InputStream; 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 { @@ -85,7 +76,7 @@ public class MapUtils { } 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