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 9245622..420a85e 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ExerciseActivity.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ExerciseActivity.java @@ -52,6 +52,8 @@ import static org.secuso.privacyfriendlybreakreminder.service.TimerService.ACTIO public class ExerciseActivity extends AppCompatActivity implements android.support.v4.app.LoaderManager.LoaderCallbacks { private static final String TAG = ExerciseActivity.class.getSimpleName(); + private static boolean confirmationDialogShown = false; + private static boolean endDialogShown = false; // UI private TextView breakTimerText; @@ -204,13 +206,25 @@ public class ExerciseActivity extends AppCompatActivity implements android.suppo Intent intent = new Intent(ExerciseActivity.this, TimerActivity.class); intent.addFlags(FLAG_ACTIVITY_CLEAR_TOP); + // start the next timer if continuous is activated + SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); + if(pref.getBoolean(PrefManager.PREF_EXERCISE_CONTINUOUS, false)) { + Intent timerServiceIntent = new Intent(this.getApplicationContext(), TimerService.class); + timerServiceIntent.setAction(TimerService.ACTION_START_TIMER); + startService(timerServiceIntent); + } + super.finish(); - ExerciseActivity.this.startActivity(intent); - ExerciseActivity.this.overridePendingTransition(0, 0); + + if(isActivityVisible) { + ExerciseActivity.this.startActivity(intent); + ExerciseActivity.this.overridePendingTransition(0, 0); + } } private static void showConfirmationDialog(final ExerciseActivity activity) { - if (activity.isActivityVisible) { + if (activity.isActivityVisible && !confirmationDialogShown) { + confirmationDialogShown = true; new AlertDialog.Builder(activity) .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { @Override @@ -225,12 +239,19 @@ public class ExerciseActivity extends AppCompatActivity implements android.suppo } }) .setMessage(R.string.dialog_leave_break_confirmation) + .setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override + public void onDismiss(DialogInterface dialog) { + confirmationDialogShown = false; + } + }) .create().show(); } } private static void showEndDialog(final ExerciseActivity activity) { - if (activity.isActivityVisible) { + if (activity.isActivityVisible && !endDialogShown) { + endDialogShown = true; new AlertDialog.Builder(activity) .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { @Override @@ -246,6 +267,12 @@ public class ExerciseActivity extends AppCompatActivity implements android.suppo }) .setTitle(R.string.dialog_end_break_confirmation_title) .setMessage(R.string.dialog_end_break_confirmation) + .setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override + public void onDismiss(DialogInterface dialog) { + endDialogShown = false; + } + }) .create().show(); } } @@ -274,6 +301,12 @@ public class ExerciseActivity extends AppCompatActivity implements android.suppo super.onPause(); isActivityVisible = false; + if(isBreakFinished) { + // TODO: Either start a short Timer to see if the user comes back - or start the next work time rand finish this activity + // TODO: for now we just finish + finish(); + } + getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } @@ -592,7 +625,11 @@ public class ExerciseActivity extends AppCompatActivity implements android.suppo updateBreakTimer(remainingBreakDuration); updateBigProgress(remainingBreakDuration); - showEndDialog(ExerciseActivity.this); + if(isActivityVisible) { + showEndDialog(ExerciseActivity.this); + } else { + finish(); + } getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } diff --git a/app/src/main/res/drawable/BreakReminder_10.png b/app/src/main/res/drawable/BreakReminder_10.png index b5c4f2a..84aeb6d 100644 Binary files a/app/src/main/res/drawable/BreakReminder_10.png and b/app/src/main/res/drawable/BreakReminder_10.png differ diff --git a/app/src/main/res/drawable/BreakReminder_23.png b/app/src/main/res/drawable/BreakReminder_23.png index 14e4676..190a5dc 100644 Binary files a/app/src/main/res/drawable/BreakReminder_23.png and b/app/src/main/res/drawable/BreakReminder_23.png differ diff --git a/app/src/main/res/drawable/BreakReminder_46.png b/app/src/main/res/drawable/BreakReminder_46.png index e6a3242..326e5fe 100644 Binary files a/app/src/main/res/drawable/BreakReminder_46.png and b/app/src/main/res/drawable/BreakReminder_46.png differ diff --git a/app/src/main/res/drawable/BreakReminder_47.png b/app/src/main/res/drawable/BreakReminder_47.png index 91be5b4..f0179ef 100644 Binary files a/app/src/main/res/drawable/BreakReminder_47.png and b/app/src/main/res/drawable/BreakReminder_47.png differ diff --git a/app/src/main/res/drawable/BreakReminder_56.png b/app/src/main/res/drawable/BreakReminder_56.png index 8ecd38b..2b29ba9 100644 Binary files a/app/src/main/res/drawable/BreakReminder_56.png and b/app/src/main/res/drawable/BreakReminder_56.png differ diff --git a/app/src/main/res/drawable/BreakReminder_7.png b/app/src/main/res/drawable/BreakReminder_7.png index 9d3bc0a..8fcb15b 100644 Binary files a/app/src/main/res/drawable/BreakReminder_7.png and b/app/src/main/res/drawable/BreakReminder_7.png differ diff --git a/app/src/main/res/drawable/BreakReminder_9.png b/app/src/main/res/drawable/BreakReminder_9.png index 608eac5..8ed1d82 100644 Binary files a/app/src/main/res/drawable/BreakReminder_9.png and b/app/src/main/res/drawable/BreakReminder_9.png differ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f77a67f..08e26f3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -84,7 +84,7 @@ Privacy Friendly Break Reminder Version Authors: - Christopher Beckmann, Sergej Alexeev,\nJannik Schildknecht + Christopher Beckmann %s and contributors. In affiliation with More Information can be found on: