diff --git a/app/src/main/java/de/tadris/fitness/activity/EnterWorkoutActivity.java b/app/src/main/java/de/tadris/fitness/activity/EnterWorkoutActivity.java
index 2a46470..a21d2f4 100644
--- a/app/src/main/java/de/tadris/fitness/activity/EnterWorkoutActivity.java
+++ b/app/src/main/java/de/tadris/fitness/activity/EnterWorkoutActivity.java
@@ -131,7 +131,7 @@ public class EnterWorkoutActivity extends InformationActivity implements SelectW
typeTextView.setText(getString(workoutBuilder.getWorkoutType().title));
dateTextView.setText(SimpleDateFormat.getDateInstance().format(workoutBuilder.getStart().getTime()));
timeTextView.setText(SimpleDateFormat.getTimeInstance().format(workoutBuilder.getStart().getTime()));
- durationTextView.setText(UnitUtils.getHourMinuteTime(workoutBuilder.getDuration()));
+ durationTextView.setText(UnitUtils.getHourMinuteSecondTime(workoutBuilder.getDuration()));
}
private void showTypeSelection() {
diff --git a/app/src/main/java/de/tadris/fitness/dialog/DurationPickerDialogFragment.java b/app/src/main/java/de/tadris/fitness/dialog/DurationPickerDialogFragment.java
index f70429e..1023cee 100644
--- a/app/src/main/java/de/tadris/fitness/dialog/DurationPickerDialogFragment.java
+++ b/app/src/main/java/de/tadris/fitness/dialog/DurationPickerDialogFragment.java
@@ -46,7 +46,7 @@ public class DurationPickerDialogFragment {
NumberPicker hours = v.findViewById(R.id.durationPickerHours);
hours.setFormatter(value -> value + " " + context.getString(R.string.timeHourShort));
hours.setMinValue(0);
- hours.setMaxValue(60);
+ hours.setMaxValue(24);
hours.setValue(getInitialHours());
NumberPicker minutes = v.findViewById(R.id.durationPickerMinutes);
@@ -55,11 +55,17 @@ public class DurationPickerDialogFragment {
minutes.setMaxValue(60);
minutes.setValue(getInitialMinutes());
+ NumberPicker seconds = v.findViewById(R.id.durationPickerSeconds);
+ seconds.setFormatter(value -> value + " " + context.getString(R.string.timeSecondsShort));
+ seconds.setMinValue(0);
+ seconds.setMaxValue(60);
+ seconds.setValue(getInitialSeconds());
+
d.setView(v);
d.setNegativeButton(R.string.cancel, null);
d.setPositiveButton(R.string.okay, (dialog, which) -> {
- listener.onDurationPick(getMillisFromPick(hours.getValue(), minutes.getValue()));
+ listener.onDurationPick(getMillisFromPick(hours.getValue(), minutes.getValue(), seconds.getValue()));
});
d.create().show();
@@ -73,10 +79,15 @@ public class DurationPickerDialogFragment {
return (int) (initialDuration / 1000 / 60 % 60);
}
- private static long getMillisFromPick(int hours, int minutes) {
- long minuteInMillis = 1000L * 60;
+ private int getInitialSeconds() {
+ return (int) (initialDuration / 1000 % 60);
+ }
+
+ private static long getMillisFromPick(int hours, int minutes, int seconds) {
+ long secondInMillis = 1000L;
+ long minuteInMillis = secondInMillis * 60;
long hourInMillis = minuteInMillis * 60;
- return hours * hourInMillis + minutes * minuteInMillis;
+ return hours * hourInMillis + minutes * minuteInMillis + seconds * secondInMillis;
}
public interface DurationPickListener {
diff --git a/app/src/main/res/layout/dialog_duration_picker.xml b/app/src/main/res/layout/dialog_duration_picker.xml
index b1eab14..c8c53be 100644
--- a/app/src/main/res/layout/dialog_duration_picker.xml
+++ b/app/src/main/res/layout/dialog_duration_picker.xml
@@ -40,4 +40,15 @@
android:layout_height="wrap_content"
android:layout_margin="30dp" />
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 00e19ed..255cb43 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -53,6 +53,7 @@
Hour
Hours
h
+ s
and
Enter a valid number