diff --git a/app/src/main/java/de/tadris/fitness/recording/goal/CalorieGoal.java b/app/src/main/java/de/tadris/fitness/recording/goal/CalorieGoal.java
new file mode 100644
index 0000000..2c91de9
--- /dev/null
+++ b/app/src/main/java/de/tadris/fitness/recording/goal/CalorieGoal.java
@@ -0,0 +1,22 @@
+package de.tadris.fitness.recording.goal;
+
+import de.tadris.fitness.R;
+
+public class CalorieGoal extends Goal {
+
+ private int calories;
+
+ public CalorieGoal(int calories) {
+ this.calories = calories;
+ }
+
+ @Override
+ int getName() {
+ return R.string.calories;
+ }
+
+ @Override
+ double getProgress(long duration, int distance, int calories) {
+ return (double) calories / this.calories;
+ }
+}
diff --git a/app/src/main/java/de/tadris/fitness/recording/goal/DistanceGoal.java b/app/src/main/java/de/tadris/fitness/recording/goal/DistanceGoal.java
new file mode 100644
index 0000000..d06e223
--- /dev/null
+++ b/app/src/main/java/de/tadris/fitness/recording/goal/DistanceGoal.java
@@ -0,0 +1,22 @@
+package de.tadris.fitness.recording.goal;
+
+import de.tadris.fitness.R;
+
+public class DistanceGoal extends Goal {
+
+ private int goalDistance;
+
+ public DistanceGoal(int goalDistance) {
+ this.goalDistance = goalDistance;
+ }
+
+ @Override
+ int getName() {
+ return R.string.workoutDistance;
+ }
+
+ @Override
+ double getProgress(long duration, int distance, int calories) {
+ return (double) distance / goalDistance;
+ }
+}
diff --git a/app/src/main/java/de/tadris/fitness/recording/goal/DurationGoal.java b/app/src/main/java/de/tadris/fitness/recording/goal/DurationGoal.java
new file mode 100644
index 0000000..e218f35
--- /dev/null
+++ b/app/src/main/java/de/tadris/fitness/recording/goal/DurationGoal.java
@@ -0,0 +1,22 @@
+package de.tadris.fitness.recording.goal;
+
+import de.tadris.fitness.R;
+
+public class DurationGoal extends Goal {
+
+ private long duration;
+
+ @Override
+ int getName() {
+ return R.string.workoutDuration;
+ }
+
+ public DurationGoal(long duration) {
+ this.duration = duration;
+ }
+
+ @Override
+ double getProgress(long duration, int distance, int calories) {
+ return (double) duration / this.duration;
+ }
+}
diff --git a/app/src/main/java/de/tadris/fitness/recording/goal/Goal.java b/app/src/main/java/de/tadris/fitness/recording/goal/Goal.java
new file mode 100644
index 0000000..00eec16
--- /dev/null
+++ b/app/src/main/java/de/tadris/fitness/recording/goal/Goal.java
@@ -0,0 +1,12 @@
+package de.tadris.fitness.recording.goal;
+
+import androidx.annotation.StringRes;
+
+abstract public class Goal {
+
+ @StringRes
+ abstract int getName();
+
+ abstract double getProgress(long duration, int distance, int calories);
+
+}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c3dc599..ee0b8f4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -62,6 +62,7 @@
Burned Energy
Total Energy
Energy Consumption
+ Calories
Ascent
Descent