From fcec6e1ecdc17597b7cc5fce30c93a8270faee1a Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 6 Jan 2021 14:33:25 +0100 Subject: [PATCH] stuffff --- .../java/com/a1/nextlocation/data/RouteHandler.java | 4 ++++ .../java/com/a1/nextlocation/data/StaticData.java | 9 +++++++++ .../com/a1/nextlocation/fragments/HomeFragment.java | 11 +++++++---- .../a1/nextlocation/fragments/StatisticFragment.java | 2 ++ .../java/com/a1/nextlocation/network/ApiHandler.java | 12 ++++++------ app/src/main/res/layout/fragment_statistic.xml | 1 + 6 files changed, 29 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/a1/nextlocation/data/RouteHandler.java b/app/src/main/java/com/a1/nextlocation/data/RouteHandler.java index 0075475..91bf597 100644 --- a/app/src/main/java/com/a1/nextlocation/data/RouteHandler.java +++ b/app/src/main/java/com/a1/nextlocation/data/RouteHandler.java @@ -12,6 +12,7 @@ public enum RouteHandler { private Route currentRoute; private int stepCount = 0; private RouteFinishedListener routeFinishedListener; + private long startedTime; private Polyline currentRouteLine; @@ -40,11 +41,14 @@ public enum RouteHandler { isFollowingRoute = false; currentRoute = null; currentRouteLine = null; + StaticData.INSTANCE.addTimeWalked(System.currentTimeMillis()-startedTime); + startedTime = 0; } public void followRoute(Route route) { this.currentRoute = route; setFollowingRoute(true); + startedTime = System.currentTimeMillis(); } public boolean isFollowingRoute(Route route) { diff --git a/app/src/main/java/com/a1/nextlocation/data/StaticData.java b/app/src/main/java/com/a1/nextlocation/data/StaticData.java index d347d42..072efb5 100644 --- a/app/src/main/java/com/a1/nextlocation/data/StaticData.java +++ b/app/src/main/java/com/a1/nextlocation/data/StaticData.java @@ -11,6 +11,7 @@ public enum StaticData { INSTANCE; private double distanceTraveled = 0; private int locationsVisited = 0; + private long timeWalkedRoute = 0; private ArrayList visitedNames = new ArrayList<>(); @@ -18,6 +19,14 @@ public enum StaticData { distanceTraveled += d; } + public long getTimeWalkedRoute() { + return timeWalkedRoute; + } + + public void addTimeWalked(long time) { + timeWalkedRoute += time; + } + public double getDistanceTraveled() { return distanceTraveled; diff --git a/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java index e79659e..34a573e 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java @@ -209,6 +209,7 @@ public class HomeFragment extends Fragment implements LocationListener { private void displayRoute() { if (RouteHandler.INSTANCE.isFollowingRoute()) { + Log.d(TAG, "displayRoute: WE ARE FOLLOWING A ROUTE"); if (roadOverlay == null) { if (RouteHandler.INSTANCE.getCurrentRouteLine() != null) { roadOverlay = RouteHandler.INSTANCE.getCurrentRouteLine(); @@ -318,10 +319,12 @@ public class HomeFragment extends Fragment implements LocationListener { public void onLocationChanged(@NonNull Location location) { // calculate the distance walked - double distance = currentLocation.distanceTo(location); // in meters - // can't walk 100 meters in a few seconds - if (distance < 100) - StaticData.INSTANCE.addDistance(distance); + if (currentLocation != null) { + double distance = currentLocation.distanceTo(location); // in meters + // can't walk 100 meters in a few seconds + if (distance < 100) + StaticData.INSTANCE.addDistance(distance); + } currentLocation = location; diff --git a/app/src/main/java/com/a1/nextlocation/fragments/StatisticFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/StatisticFragment.java index a2cc87a..c0c1982 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/StatisticFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/StatisticFragment.java @@ -40,9 +40,11 @@ public class StatisticFragment extends Fragment { TextView distance = view.findViewById(R.id.statistics_km); TextView locs = view.findViewById(R.id.statistics_locations_visited); + TextView timeText = view.findViewById(R.id.statistics_time_value); double dist = StaticData.INSTANCE.getDistanceTraveled()/1000; distance.setText("" + String.format("%.1f",dist) + " km"); locs.setText("" + StaticData.INSTANCE.getLocationsVisited()); + timeText.setText("" + StaticData.INSTANCE.getTimeWalkedRoute()); this.couponList = CouponListManager.INSTANCE.getCouponList(); diff --git a/app/src/main/java/com/a1/nextlocation/network/ApiHandler.java b/app/src/main/java/com/a1/nextlocation/network/ApiHandler.java index 61f3176..07c3cff 100644 --- a/app/src/main/java/com/a1/nextlocation/network/ApiHandler.java +++ b/app/src/main/java/com/a1/nextlocation/network/ApiHandler.java @@ -171,12 +171,12 @@ public enum ApiHandler { t.start(); -// -// try { -// t.join(); -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } + // wait for when we have a result from the api until we can continue, otherwise the route will be drawn before we get the result + try { + t.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } } diff --git a/app/src/main/res/layout/fragment_statistic.xml b/app/src/main/res/layout/fragment_statistic.xml index 0147d3c..5172702 100644 --- a/app/src/main/res/layout/fragment_statistic.xml +++ b/app/src/main/res/layout/fragment_statistic.xml @@ -151,6 +151,7 @@ app:layout_constraintTop_toTopOf="parent" />