From 16c42ec3503601494f5b26c08f17b56af4e09ac5 Mon Sep 17 00:00:00 2001 From: jannis Date: Wed, 11 Mar 2020 12:21:51 +0100 Subject: [PATCH] Selection of seconds when entering workouts --- .../activity/EnterWorkoutActivity.java | 2 +- .../dialog/DurationPickerDialogFragment.java | 21 ++++++++++++++----- .../res/layout/dialog_duration_picker.xml | 11 ++++++++++ app/src/main/res/values/strings.xml | 1 + 4 files changed, 29 insertions(+), 6 deletions(-) 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