From f6af7ae80b2ad5e69f90f6df3801b4a60939092b Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 6 Jan 2021 10:48:03 +0100 Subject: [PATCH] added route singleton --- .../a1/nextlocation/data/RouteHandler.java | 42 +++++++++++++++++++ .../com/a1/nextlocation/data/StaticData.java | 18 -------- .../fragments/RouteDetailFragment.java | 3 ++ .../a1/nextlocation/network/ApiHandler.java | 1 + 4 files changed, 46 insertions(+), 18 deletions(-) create mode 100644 app/src/main/java/com/a1/nextlocation/data/RouteHandler.java diff --git a/app/src/main/java/com/a1/nextlocation/data/RouteHandler.java b/app/src/main/java/com/a1/nextlocation/data/RouteHandler.java new file mode 100644 index 0000000..65fda9b --- /dev/null +++ b/app/src/main/java/com/a1/nextlocation/data/RouteHandler.java @@ -0,0 +1,42 @@ +package com.a1.nextlocation.data; + +/** + * singleton to track the current route that is being followed + */ +public enum RouteHandler { + INSTANCE; + + private boolean isFollowingRoute = false; + private Route currentRoute; + private int stepCount = 0; + + public int getStepCount() { + return stepCount; + } + + public void addStep() { + stepCount++; + } + + public void finishRoute() { + stepCount = 0; + isFollowingRoute = false; + currentRoute = null; + } + + public void followRoute(Route route) { + this.currentRoute = route; + setFollowingRoute(true); + } + + public boolean isFollowingRoute(Route route) { + return isFollowingRoute && route.equals(currentRoute); + } + public void setFollowingRoute(boolean followingRoute) { + isFollowingRoute = followingRoute; + } + + public boolean isFollowingRoute() { + return isFollowingRoute; + } +} 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 0043e3d..0f0d4e3 100644 --- a/app/src/main/java/com/a1/nextlocation/data/StaticData.java +++ b/app/src/main/java/com/a1/nextlocation/data/StaticData.java @@ -11,24 +11,6 @@ public enum StaticData { INSTANCE; private double distanceTraveled = 0; private int locationsVisited = 0; - private boolean isFollowingRoute = false; - private String routeName = ""; - - public void followRoute(Route route) { - routeName = route.getName(); - setFollowingRoute(true); - } - - public boolean isFollowingRoute(Route route) { - return isFollowingRoute && route.getName().equals(routeName); - } - public void setFollowingRoute(boolean followingRoute) { - isFollowingRoute = followingRoute; - } - - public boolean isFollowingRoute() { - return isFollowingRoute; - } private ArrayList visitedNames = new ArrayList<>(); diff --git a/app/src/main/java/com/a1/nextlocation/fragments/RouteDetailFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/RouteDetailFragment.java index 99e3445..5fded7c 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/RouteDetailFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/RouteDetailFragment.java @@ -14,6 +14,8 @@ import android.widget.Toast; import com.a1.nextlocation.R; import com.a1.nextlocation.data.Route; +import com.a1.nextlocation.data.RouteHandler; +import com.a1.nextlocation.data.StaticData; import com.a1.nextlocation.network.ApiHandler; public class RouteDetailFragment extends Fragment { @@ -45,6 +47,7 @@ public class RouteDetailFragment extends Fragment { public void startRoute(View view) { ApiHandler.INSTANCE.getDirections(route); + RouteHandler.INSTANCE.followRoute(route); Toast.makeText(requireContext(),"Route started!",Toast.LENGTH_SHORT).show(); ((FragmentActivity) view.getContext()).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, new HomeFragment()).addToBackStack(null).commit(); 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 570e683..46d3830 100644 --- a/app/src/main/java/com/a1/nextlocation/network/ApiHandler.java +++ b/app/src/main/java/com/a1/nextlocation/network/ApiHandler.java @@ -127,6 +127,7 @@ public enum ApiHandler { } catch (IOException e) { Log.d(TAG, "getDirections: caught exception: " + e.getLocalizedMessage()); } + }); t.start();