5 Commits

Author SHA1 Message Date
Sem van der Hoeven
171c75c645 merge with develop 2021-01-12 13:56:46 +01:00
Sem van der Hoeven
39ff2684cb added saving route duration 2021-01-12 13:51:50 +01:00
Bart
b010de709f Saves distance, visitedNames list and displays saved info in statistics. 2021-01-12 13:30:35 +01:00
Bipin
cf650f6cf4 colourFix 2021-01-12 10:18:04 +01:00
Bipin
c15125d0c2 Removed all soul from application :) 2021-01-12 10:12:17 +01:00
20 changed files with 121 additions and 53 deletions

View File

@@ -1,6 +1,7 @@
package com.a1.nextlocation;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
@@ -12,6 +13,7 @@ import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import com.a1.nextlocation.data.Data;
import com.a1.nextlocation.fragments.HelpPopup;
import com.a1.nextlocation.fragments.HomeFragment;
import com.a1.nextlocation.fragments.Refreshable;
@@ -59,6 +61,8 @@ public class MainActivity extends AppCompatActivity implements Refreshable {
CouponListManager.INSTANCE.load();
RouteListManager.INSTANCE.setContext(this);
RouteListManager.INSTANCE.load();
Data.INSTANCE.setContext(this);
Data.INSTANCE.load();
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, new HomeFragment()).commit();

View File

@@ -1,5 +1,12 @@
package com.a1.nextlocation.data;
import android.content.Context;
import android.content.SharedPreferences;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
/**
@@ -11,8 +18,19 @@ public enum Data {
private int locationsVisited = 0;
private long totalTime = 0;
private double zoom = 0;
private SharedPreferences.Editor editor;
private Context context;
private LocationProximityListener locationProximityListener;
public void setContext(Context context) {
this.context = context;
}
public void setEditor(SharedPreferences.Editor editor) {
this.editor = editor;
}
public LocationProximityListener getLocationProximityListener() {
return locationProximityListener;
}
@@ -29,10 +47,13 @@ public enum Data {
this.zoom = zoom;
}
private final ArrayList<String> visitedNames = new ArrayList<>();
private ArrayList<String> visitedNames = new ArrayList<>();
public void addDistance(double d) {
distanceTraveled += d;
editor.putString("distanceTraveled", String.valueOf(distanceTraveled));
editor.apply();
}
public long getTotalTime() {
@@ -43,7 +64,6 @@ public enum Data {
totalTime += time;
}
public double getDistanceTraveled() {
return distanceTraveled;
}
@@ -52,6 +72,9 @@ public enum Data {
if (!visitedNames.contains(location.getName())) {
locationsVisited++;
visitedNames.add(location.getName());
saveVisitedNamesList();
editor.putInt("locationsVisited", locationsVisited);
editor.apply();
}
}
@@ -64,5 +87,25 @@ public enum Data {
void onLocationVisited(Location location);
}
public void saveVisitedNamesList(){
Gson gson = new Gson();
String json = gson.toJson(visitedNames);
editor.putString("visitedNames", json);
editor.apply();
}
public ArrayList<String> loadAndGetVisitedNamesList(){
String json = context.getSharedPreferences("Data", Context.MODE_PRIVATE).getString("visitedNames", "[]");
Type type = new TypeToken<ArrayList<String>>() {}.getType();
visitedNames = new Gson().fromJson(json, type);
return visitedNames;
}
public void load(){
SharedPreferences prefs = context.getSharedPreferences("Data", Context.MODE_PRIVATE);
this.editor = prefs.edit();
Data.INSTANCE.addDistance(Double.parseDouble(prefs.getString("distanceTraveled", "0")));
this.locationsVisited = loadAndGetVisitedNamesList().size();
}
}

View File

@@ -13,6 +13,15 @@ public enum RouteHandler {
private int stepCount = 0;
private RouteFinishedListener routeFinishedListener;
private long startedTime;
private double currentRouteDuration;
public void setCurrentRouteDuration(double currentRouteDuration) {
this.currentRouteDuration = currentRouteDuration;
}
public double getCurrentRouteDuration() {
return currentRouteDuration;
}
private Polyline currentRouteLine;
@@ -20,6 +29,7 @@ public enum RouteHandler {
this.currentRouteLine = currentRouteLine;
}
public Polyline getCurrentRouteLine() {
return currentRouteLine;
}

View File

@@ -5,6 +5,7 @@ import android.Manifest;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.location.Location;
@@ -139,6 +140,7 @@ public class HomeFragment extends Fragment implements LocationListener {
roadOverlay.setColor(color);
// pass the line to the route handler
RouteHandler.INSTANCE.setCurrentRouteDuration(directionsResult.getDuration());
RouteHandler.INSTANCE.setCurrentRouteLine(roadOverlay);
Log.d(TAG, "onDirectionsAvailable: successfully added road!");
@@ -260,7 +262,7 @@ public class HomeFragment extends Fragment implements LocationListener {
// marker icon
Drawable marker = ContextCompat.getDrawable(requireContext(), R.drawable.ic_baseline_location_on_24);
marker.setAlpha(255);
marker.setTint(getResources().getColor(R.color.primaryColour));
marker.setTint(getResources().getColor(R.color.secondaryColour));
// add all locations to the overlay itemss
for (com.a1.nextlocation.data.Location location : locations) {
@@ -360,8 +362,9 @@ public class HomeFragment extends Fragment implements LocationListener {
if (currentLocation != null) {
double distance = currentLocation.distanceTo(location); // in meters
// can't walk 100 meters in a few seconds
if (distance < 100)
if (distance < 100) {
Data.INSTANCE.addDistance(distance);
}
}
currentLocation = location;

View File

@@ -79,7 +79,7 @@ public class StatisticFragment extends Fragment {
private void initializeDistanceTextView(View view){
distance = view.findViewById(R.id.statistics_km);
double dist = Data.INSTANCE.getDistanceTraveled()/1000;
double dist = Double.parseDouble(getContext().getSharedPreferences("Data", Context.MODE_PRIVATE).getString("distanceTraveled", "0")) /1000;
if (getContext().getSharedPreferences("Settings", Context.MODE_PRIVATE).getBoolean("imperialSwitch", false))
distance.setText("" + String.format("%.1f",dist * 0.621371) + " mi");
else

View File

@@ -14,6 +14,9 @@ import com.google.android.gms.location.GeofencingEvent;
import java.util.List;
/**
* broadcast receiver for geofence events
*/
public class GeoFenceBroadcastReceiver extends BroadcastReceiver {
private final String TAG = GeoFenceBroadcastReceiver.class.getCanonicalName();

View File

@@ -6,7 +6,7 @@
android:tint="#333333"
android:alpha="0.6">
<path
android:fillColor="@android:color/white"
android:fillColor="@color/primaryColour"
android:pathData="M8,16h8V8H8V16zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2L12,2z"
android:fillType="evenOdd"/>
</vector>

View File

@@ -5,6 +5,6 @@
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@color/primaryColour"
android:fillColor="@color/secondaryColour"
android:pathData="M12,2C8.13,2 5,5.13 5,9c0,5.25 7,13 7,13s7,-7.75 7,-13c0,-3.87 -3.13,-7 -7,-7zM12,11.5c-1.38,0 -2.5,-1.12 -2.5,-2.5s1.12,-2.5 2.5,-2.5 2.5,1.12 2.5,2.5 -1.12,2.5 -2.5,2.5z"/>
</vector>

View File

@@ -22,9 +22,9 @@
android:id="@+id/navigation_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/white"
android:background="@color/primaryColour"
app:itemIconTint="@color/secondaryColour"
app:itemTextColor="@color/primaryColour"
app:itemTextColor="@color/secondaryColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -13,7 +13,7 @@
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.4"
@@ -26,7 +26,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:text=""
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -24,7 +24,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
android:backgroundTint="@color/secondaryColour"
android:backgroundTint="@color/primaryColour"
android:src="@drawable/ic_baseline_outlined_flag_24"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -37,7 +37,7 @@
android:layout_marginEnd="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/location_list_button"
android:backgroundTint="@color/secondaryColour"
android:backgroundTint="@color/primaryColour"
android:src="@drawable/ic_stop_icon"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -14,7 +14,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text=""
android:textColor="@color/white"
android:textColor="@color/secondaryColour"
android:textSize="30sp"
android:gravity="center"
app:layout_constraintEnd_toEndOf="parent"
@@ -35,7 +35,7 @@
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_margin="20dp"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
android:text=""
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -45,7 +45,7 @@
android:id="@+id/detail_location_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
android:text=""
/>
</ScrollView>

View File

@@ -19,6 +19,7 @@
<TextView
android:id="@+id/route_title"
android:textColor="@color/secondaryColour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="9dp"

View File

@@ -45,6 +45,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:textColor="@color/secondaryColour"
android:layout_marginTop="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.6"
@@ -58,7 +59,7 @@
android:layout_marginBottom="45dp"
android:backgroundTint="@color/secondaryColour"
android:text="@string/start_route"
android:textColor="@color/buttonColour"
android:textColor="@color/primaryColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
@@ -70,9 +71,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
android:text="@string/total_distance"
android:textColor="@color/buttonColour"
android:textColor="@color/secondaryColour"
app:layout_constraintBottom_toTopOf="@+id/start_route_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"

View File

@@ -25,7 +25,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/settings"
android:textColor="@color/white"
android:textColor="@color/secondaryColour"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -39,7 +39,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/textView"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
android:layout_marginHorizontal="20dp"
>
@@ -48,7 +48,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/language"
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/Balk"
@@ -59,7 +59,7 @@
android:id="@+id/Balk"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/black"
android:background="@color/secondaryColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -84,7 +84,7 @@
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginHorizontal="20dp"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
app:layout_constraintBottom_toTopOf="@id/Box3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -96,7 +96,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/imperial_system"
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/Balk2"
@@ -107,7 +107,7 @@
android:id="@+id/Balk2"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/black"
android:background="@color/buttonColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -131,7 +131,7 @@
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginHorizontal="20dp"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -142,7 +142,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/_65_mode"
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/Balk3"

View File

@@ -14,7 +14,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/statistics"
android:textColor="@color/white"
android:textColor="@color/secondaryColour"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -25,7 +25,7 @@
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginHorizontal="20dp"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
app:layout_constraintBottom_toTopOf="@id/Box2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -37,7 +37,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/total_distance"
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/Balk"
@@ -48,7 +48,7 @@
android:id="@+id/Balk"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/black"
android:background="@color/secondaryColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -59,7 +59,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -74,7 +74,7 @@
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginHorizontal="20dp"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
app:layout_constraintBottom_toTopOf="@id/Box3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -86,7 +86,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/visited_locations"
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/Balk2"
@@ -97,7 +97,7 @@
android:id="@+id/Balk2"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/black"
android:background="@color/secondaryColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -108,7 +108,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -123,7 +123,7 @@
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginHorizontal="20dp"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
app:layout_constraintBottom_toTopOf="@id/Box4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -133,7 +133,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/total_time"
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/Balk3"
@@ -144,7 +144,7 @@
android:id="@+id/Balk3"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/black"
android:background="@color/secondaryColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -155,7 +155,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -170,7 +170,7 @@
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginHorizontal="20dp"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.85"
@@ -182,7 +182,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/coupons_collected"
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/Balk4"
@@ -193,7 +193,7 @@
android:id="@+id/Balk4"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/black"
android:background="@color/secondaryColour"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -204,7 +204,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -16,9 +16,9 @@
android:layout_width="300dp"
android:layout_height="50dp"
android:text="@string/help"
android:textColor="@color/black"
android:textColor="@color/secondaryColour"
android:textAlignment="center"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
android:paddingVertical="10dp"/>
<ScrollView
@@ -35,7 +35,7 @@
android:layout_width="280dp"
android:layout_height="430dp"
android:text="@string/help_discription"
android:textColor="@color/white"
android:textColor="@color/secondaryColour"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="10dp"
@@ -49,6 +49,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:backgroundTint="@color/buttonColour"
android:text="ok"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/helpPopTitle" />

View File

@@ -4,7 +4,7 @@
android:layout_width="match_parent"
android:layout_height="50dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
android:id="@+id/locationItem"
android:layout_margin="20dp">
@@ -25,6 +25,7 @@
android:layout_height="47dp"
android:layout_marginStart="5dp"
android:gravity="left"
android:textColor="@color/secondaryColour"
android:text=""
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -4,7 +4,7 @@
android:layout_width="match_parent"
android:layout_height="50dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/secondaryColour"
android:background="@color/primaryColour"
android:id="@+id/routeItem"
android:layout_margin="20dp">
@@ -21,6 +21,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:textColor="@color/secondaryColour"
android:text=""
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -7,8 +7,8 @@
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="primaryColour">#FF115571</color>
<color name="secondaryColour">#FF31AFB4</color>
<color name="buttonColour">#FF14212D</color>
<color name="primaryColour">#FFFFFFFF</color>
<color name="secondaryColour">#FF000000</color>
<color name="buttonColour">#FF000000</color>
<color name="red">#FF0000</color>
</resources>