From 3aaf275e248d5f45ab412c54849f5d27ddf67e31 Mon Sep 17 00:00:00 2001 From: Christopher Beckmann Date: Wed, 21 Mar 2018 13:24:31 +0100 Subject: [PATCH] Fixes #11, Worked on Issue #16. Still missing the deletion prevention. --- .../main/assets/databases/exercises.sqlite | Bin 240640 -> 240640 bytes .../activities/ExerciseActivity.java | 20 +-- .../activities/SettingsActivity.java | 3 - .../activities/SplashActivity.java | 5 +- .../activities/TimerActivity.java | 33 ++-- .../tutorial/FirstLaunchManager.java | 144 ++++++++++++++++++ .../activities/tutorial/PrefManager.java | 75 --------- .../activities/tutorial/TutorialActivity.java | 9 +- .../database/SQLiteHelper.java | 6 - .../receivers/NotificationCancelReceiver.java | 5 - .../NotificationDeletedReceiver.java | 2 +- .../receivers/TimerSchedulerReceiver.java | 10 +- .../service/TimerService.java | 4 +- app/src/main/res/layout/activity_timer.xml | 2 +- app/src/main/res/values-de/strings.xml | 8 + app/src/main/res/values/strings.xml | 8 + app/src/main/res/xml/pref_exercise.xml | 2 +- build.gradle | 2 +- 18 files changed, 202 insertions(+), 136 deletions(-) create mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/tutorial/FirstLaunchManager.java delete mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/tutorial/PrefManager.java diff --git a/app/src/main/assets/databases/exercises.sqlite b/app/src/main/assets/databases/exercises.sqlite index bc0011cbed7e90b31ec6810de1cdd6fdd204e46d..659bb6d17291e1f41dd94227e0a662b6dbc8cd24 100644 GIT binary patch delta 147 zcmZp;!PjtuZ-O-A@rg3djK?=7EMaG6U}4zI&heL-3&>z#ehGq``FI{O3otM+2r@DQ zNp40aAj!J(Arrays.asList("Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"))) + .apply(); + + loadInitialExerciseSets(); + } + } + + private void loadInitialExerciseSets() { + + Cursor setCursor = dbHandler.getExerciseSetsCursor(); + + if(setCursor != null && setCursor.getCount() > 0) { + List setList = new ArrayList<>(); + + while(setCursor.moveToNext()) { + setList.add(setCursor.getInt(setCursor.getColumnIndex(ExerciseSetColumns._ID))); + } + + setCursor.close(); + + for(Integer id : setList) { + dbHandler.clearExercisesFromSet(id); + dbHandler.deleteExerciseSet(id); + } + } + + long id1 = dbHandler.addExerciseSet(context.getString(R.string.set_default_1)); + long id2 = dbHandler.addExerciseSet(context.getString(R.string.set_default_2)); + long id3 = dbHandler.addExerciseSet(context.getString(R.string.set_default_3)); + long id4 = dbHandler.addExerciseSet(context.getString(R.string.set_default_4)); + long id5 = dbHandler.addExerciseSet(context.getString(R.string.set_default_5)); + + dbHandler.addExerciseToExerciseSet((int) id1, 1); + dbHandler.addExerciseToExerciseSet((int) id1, 2); + dbHandler.addExerciseToExerciseSet((int) id1, 3); + dbHandler.addExerciseToExerciseSet((int) id1, 4); + dbHandler.addExerciseToExerciseSet((int) id1, 5); + + dbHandler.addExerciseToExerciseSet((int) id2, 6); + dbHandler.addExerciseToExerciseSet((int) id2, 7); + dbHandler.addExerciseToExerciseSet((int) id2, 11); + dbHandler.addExerciseToExerciseSet((int) id2, 13); + dbHandler.addExerciseToExerciseSet((int) id2, 17); + + dbHandler.addExerciseToExerciseSet((int) id3, 16); + dbHandler.addExerciseToExerciseSet((int) id3, 20); + dbHandler.addExerciseToExerciseSet((int) id3, 25); + dbHandler.addExerciseToExerciseSet((int) id3, 26); + dbHandler.addExerciseToExerciseSet((int) id3, 34); + + dbHandler.addExerciseToExerciseSet((int) id4, 27); + dbHandler.addExerciseToExerciseSet((int) id4, 31); + dbHandler.addExerciseToExerciseSet((int) id4, 33); + dbHandler.addExerciseToExerciseSet((int) id4, 35); + dbHandler.addExerciseToExerciseSet((int) id4, 36); + + dbHandler.addExerciseToExerciseSet((int) id5, 27); + dbHandler.addExerciseToExerciseSet((int) id5, 28); + dbHandler.addExerciseToExerciseSet((int) id5, 29); + dbHandler.addExerciseToExerciseSet((int) id5, 36); + dbHandler.addExerciseToExerciseSet((int) id5, 39); + } + +} diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/tutorial/PrefManager.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/tutorial/PrefManager.java deleted file mode 100644 index 9439152..0000000 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/tutorial/PrefManager.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.secuso.privacyfriendlybreakreminder.activities.tutorial; - -import android.content.Context; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; - -import java.util.Arrays; -import java.util.HashSet; - -/** - * Class structure taken from tutorial at http://www.androidhive.info/2016/05/android-build-intro-slider-app/ - */ -public class PrefManager { - private static final String TAG = PrefManager.class.getSimpleName(); - - public static final String PREF_PICKER_SECONDS = TAG + ".PREF_PICKER_SECONDS"; - public static final String PREF_PICKER_MINUTES = TAG + ".PREF_PICKER_MINUTES"; - public static final String PREF_PICKER_HOURS = TAG + ".PREF_PICKER_HOURS"; - public static final String PREF_BREAK_PICKER_SECONDS = TAG + ".PREF_BREAK_PICKER_SECONDS"; - public static final String PREF_BREAK_PICKER_MINUTES = TAG + ".PREF_BREAK_PICKER_MINUTES"; - - public static final String DEFAULT_EXERCISE_SET = "DEFAULT_EXERCISE_SET"; - public static final String PAUSE_TIME = "PAUSE TIME"; - public static final String REPEAT_STATUS = "REPEAT_STATUS"; - public static final String REPEAT_EXERCISES = "REPEAT_EXERCISES"; - public static final String EXERCISE_DURATION = "pref_exercise_time"; - public static final String KEEP_SCREEN_ON_DURING_EXERCISE = "pref_keep_screen_on_during_exercise"; - public static final String PREF_SCHEDULE_EXERCISE_ENABLED = "pref_schedule_exercise"; - public static final String PREF_SCHEDULE_EXERCISE_DAYS_ENABLED = "pref_schedule_exercise_daystrigger"; - public static final String PREF_SCHEDULE_EXERCISE_DAYS = "pref_schedule_exercise_days"; - public static final String PREF_SCHEDULE_EXERCISE_TIME = "pref_schedule_exercise_time"; - public static final String PREF_EXERCISE_CONTINUOUS = "pref_exercise_continuous"; - public static final String WORK_TIME = "WORK_TIME"; - - - private SharedPreferences pref; - - private static final String IS_FIRST_TIME_LAUNCH = "IsFirstTimeLaunch"; - - public PrefManager(Context context) { - pref = PreferenceManager.getDefaultSharedPreferences(context); - } - - public void setFirstTimeLaunch(boolean isFirstTime) { - pref.edit().putBoolean(IS_FIRST_TIME_LAUNCH, isFirstTime).apply(); - } - - public boolean isFirstTimeLaunch() { - boolean isFirstTimeLaunch = pref.getBoolean(IS_FIRST_TIME_LAUNCH, true); - - if(isFirstTimeLaunch) - pref.edit() - .putLong(DEFAULT_EXERCISE_SET, 0L) - .putLong(PAUSE_TIME, 5 * 60 * 1000) // 5 minutes - .putBoolean(REPEAT_STATUS, false) - .putBoolean(REPEAT_EXERCISES, false) - .putInt(PREF_BREAK_PICKER_SECONDS, 0) - .putInt(PREF_BREAK_PICKER_MINUTES, 5) - .putInt(PREF_PICKER_SECONDS, 0) - .putInt(PREF_PICKER_MINUTES, 0) - .putInt(PREF_PICKER_HOURS, 1) - .putLong(WORK_TIME, 1000L * 60L * 60L) // 1 hour - .putString(EXERCISE_DURATION, "30") - .putBoolean(PREF_SCHEDULE_EXERCISE_DAYS_ENABLED, false) - .putBoolean(PREF_SCHEDULE_EXERCISE_ENABLED, false) - .putLong(PREF_SCHEDULE_EXERCISE_TIME, 32400000L) - .putBoolean(KEEP_SCREEN_ON_DURING_EXERCISE, true) - .putBoolean(PREF_EXERCISE_CONTINUOUS, false) - .putStringSet(PREF_SCHEDULE_EXERCISE_DAYS, new HashSet(Arrays.asList("Mo","Di","Mi","Do","Fr","Sa","So"))) - .apply(); - - return isFirstTimeLaunch; - } - -} diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/tutorial/TutorialActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/tutorial/TutorialActivity.java index ebcd3e6..25e57bd 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/tutorial/TutorialActivity.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/tutorial/TutorialActivity.java @@ -21,7 +21,6 @@ import android.widget.TextView; import org.secuso.privacyfriendlybreakreminder.R; import org.secuso.privacyfriendlybreakreminder.activities.ManageExerciseSetsActivity; -import org.secuso.privacyfriendlybreakreminder.activities.TimerActivity; /** * Class structure taken from tutorial at http://www.androidhive.info/2016/05/android-build-intro-slider-app/ @@ -46,7 +45,7 @@ public class TutorialActivity extends AppCompatActivity { private LinearLayout dotsLayout; private TextView[] dots; private Button btnSkip, btnNext; - private PrefManager prefManager; + private FirstLaunchManager firstLaunchManager; private static final String TAG = TutorialActivity.class.getSimpleName(); public static final String ACTION_SHOW_ANYWAYS = TAG + ".ACTION_SHOW_ANYWAYS"; @@ -56,7 +55,7 @@ public class TutorialActivity extends AppCompatActivity { super.onCreate(savedInstanceState); // Checking for first time launch - before calling setContentView() - prefManager = new PrefManager(this); + firstLaunchManager = new FirstLaunchManager(this); Intent i = getIntent(); // Making notification bar transparent @@ -133,10 +132,10 @@ public class TutorialActivity extends AppCompatActivity { private void launchHomeScreen() { - if(prefManager.isFirstTimeLaunch()) { + if(firstLaunchManager.isFirstTimeLaunch()) { Intent intent = new Intent(TutorialActivity.this, ManageExerciseSetsActivity.class); //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - prefManager.setFirstTimeLaunch(false); + firstLaunchManager.setFirstTimeLaunch(false); startActivity(intent); } diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/database/SQLiteHelper.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/database/SQLiteHelper.java index 967281f..6e480d0 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/database/SQLiteHelper.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/database/SQLiteHelper.java @@ -5,9 +5,7 @@ import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteOpenHelper; import android.support.annotation.NonNull; -import android.util.Log; import com.readystatesoftware.sqliteasset.SQLiteAssetHelper; @@ -17,10 +15,6 @@ import org.secuso.privacyfriendlybreakreminder.database.columns.ExerciseColumns; import org.secuso.privacyfriendlybreakreminder.database.columns.ExerciseLocalColumns; import org.secuso.privacyfriendlybreakreminder.database.data.ExerciseSet; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/NotificationCancelReceiver.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/NotificationCancelReceiver.java index 969e4b5..753d735 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/NotificationCancelReceiver.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/NotificationCancelReceiver.java @@ -4,14 +4,9 @@ import android.app.NotificationManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.preference.PreferenceManager; import org.secuso.privacyfriendlybreakreminder.service.TimerService; -import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_EXERCISE_CONTINUOUS; - /** * @author Christopher Beckmann * @version 2.0 diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/NotificationDeletedReceiver.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/NotificationDeletedReceiver.java index d909f85..beae57e 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/NotificationDeletedReceiver.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/NotificationDeletedReceiver.java @@ -8,7 +8,7 @@ import android.preference.PreferenceManager; import org.secuso.privacyfriendlybreakreminder.service.TimerService; -import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_EXERCISE_CONTINUOUS; +import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.FirstLaunchManager.PREF_EXERCISE_CONTINUOUS; /** * @author Christopher Beckmann diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/TimerSchedulerReceiver.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/TimerSchedulerReceiver.java index 6562597..59560f9 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/TimerSchedulerReceiver.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/TimerSchedulerReceiver.java @@ -20,11 +20,11 @@ import java.util.Calendar; import java.util.HashSet; import java.util.Set; -import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_SCHEDULE_EXERCISE_DAYS; -import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_SCHEDULE_EXERCISE_DAYS_ENABLED; -import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_SCHEDULE_EXERCISE_ENABLED; -import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_SCHEDULE_EXERCISE_TIME; -import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.WORK_TIME; +import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.FirstLaunchManager.PREF_SCHEDULE_EXERCISE_DAYS; +import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.FirstLaunchManager.PREF_SCHEDULE_EXERCISE_DAYS_ENABLED; +import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.FirstLaunchManager.PREF_SCHEDULE_EXERCISE_ENABLED; +import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.FirstLaunchManager.PREF_SCHEDULE_EXERCISE_TIME; +import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.FirstLaunchManager.WORK_TIME; /** * @author Christopher Beckmann diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java index 3f92d42..d0dfe03 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java @@ -28,8 +28,8 @@ import java.util.Locale; import static android.app.PendingIntent.FLAG_CANCEL_CURRENT; import static android.app.PendingIntent.FLAG_UPDATE_CURRENT; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; -import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_EXERCISE_CONTINUOUS; -import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.WORK_TIME; +import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.FirstLaunchManager.PREF_EXERCISE_CONTINUOUS; +import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.FirstLaunchManager.WORK_TIME; import static org.secuso.privacyfriendlybreakreminder.receivers.NotificationCancelReceiver.ACTION_NOTIFICATION_CANCELED; import static org.secuso.privacyfriendlybreakreminder.receivers.NotificationDeletedReceiver.ACTION_NOTIFICATION_DELETED; diff --git a/app/src/main/res/layout/activity_timer.xml b/app/src/main/res/layout/activity_timer.xml index 7c60d89..73c1293 100644 --- a/app/src/main/res/layout/activity_timer.xml +++ b/app/src/main/res/layout/activity_timer.xml @@ -243,7 +243,7 @@ app:np_min="0"/> + Nacken-Kopf-Beschwerden + Schulter-Arm-Beschwerden + Rückenbeschwerden + Hüftbeschwerden + Kniebeschwerden + \ 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 41fa48c..b09cc87 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -134,4 +134,12 @@ Tatjana Albrandt + + Neck-Head + Shoulder and Arms + Back + Hips + Knee + + diff --git a/app/src/main/res/xml/pref_exercise.xml b/app/src/main/res/xml/pref_exercise.xml index e0a4d3c..fc94ede 100644 --- a/app/src/main/res/xml/pref_exercise.xml +++ b/app/src/main/res/xml/pref_exercise.xml @@ -8,7 +8,7 @@ android:title="@string/pref_keep_screen_on_during_exercise" />