This commit is contained in:
Sem van der Hoeven
2021-01-06 14:33:25 +01:00
parent 6266705c3e
commit fcec6e1ecd
6 changed files with 29 additions and 10 deletions

View File

@@ -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) {

View File

@@ -11,6 +11,7 @@ public enum StaticData {
INSTANCE;
private double distanceTraveled = 0;
private int locationsVisited = 0;
private long timeWalkedRoute = 0;
private ArrayList<String> 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;

View File

@@ -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;

View File

@@ -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();

View File

@@ -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();
}
}

View File

@@ -151,6 +151,7 @@
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/statistics_time_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""