diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ExerciseActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ExerciseActivity.java index dcf8b2a..7ba5964 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ExerciseActivity.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ExerciseActivity.java @@ -168,9 +168,13 @@ public class ExerciseActivity extends AppCompatActivity implements android.suppo @Override public void onLoadFinished(Loader loader, ExerciseSet set) { - this.set = set; + if(set != null) { + this.set = set; + } else { + this.set = new ExerciseSet(); + } - if(set.size() > 0) { + if(this.set.size() > 0) { setExercise(0); } else { // TODO IF THERE ARE NO EXERCISES ONLY SHOW TIMER : showTimer(); diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/TimerActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/TimerActivity.java index 8a258b2..b3ad752 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/TimerActivity.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/TimerActivity.java @@ -46,6 +46,9 @@ public class TimerActivity extends BaseActivity implements android.support.v4.ap private static final String PREF_PICKER_MINUTES = TAG + ".PREF_PICKER_MINUTES"; private static final String PREF_PICKER_HOURS = TAG + ".PREF_PICKER_HOURS"; + private static final String PREF_BREAK_PICKER_SECONDS = TAG + "PREF_BREAK_PICKER_SECONDS"; + private static final String PREF_BREAK_PICKER_MINUTES = TAG + "PREF_BREAK_PICKER_MINUTES"; + // UI private ProgressBar progressBar; private TextView timerText; @@ -54,6 +57,8 @@ public class TimerActivity extends BaseActivity implements android.support.v4.ap private NumberPicker secondsPicker; private NumberPicker minutesPicker; private NumberPicker hoursPicker; + private NumberPicker secondsBreakPicker; + private NumberPicker minutesBreakPicker; private LinearLayout pickerLayout; private Spinner exerciseSetSpinner; private ExerciseSetSpinnerAdapter exerciseSetAdapter; @@ -196,24 +201,38 @@ public class TimerActivity extends BaseActivity implements android.support.v4.ap hoursPicker = (NumberPicker) findViewById(R.id.hours_picker); pickerLayout = (LinearLayout) findViewById(R.id.picker_layout); + secondsBreakPicker = (NumberPicker) findViewById(R.id.seconds_break_picker); + minutesBreakPicker = (NumberPicker) findViewById(R.id.minutes_break_picker); + secondsPicker.setDisplayedValues(SECONDS_MINUTES); secondsPicker.setMinValue(0); secondsPicker.setMaxValue(SECONDS_MINUTES.length - 1); secondsPicker.setValue(pref.getInt(PREF_PICKER_SECONDS, 0)); + secondsBreakPicker.setDisplayedValues(SECONDS_MINUTES); + secondsBreakPicker.setMinValue(0); + secondsBreakPicker.setMaxValue(SECONDS_MINUTES.length - 1); + secondsBreakPicker.setValue(pref.getInt(PREF_BREAK_PICKER_SECONDS, 0)); minutesPicker.setDisplayedValues(SECONDS_MINUTES); minutesPicker.setMinValue(0); minutesPicker.setMaxValue(SECONDS_MINUTES.length - 1); minutesPicker.setValue(pref.getInt(PREF_PICKER_MINUTES, 30)); + minutesBreakPicker.setDisplayedValues(SECONDS_MINUTES); + minutesBreakPicker.setMinValue(0); + minutesBreakPicker.setMaxValue(SECONDS_MINUTES.length - 1); + minutesBreakPicker.setValue(pref.getInt(PREF_BREAK_PICKER_MINUTES, 0)); hoursPicker.setDisplayedValues(HOURS); hoursPicker.setMinValue(0); hoursPicker.setMaxValue(HOURS.length - 1); hoursPicker.setValue(pref.getInt(PREF_PICKER_HOURS, 1)); + setDividerColor(secondsPicker, R.color.transparent); setDividerColor(minutesPicker, R.color.transparent); setDividerColor(hoursPicker, R.color.transparent); + setDividerColor(secondsBreakPicker, R.color.transparent); + setDividerColor(minutesBreakPicker, R.color.transparent); } @@ -271,6 +290,12 @@ public class TimerActivity extends BaseActivity implements android.support.v4.ap saveCurrentSetDuration(); mTimerService.startTimer(duration); progressBar.setMax((int) duration); + + SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); + pref.edit() + .putInt(PREF_BREAK_PICKER_SECONDS, secondsBreakPicker.getValue()) + .putInt(PREF_BREAK_PICKER_MINUTES, minutesBreakPicker.getValue()) + .putLong("PAUSE TIME", getCurrentSetBreakTime()).apply(); } } } @@ -289,6 +314,12 @@ public class TimerActivity extends BaseActivity implements android.support.v4.ap return duration; } + private long getCurrentSetBreakTime() { + long breakTime = secondsBreakPicker.getValue() * 1000; + breakTime += minutesBreakPicker.getValue() * 1000 * 60; + return breakTime; + } + private void updateUI() { if(mTimerService != null) { updateUI(mTimerService.isRunning(), mTimerService.isPaused(), mTimerService.getInitialDuration(), mTimerService.getRemainingDuration()); diff --git a/app/src/main/res/layout/activity_timer.xml b/app/src/main/res/layout/activity_timer.xml index d81832b..bb9b526 100644 --- a/app/src/main/res/layout/activity_timer.xml +++ b/app/src/main/res/layout/activity_timer.xml @@ -62,7 +62,7 @@ app:layout_constraintTop_toTopOf="@id/spinner_choose_exercise_set" app:layout_constraintVertical_bias="0.0" /> --> - - - + android:layout_marginRight="8dp" + app:layout_constraintRight_toRightOf="parent" + android:layout_marginLeft="8dp" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintTop_toTopOf="parent" + android:layout_marginTop="8dp" + app:layout_constraintBottom_toBottomOf="parent" + android:layout_marginBottom="8dp"> + android:text="@string/activity_timer_choose_time"/> - + android:layout_height="wrap_content" + android:divider="@color/colorAccent" + android:dividerPadding="4dp" + android:gravity="center" + android:orientation="horizontal" + android:visibility="visible"> + + + + + + + + + + + + + android:text="@string/activity_timer_choose_break"/> - + android:layout_height="wrap_content" + android:divider="@color/colorAccent" + android:dividerPadding="4dp" + android:gravity="center" + android:orientation="horizontal" + android:visibility="visible"> + + + + + + + + + android:visibility="invisible" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + android:visibility="invisible" + app:layout_constraintTop_toTopOf="@+id/progressBar" + android:layout_marginTop="8dp" + android:layout_marginRight="8dp" + app:layout_constraintRight_toRightOf="@+id/progressBar" + android:layout_marginLeft="8dp" + app:layout_constraintLeft_toLeftOf="@+id/progressBar" + app:layout_constraintBottom_toBottomOf="@+id/progressBar" + android:layout_marginBottom="8dp" /> - + No Exercise Time remaining: + Select a work duration: + Select a break duration: