From cc83286330eccfca4e300bde383150d866ad6071 Mon Sep 17 00:00:00 2001 From: Christopher Beckmann Date: Thu, 26 Oct 2017 13:22:25 +0200 Subject: [PATCH] Cleanup of old code and Bugfixing. --- app/src/main/AndroidManifest.xml | 4 - .../adapter/ExerciseSetListAdapter.java | 1 + .../activities/old/BreakActivity.java | 461 -------------- .../activities/old/BreakDeciderActivity.java | 37 -- .../activities/old/BreakReminder.java | 561 ------------------ .../activities/old/ExerciseTypeActivity.java | 80 --- .../activities/old/ProfileActivity.java | 153 ----- .../preferences/DynamicListPreference.java | 79 --- .../preferences/ExerciseListPreference.java | 107 ---- .../preferences/SeekBarPreference.java | 180 ------ .../widget/AppWidget.java | 177 ------ .../res/layout-v21/layout_exercise_set.xml | 108 ---- app/src/main/res/layout/activity_break.xml | 132 ----- .../res/layout/activity_break_decider.xml | 50 -- .../layout/activity_break_no_exercises.xml | 49 -- .../res/layout/activity_break_reminder.xml | 25 - .../res/layout/app_bar_break_reminder.xml | 31 - app/src/main/res/layout/app_widget2x1.xml | 39 -- app/src/main/res/layout/app_widget2x2.xml | 40 -- app/src/main/res/layout/app_widget3x3.xml | 40 -- app/src/main/res/layout/app_widget4x4.xml | 40 -- .../res/layout/content_break_reminder.xml | 69 --- app/src/main/res/layout/exercise_type.xml | 88 --- app/src/main/res/layout/first_dialog.xml | 92 --- app/src/main/res/layout/help_content.xml | 47 -- app/src/main/res/layout/help_overview.xml | 13 - .../main/res/layout/layout_exercise_set.xml | 3 +- app/src/main/res/layout/new_profile.xml | 189 ------ app/src/main/res/layout/spinner_layout.xml | 9 - app/src/main/res/layout/statistics.xml | 15 - app/src/main/res/values/strings.xml | 79 --- app/src/main/res/xml/app_widget2x1_info.xml | 10 - app/src/main/res/xml/app_widget2x2_info.xml | 10 - app/src/main/res/xml/app_widget3x3_info.xml | 10 - app/src/main/res/xml/app_widget4x4_info.xml | 10 - app/src/main/res/xml/pref_help.xml | 55 -- 36 files changed, 3 insertions(+), 3090 deletions(-) delete mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/BreakActivity.java delete mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/BreakDeciderActivity.java delete mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/BreakReminder.java delete mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/ExerciseTypeActivity.java delete mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/ProfileActivity.java delete mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/preferences/DynamicListPreference.java delete mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/preferences/ExerciseListPreference.java delete mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/preferences/SeekBarPreference.java delete mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/widget/AppWidget.java delete mode 100644 app/src/main/res/layout-v21/layout_exercise_set.xml delete mode 100644 app/src/main/res/layout/activity_break.xml delete mode 100644 app/src/main/res/layout/activity_break_decider.xml delete mode 100644 app/src/main/res/layout/activity_break_no_exercises.xml delete mode 100644 app/src/main/res/layout/activity_break_reminder.xml delete mode 100644 app/src/main/res/layout/app_bar_break_reminder.xml delete mode 100644 app/src/main/res/layout/app_widget2x1.xml delete mode 100644 app/src/main/res/layout/app_widget2x2.xml delete mode 100644 app/src/main/res/layout/app_widget3x3.xml delete mode 100644 app/src/main/res/layout/app_widget4x4.xml delete mode 100644 app/src/main/res/layout/content_break_reminder.xml delete mode 100644 app/src/main/res/layout/exercise_type.xml delete mode 100644 app/src/main/res/layout/first_dialog.xml delete mode 100644 app/src/main/res/layout/help_content.xml delete mode 100644 app/src/main/res/layout/help_overview.xml delete mode 100644 app/src/main/res/layout/new_profile.xml delete mode 100644 app/src/main/res/layout/spinner_layout.xml delete mode 100644 app/src/main/res/layout/statistics.xml delete mode 100644 app/src/main/res/xml/app_widget2x1_info.xml delete mode 100644 app/src/main/res/xml/app_widget2x2_info.xml delete mode 100644 app/src/main/res/xml/app_widget3x3_info.xml delete mode 100644 app/src/main/res/xml/app_widget4x4_info.xml delete mode 100644 app/src/main/res/xml/pref_help.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2848cfe..010eff8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,10 +24,6 @@ android:value="org.secuso.privacyfriendlybreakreminder.activities.TimerActivity" /> - - diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/adapter/ExerciseSetListAdapter.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/adapter/ExerciseSetListAdapter.java index e4aa079..c18d361 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/adapter/ExerciseSetListAdapter.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/adapter/ExerciseSetListAdapter.java @@ -61,6 +61,7 @@ public class ExerciseSetListAdapter extends RecyclerView.Adapter exerciseList; - private SharedPreferences sharedPrefs; - private TextView description, side_repetition, break_exercise_type, execution; - private int currentExercise, breakTime = 0, currentExerciseSection; - private ImageView image; - private String[] exercises; - private SQLiteHelper SQLiteHelper; - private List> allAvailableExercises; - private List sections; - private Random random; - private boolean exerciseSide = false; - private AlertDialog.Builder builder; - private AlertDialog ad; - private TextView SecBreak; - private int breakTimeLeft = 10; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - currentExercise = 0; - currentExerciseSection = 0; - sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); - int mins = sharedPrefs.getInt("break_value", 5) + 1; - String bufferZeroMinute = ""; - - if (mins < 10) - bufferZeroMinute = "0"; - - String[] allProfiles = sharedPrefs.getString("profiles", "").split(";"); - String currentProfile = sharedPrefs.getString("name_text", ""); - - for (int i = 0; i < allProfiles.length; i++) { - if (allProfiles[i].split(",")[0].equals(currentProfile) && !allProfiles[i].split(",")[4].equals("-1")) { - exercises = allProfiles[i].split(",")[4].split("\\."); - } - } - View view; - if (exercises == null) { - setContentView(R.layout.activity_break_no_exercises); - Button cancelButton = (Button) findViewById(R.id.button_cancel); - cancelButton.setOnClickListener(this); - ct_text = (TextView) findViewById(R.id.textViewBreak1); - - ct_text.setText(bufferZeroMinute + mins + ":00"); - ct_text.setOnClickListener(this); - - view = (View) findViewById(R.id.textViewBreak1); - noExercises = true; - } else { - setContentView(R.layout.activity_break); - Button nextButton = (Button) findViewById(R.id.button_next); - nextButton.setOnClickListener(this); - ct_text = (TextView) findViewById(R.id.textViewBreak); - ct_text.setText(bufferZeroMinute + mins + ":00"); - ct_text.setOnClickListener(this); - - SQLiteHelper = new SQLiteHelper(this); - random = new Random(); - sections = new ArrayList<>(); - setRandomExercises(); - view = (View) findViewById(R.id.textViewBreak); - // Creates a dialog showing the duration of the break between exercises - - breakTimeLeft = 10; - SecBreak = (TextView) findViewById(R.id.textViewBreakTime); - SecBreak.setText("" + breakTimeLeft); - SecBreak.setTextColor(getResources().getColor(R.color.red)); - } - - //Keep screen on while on break - getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - - // Start timer - onClick(view); - - } - - @Override - protected void onPause() { - super.onPause(); - //ct.cancel(); - } - - public void onClick(View v) { - int mins = sharedPrefs.getInt("break_value", 10) + 1; - String bufferZeroMinute = ""; - String bufferZeroSecond = ""; - int time = mins * 60 * 1000; - - if (stopTime == "" && !isRunning) { - if (time / 1000 / 60 < 10) - bufferZeroMinute = "0"; - - ct_text.setText(bufferZeroMinute + time / 1000 / 60 + ":00"); - } else if (!isRunning) { - ct_text.setText(stopTime); - String stringTime = (String) ct_text.getText(); - String[] timef = stringTime.split(":"); - int minute = Integer.parseInt(timef[0]); - int second = Integer.parseInt(timef[1]); - time = (1000 * (minute * 60)) + (1000 * second); - - if (minute < 10) - bufferZeroMinute = "0"; - if (second < 10) - bufferZeroSecond = "0"; - - ct_text.setText(bufferZeroMinute + minute + ":" + bufferZeroSecond + second); - - } - - switch (v.getId()) { - - case R.id.textViewBreak1: - case R.id.textViewBreak: - if (isRunning) { - ct.cancel(); - stopTime = (String) ct_text.getText(); - isRunning = false; - } else { - startTimer(time); - } - break; - - - case R.id.button_cancel: - if (ct != null) - ct.cancel(); - finish(); - break; - - case R.id.button_next: - - // Next Exercise - currentExercise++; - side_repetition.setText(R.string.exercise_break); - - // FIXME Set additional 10 Sek Countdown - builder = new AlertDialog.Builder(v.getContext()); - breakTimeLeft = 10; - SecBreak = (TextView) findViewById(R.id.textViewBreakTime); - SecBreak.setText("" + breakTimeLeft); - SecBreak.setTextColor(getResources().getColor(R.color.red)); - builder.setMessage("10sec " + getResources().getText(R.string.exercise_break).toString()); - //ad = builder.show(); - - if (currentExercise > exerciseList.size() - 1) { - currentExercise = 0; - if (sections.size() == allAvailableExercises.size()) { - System.out.println("Did all exercises, restart!"); - sections = new ArrayList<>(); - } - while (true) { - - currentExerciseSection = currentExerciseSection + 1 % allAvailableExercises.size(); - if (!sections.contains(currentExerciseSection)) { - sections.add(currentExerciseSection); - exerciseList = allAvailableExercises.get(currentExerciseSection); - System.out.println("Random id for section election: " + currentExerciseSection); - break; - } - - } - } - - //Set description and execution text of current exercise - description.setText(exerciseList.get(currentExercise).getDescription()); - execution.setText(exerciseList.get(currentExercise).getExecution()); - - setExerciseImage(); - - //Update Timer - String[] currentTime = ((String) ct_text.getText()).split(":"); - int minute = Integer.parseInt(currentTime[0]); - int second = Integer.parseInt(currentTime[1]); - - if (second != 0) { - ct.cancel(); - breakTime = 0; - if (minute == 0 && second > 0) { - minute = 1; - second = 0; - } else if (minute > 0 && second > 0) { - minute++; - second = 0; - } - if (minute < 10) - bufferZeroMinute = "0"; - if (second < 10) - bufferZeroSecond = "0"; - - if (isRunning) { - time = minute * 60 * 1000; - startTimer(time); - } else { - stopTime = bufferZeroMinute + minute + ":" + bufferZeroSecond + second; - ct_text.setText(stopTime); - } - } - - break; - } - } - - - private void setRandomExercises() { - - allAvailableExercises = new ArrayList<>(); - - String usedSectionsString = sharedPrefs.getString("currently_done_exercises", ""); - System.out.println("Number of used sections " + usedSectionsString.split("\\.").length + " " + usedSectionsString); - SharedPreferences.Editor editor = sharedPrefs.edit(); - - if (exercises.length <= usedSectionsString.split("\\.").length) { - usedSectionsString = ""; - } - - //Selection of the Section - boolean notFoundYet = true; - - while (notFoundYet) { - currentExerciseSection = random.nextInt(exercises.length); - if (!usedSectionsString.contains(exercises[currentExerciseSection])) { - List list = SQLiteHelper.getExercisesFromSection("de",exercises[currentExerciseSection]); - allAvailableExercises.add(list); - usedSectionsString += exercises[currentExerciseSection] + "."; - editor.putString("currently_done_exercises", usedSectionsString); - notFoundYet = false; - System.out.println("Section: " + exercises[currentExerciseSection] + " and number of ex for it: " + list.size()); - } - } - - editor.apply(); - - currentExerciseSection = 0; - Collections.shuffle(allAvailableExercises.get(currentExerciseSection)); - - String allExe = ""; - for (int i = 0; i < allAvailableExercises.get(currentExerciseSection).size(); i++) - allExe += allAvailableExercises.get(currentExerciseSection).get(i).getImageID() + " "; - - System.out.println("Random list for section election: " + allExe); - - // Set exercise list to current section - exerciseList = allAvailableExercises.get(currentExerciseSection); - sections.add(currentExerciseSection); - - description = (TextView) findViewById(R.id.textViewDescription); - description.setText(exerciseList.get(currentExercise).getDescription()); - - execution = (TextView) findViewById(R.id.textViewExecution); - execution.setText(exerciseList.get(currentExercise).getExecution()); - - side_repetition = (TextView) findViewById(R.id.textSideRepetition); - side_repetition.setText(R.string.exercise_break); - - break_exercise_type = (TextView) findViewById(R.id.break_exercise_type); - break_exercise_type.setText(exerciseList.get(currentExercise).getSection(this)); - - setExerciseImage(); - } - - private void setExerciseImage() { - String imageID = exerciseList.get(currentExercise).getImageID(); - image = (ImageView) findViewById(R.id.imageMid); - if (imageID.split(",").length == 1) { - sideRepetition = getResources().getText(R.string.exercise_repetition).toString(); - - image1 = imageID; - exerciseSide = false; - int imageResID = getResources().getIdentifier("exercise_" + image1, "drawable", getPackageName()); - image.setImageResource(imageResID); - } else { - // There are 2 sides for an exercise - exerciseSide = true; - sideRepetition = getResources().getText(R.string.exercise_side).toString(); - image1 = imageID.split(",")[0]; - image2 = imageID.split(",")[1]; - - //image ID from Resource - int imageResID = getResources().getIdentifier("exercise_" + image1, "drawable", getPackageName()); - image.setImageResource(imageResID); - - } - } - - - private void update() { - //After 10 seconds first side/repetition, then after 20 seconds break for 10 seconds, afterwards second side/repetition and after 20 seconds break and new exercise - breakTime++; - - - - - breakTimeLeft--; - - SecBreak = (TextView) findViewById(R.id.textViewBreakTime); - SecBreak.setText("" + breakTimeLeft); - - - switch (breakTime) { - case 10: - side_repetition.setText(sideRepetition + " 1"); - - // Cancel dialog - breakTimeLeft = 20; - SecBreak = (TextView) findViewById(R.id.textViewBreakTime); - SecBreak.setText("" + breakTimeLeft); - SecBreak.setTextColor(getResources().getColor(R.color.black)); - - break; - case 30: - - // Set additional 10 seconds countdown - breakTimeLeft = 10; - SecBreak = (TextView) findViewById(R.id.textViewBreakTime); - SecBreak.setText(""+ breakTimeLeft); - SecBreak.setTextColor(getResources().getColor(R.color.red)); - - side_repetition.setText(R.string.exercise_break); - //If exercise contains 2 images, set ImageView to the second image - if (exerciseSide) { - int imageResID = getResources().getIdentifier("exercise_" + image2, "drawable", getPackageName()); - image.setImageResource(imageResID); - } - break; - case 40: - // Cancel dialog - breakTimeLeft = 20; - SecBreak = (TextView) findViewById(R.id.textViewBreakTime); - SecBreak.setText("" + breakTimeLeft); - SecBreak.setTextColor(getResources().getColor(R.color.black)); - - side_repetition.setText(sideRepetition + " 2"); - break; - case 60: - breakTime = 0; - currentExercise++; - if (currentExercise > exerciseList.size() - 1) { - currentExercise = 0; - if (sections.size() == allAvailableExercises.size()) { - System.out.println("Did all exercises, restart!"); - sections = new ArrayList<>(); - } - while (true) { - - currentExerciseSection = currentExerciseSection + 1 % allAvailableExercises.size(); - if (!sections.contains(currentExerciseSection)) { - sections.add(currentExerciseSection); - exerciseList = allAvailableExercises.get(currentExerciseSection); - System.out.println("Random id for section election: " + currentExerciseSection); - break; - } - - } - } - description.setText(exerciseList.get(currentExercise).getDescription()); - execution.setText(exerciseList.get(currentExercise).getExecution()); - - breakTimeLeft = 10; - SecBreak = (TextView) findViewById(R.id.textViewBreakTime); - SecBreak.setText(""+ breakTimeLeft); - SecBreak.setTextColor(getResources().getColor(R.color.red)); - - side_repetition.setText(R.string.exercise_break); - - setExerciseImage(); - break; - } - } - - private void startTimer(int time) { - - ct = new CountDownTimer(time, 1000) { - boolean timeLeft = false; - - public void onTick(long millisUntilFinished) { - String bufferZeroMinute = ""; - String bufferZeroSecond = ""; - - if ((millisUntilFinished / 1000) / 60 < 10) - bufferZeroMinute = "0"; - - if (millisUntilFinished / 1000 % 60 < 10) - bufferZeroSecond = "0"; - - ct_text.setText(bufferZeroMinute + (millisUntilFinished / 1000) / 60 + ":" + bufferZeroSecond + millisUntilFinished / 1000 % 60); - - - // Update image and description of the exercise if available - if (!noExercises) - update(); - } - - public void onFinish() { - isRunning = false; - ct_text.setText("00:00"); - //Trigger the alarm - //String ringPref = sharedPrefs.getString("notifications_new_message_ringtone", ""); - - //if (!ringPref.equals("")) { - //Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), Uri.parse(ringPref)); - //r.play(); - //} - - //Vibration - //boolean vibrateChecked = sharedPrefs.getBoolean("notifications_new_message_vibrate", false); - //if (vibrateChecked) { - // Get instance of Vibrator from current Context - //Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); - - //if (v != null) { - // Vibrate for 1500 milliseconds - //v.vibrate(1500); - //} - //} - - //Remove lag to keep screen on when the break ends - getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - - //Close database connection - if (!noExercises) - SQLiteHelper.close(); - finish(); - } - }.start(); - isRunning = true; - } -} diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/BreakDeciderActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/BreakDeciderActivity.java deleted file mode 100644 index d34cb83..0000000 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/BreakDeciderActivity.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.secuso.privacyfriendlybreakreminder.activities.old; - -import android.content.Intent; -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.view.View; -import android.widget.Button; - -import org.secuso.privacyfriendlybreakreminder.R; -import org.secuso.privacyfriendlybreakreminder.activities.old.BreakActivity; - -public class BreakDeciderActivity extends AppCompatActivity implements View.OnClickListener { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_break_decider); - - Button skipButton = (Button)findViewById(R.id.button_skip); - skipButton.setOnClickListener(this); - Button breakButton = (Button)findViewById(R.id.button_break); - breakButton.setOnClickListener(this); - } - - public void onClick(View v) { - switch (v.getId()) { - case R.id.button_skip: - finish(); - break; - case R.id.button_break: - finish(); - Intent intent = new Intent(this, BreakActivity.class); - this.startActivity(intent); - break; - } - } -} diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/BreakReminder.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/BreakReminder.java deleted file mode 100644 index 03bdd52..0000000 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/BreakReminder.java +++ /dev/null @@ -1,561 +0,0 @@ -package org.secuso.privacyfriendlybreakreminder.activities.old; - -import android.app.Activity; -import android.app.Dialog; -import android.app.DialogFragment; -import android.app.Notification; -import android.app.NotificationManager; -import android.appwidget.AppWidgetManager; -import android.content.ComponentName; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.SharedPreferences; -import android.media.Ringtone; -import android.media.RingtoneManager; -import android.net.Uri; -import android.os.Bundle; -import android.os.CountDownTimer; -import android.os.Vibrator; -import android.preference.PreferenceManager; -import android.support.v4.app.NotificationCompat; -import android.support.v7.app.AlertDialog; -import android.view.LayoutInflater; -import android.view.View; -import android.support.design.widget.NavigationView; -import android.support.v4.view.GravityCompat; -import android.support.v4.widget.DrawerLayout; -import android.support.v7.app.ActionBarDrawerToggle; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; -import android.view.MenuItem; -import android.view.WindowManager; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.Button; -import android.widget.Spinner; -import android.widget.TextView; - -import org.secuso.privacyfriendlybreakreminder.R; -import org.secuso.privacyfriendlybreakreminder.activities.AboutActivity; -import org.secuso.privacyfriendlybreakreminder.activities.HelpActivity; -import org.secuso.privacyfriendlybreakreminder.widget.*; - -import java.util.Locale; - - -public class BreakReminder extends AppCompatActivity - implements NavigationView.OnNavigationItemSelectedListener, View.OnClickListener { - - private boolean isRunning = false; - private TextView ct_text; - private CountDownTimer ct; - private String stopTime = ""; - private int oldTime = 0; - private Spinner profileSpinner; - private SharedPreferences sharedPrefs; - - - @Override - protected void onCreate(Bundle savedInstanceState) { - - super.onCreate(savedInstanceState); - sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); - SharedPreferences.Editor editor = sharedPrefs.edit(); - - setContentView(R.layout.activity_break_reminder); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - String allProfiles = sharedPrefs.getString("profiles", ""); - if (allProfiles.equals("")) { - allProfiles = this.getResources().getText(R.string.standard_profile).toString(); - String exercises = this.getResources().getText(R.string.all_exercises).toString(); - editor.putString("exercise_value", exercises); - editor.putString("profiles", allProfiles); - editor.putString("current_language", Locale.getDefault().getLanguage()); - editor.putBoolean("notifications_stayOn", true); - editor.apply(); - - WelcomeDialog welcomeDialog = new WelcomeDialog(); - welcomeDialog.show(getFragmentManager(), "WelcomeDialog"); - } else if (!sharedPrefs.getString("current_language", "en").equals(Locale.getDefault().getLanguage())) { - //FIXME could be nice to translate the body parts hear... but it would be a complex function - editor.putString("current_language", Locale.getDefault().getLanguage()); - String[] profiles = allProfiles.split(";"); - allProfiles = ""; - - for (int j = 0; j < profiles.length; j++) { - String[] profile = profiles[j].split(","); - profile[4] = "-1"; - profiles[j] = ""; - for (int i = 0; i < profile.length; i++) { - profiles[j] += profile[i] + ","; - } - allProfiles += profiles[j] + ";"; - } - - editor.putString("profiles", allProfiles); - editor.apply(); - } - - // If chosen, set screen to "stay on" - boolean stayOn = sharedPrefs.getBoolean("notifications_stayOn", false); - - if (stayOn) - getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - else - getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - - int mins = sharedPrefs.getInt("work_value", 5) + 1; - String bufferZeroMinute = ""; - - if (mins < 10) - bufferZeroMinute = "0"; - - ct_text = (TextView) - findViewById(R.id.textView); - - ct_text.setText(bufferZeroMinute + mins + ":00"); - - Button playStopButton = (Button) findViewById(R.id.button_playStop); - playStopButton.setOnClickListener(this); - Button resetButton = (Button) findViewById(R.id.button_reset); - resetButton.setOnClickListener(this); - ct_text.setOnClickListener(this); - - profileSpinner = (Spinner) findViewById(R.id.spinner); - - String[] profileNames = new String[allProfiles.split(";").length + 1]; - String[] fillProfileNames = allProfiles.split(";"); - for (int i = 0; i < profileNames.length - 1; i++) { - profileNames[i] = fillProfileNames[i].split(",")[0]; - } - profileNames[profileNames.length - 1] = this.getResources().getText(R.string.new_profile).toString(); - ArrayAdapter adapter = new - ArrayAdapter(this, R.layout.spinner_layout, profileNames); - profileSpinner.setAdapter(adapter); - - //Set the ClickListener for Spinner - profileSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - public void onItemSelected(AdapterView parent, View view, int position, long id) { - String profileSelected = (String) parent.getItemAtPosition(position); - if (profileSelected.equals(getResources().getText(R.string.new_profile).toString())) { - createNewProfile(); - } else { - updatePreference(profileSelected); - } - } - - public void onNothingSelected(AdapterView parent) { - - } - }); - - DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); - ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( - this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); - drawer.setDrawerListener(toggle); - toggle.syncState(); - - NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); - navigationView.setNavigationItemSelectedListener(this); - - } - - private void updatePreference(String profileSelected) { - - String allProfiles = sharedPrefs.getString("profiles", ""); - - String currentProfile = sharedPrefs.getString("name_text", "") + "," + sharedPrefs.getInt("work_value", -1) + "," + sharedPrefs.getInt("break_value", -1) + "," + sharedPrefs.getBoolean("cont_value", false) + "," + sharedPrefs.getString("exercise_value", "-1"); - - if (!(allProfiles.contains(currentProfile) && profileSelected.equals(sharedPrefs.getString("name_text", "")))) { - if (ct != null) { - ct.cancel(); - isRunning = false; - } - - String[] profileNames = allProfiles.split(";"); - for (int i = 0; i < profileNames.length; i++) { - String profileName = profileNames[i].split(",")[0]; - int interval = Integer.parseInt(profileNames[i].split(",")[1]); - int break_time = Integer.parseInt(profileNames[i].split(",")[2]); - boolean cont = Boolean.parseBoolean(profileNames[i].split(",")[3]); - String exercises = profileNames[i].split(",")[4]; - if (profileName.equals(profileSelected)) { - SharedPreferences.Editor editor = sharedPrefs.edit(); - editor.putString("current_profile", "" + i); - editor.putString("name_text", profileName); - editor.putInt("work_value", interval - 1); - editor.putInt("break_value", break_time - 1); - editor.putBoolean("cont_value", cont); - editor.putString("exercise_value", exercises); - editor.apply(); - - //Update tutorial_clock - String bufferZeroMinute = ""; - int time = interval * 60 * 1000; - if (time / 1000 / 60 < 10) - bufferZeroMinute = "0"; - - ct_text.setText(bufferZeroMinute + time / 1000 / 60 + ":00"); - - updateWidgets(bufferZeroMinute + time / 1000 / 60 + ":00"); - break; - } - } - } - } - - private void fillProfiles() { - - if (ct != null) { - ct.cancel(); - isRunning = false; - } - - String allProfiles = sharedPrefs.getString("profiles", ""); - - String[] profileNames = new String[allProfiles.split(";").length + 1]; - String[] fillProfileNames = allProfiles.split(";"); - for (int i = 0; i < profileNames.length - 1; i++) { - profileNames[i] = fillProfileNames[i].split(",")[0]; - } - profileNames[profileNames.length - 1] = getResources().getText(R.string.new_profile).toString(); - ArrayAdapter adapter = new - ArrayAdapter(this, R.layout.spinner_layout, profileNames); - profileSpinner.setAdapter(adapter); - - //Set Spinner on the current Profile - //String currentProfile = sharedPrefs.getString("name_text", "Sport"); - int interval = sharedPrefs.getInt("work_value", 1); - //profileSpinner.setSelection(Arrays.asList(profileNames).indexOf(currentProfile)); - profileSpinner.setSelection(Integer.parseInt(sharedPrefs.getString("current_profile", "-1"))); - - //Update tutorial_clock - String bufferZeroMinute = ""; - int time = interval * 60 * 1000; - if (time / 1000 / 60 < 10) - bufferZeroMinute = "0"; - - ct_text.setText(bufferZeroMinute + time / 1000 / 60 + ":00"); - - //Set the ClickListener for Spinner - profileSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - public void onItemSelected(AdapterView parent, View view, int position, long id) { - String profileSelected = (String) parent.getItemAtPosition(position); - if (profileSelected.equals(getResources().getText(R.string.new_profile).toString())) { - createNewProfile(); - } else { - updatePreference(profileSelected); - } - } - - public void onNothingSelected(AdapterView parent) { - - } - }); - } - - @Override - public void onDestroy() { - super.onDestroy(); - NotificationManager nManager = ((NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE)); - nManager.cancelAll(); - } - - - @Override - public void onResume() { - super.onResume(); - - // If chosen, set screen to "stay on" - boolean stayOn = sharedPrefs.getBoolean("notifications_stayOn", false); - - if (stayOn) - getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - else - getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - - //FIXME Add flag if New Profile or Resume - if (sharedPrefs.getBoolean("change_profiles", false)) { - fillProfiles(); - - SharedPreferences.Editor editor = sharedPrefs.edit(); - editor.putBoolean("change_profiles", false); - editor.apply(); - } - } - - @Override - public void onBackPressed() { - DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); - if (drawer.isDrawerOpen(GravityCompat.START)) { - drawer.closeDrawer(GravityCompat.START); - } else { - super.onBackPressed(); - } - } - - @SuppressWarnings("StatementWithEmptyBody") - @Override - public boolean onNavigationItemSelected(MenuItem item) { - // Handle navigation view item clicks here. - int id = item.getItemId(); - - /*if (id == R.id.nav_settings) { - // Handle the profile action - Intent intent = new Intent(this, SettingsActivity.class); - this.startActivity(intent); - //} else if (id == R.id.nav_statistics) { - // Show statistics - //Intent intent = new Intent(this, StatisticsActivity.class); - //this.startActivity(intent); - } else if (id == R.id.nav_help) { - // Show help - Intent intent = new Intent(this, HelpActivity.class); - this.startActivity(intent); - } else if (id == R.id.nav_about) { - // Show about page - Intent intent = new Intent(this, AboutActivity.class); - this.startActivity(intent); - }*/ - - DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); - drawer.closeDrawer(GravityCompat.START); - return true; - } - - public void onClick(View v) { - int mins = sharedPrefs.getInt("work_value", 50); - String bufferZeroMinute = ""; - String bufferZeroSecond = ""; - int time = mins * 60 * 1000; - - stopTime = (String) ct_text.getText(); - oldTime = time; - - if (stopTime.equals("") && !isRunning) { - if (time / 1000 / 60 < 10) - bufferZeroMinute = "0"; - - ct_text.setText(bufferZeroMinute + time / 1000 / 60 + ":00"); - } else if (!isRunning) { - ct_text.setText(stopTime); - String stringTime = (String) ct_text.getText(); - String[] timef = stringTime.split(":"); - int minute = Integer.parseInt(timef[0]); - int second = Integer.parseInt(timef[1]); - time = (1000 * (minute * 60)) + (1000 * second); - - if (minute < 10) - bufferZeroMinute = "0"; - if (second < 10) - bufferZeroSecond = "0"; - - ct_text.setText(bufferZeroMinute + minute + ":" + bufferZeroSecond + second); - } - - - switch (v.getId()) { - - case R.id.textView: - case R.id.button_playStop: - if (isRunning) { - ct.cancel(); - stopTime = (String) ct_text.getText(); - isRunning = false; - } else { - startTimer(time); - } - break; - - - case R.id.button_reset: - if (ct != null) { - //Reset tutorial_clock - ct.cancel(); - int interval = sharedPrefs.getInt("work_value", 1) + 1; - - bufferZeroMinute = ""; - time = interval * 60 * 1000; - if (time / 1000 / 60 < 10) - bufferZeroMinute = "0"; - - ct_text.setText(bufferZeroMinute + time / 1000 / 60 + ":00"); - stopTime = (String) ct_text.getText(); - isRunning = false; - - updateWidgets(stopTime); - break; - } - - - if (oldTime / 1000 / 60 < 10) - bufferZeroMinute = "0"; - - ct_text.setText(bufferZeroMinute + oldTime / 1000 / 60 + ":00"); - stopTime = oldTime / 1000 / 60 + ":00"; - isRunning = false; - break; - } - } - - - private void startTimer(int time) { - ct = new CountDownTimer(time, 1000) { - boolean timeLeft = false; - - public void onTick(long millisUntilFinished) { - String bufferZeroMinute = ""; - String bufferZeroSecond = ""; - - if ((millisUntilFinished / 1000) / 60 < 10) - bufferZeroMinute = "0"; - - if (millisUntilFinished / 1000 % 60 < 10) - bufferZeroSecond = "0"; - - ct_text.setText(bufferZeroMinute + (millisUntilFinished / 1000) / 60 + ":" + bufferZeroSecond + millisUntilFinished / 1000 % 60); - - updateWidgets(bufferZeroMinute + (millisUntilFinished / 1000) / 60 + ":" + bufferZeroSecond + millisUntilFinished / 1000 % 60); - - //Show how much time is left - - timeLeft = sharedPrefs.getBoolean("notifications_new_message_timeLeft", false); - if (timeLeft) { - Notification notification = new NotificationCompat.Builder(getApplicationContext()).setCategory(Notification.CATEGORY_MESSAGE) - .setSmallIcon(R.drawable.ic_notifications_black_24dp) - .setContentTitle("Break Reminder: ") - .setContentText("Take a break in " + ((millisUntilFinished / 1000) / 60) + " minutes and " + ((millisUntilFinished / 1000) % 60) + " seconds") - .setAutoCancel(true) - .setVisibility(NotificationCompat.VISIBILITY_PUBLIC).build(); - NotificationManager notificationManager = - (NotificationManager) getSystemService(NOTIFICATION_SERVICE); - notificationManager.notify(1000, notification); - } - } - - public void onFinish() { - isRunning = false; - ct_text.setText("00:00"); - - updateWidgets("00:00"); - - //trigger the alarm - String ringPref = sharedPrefs.getString("notifications_new_message_ringtone", ""); - - if (!ringPref.equals("")) { - // Get the current ringtone - Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), Uri.parse(ringPref)); - - // Play ringtone - r.play(); - } - - boolean vibrateChecked = sharedPrefs.getBoolean("notifications_new_message_vibrate", false); - if (vibrateChecked) { - // Get instance of Vibrator from current Context - Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); - - if (v != null) { - // Vibrate for 1500 milliseconds - v.vibrate(1500); - } - } - - //Cancel the notification - if (timeLeft) { - Notification notification = new NotificationCompat.Builder(getApplicationContext()).setCategory(Notification.CATEGORY_MESSAGE) - .setSmallIcon(R.drawable.ic_notifications_black_24dp) - .setContentTitle("Break Reminder: ") - .setContentText("Take your break now!!") - .setAutoCancel(true) - .setVisibility(NotificationCompat.VISIBILITY_PUBLIC).build(); - NotificationManager notificationManager = - (NotificationManager) getSystemService(NOTIFICATION_SERVICE); - notificationManager.notify(1000, notification); - } - startBreak(); - - String workTime = "" + sharedPrefs.getInt("work_value", 0) + 1; - if (workTime.length() == 1) - workTime = "0" + workTime; - - ct_text.setText(workTime + ":00"); - updateWidgets(workTime + ":00"); - } - }.start(); - isRunning = true; - } - - private void createNewProfile() { - SharedPreferences.Editor editor = sharedPrefs.edit(); - editor.putBoolean("change_profiles", true); - editor.apply(); - Intent intent = new Intent(this, ProfileActivity.class); - this.startActivity(intent); - } - - private void updateWidgets(String time) { - Intent intent = new Intent(this, AppWidget.class); - intent.putExtra("time", time); - int ids[] = AppWidgetManager.getInstance(getApplication()).getAppWidgetIds(new ComponentName(this.getApplicationContext(), AppWidget.class)); - if (ids.length != 0) { - intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); - intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids); - sendBroadcast(intent); - } - } - - public void startBreak() { - String allProfiles = sharedPrefs.getString("profiles", ""); - String[] profiles = allProfiles.split(";"); - String currentProfile = sharedPrefs.getString("name_text", ""); - - for (int i = 0; i < profiles.length; i++) { - if (profiles[i].split(",")[0].equals(currentProfile) && profiles[i].split(",")[3].equals("true")) { - Intent intent = new Intent(this, BreakActivity.class); - this.startActivity(intent); - return; - } - } - Intent intent = new Intent(this, BreakDeciderActivity.class); - this.startActivity(intent); - } - - public static class WelcomeDialog extends DialogFragment { - - @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - - LayoutInflater i = getActivity().getLayoutInflater(); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - - builder.setView(i.inflate(R.layout.first_dialog, null)); - builder.setIcon(R.mipmap.ic_app); - builder.setTitle(getActivity().getString(R.string.app_name_long)); - - builder.setPositiveButton(getActivity().getString(R.string.dialog_positive), null); - builder.setNegativeButton(getActivity().getString(R.string.tutorial_help), new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - // FIXME need api 21 - // Context context = getContext(); - Activity act = getActivity(); - Intent intent = new Intent(act, HelpActivity.class); - act.startActivity(intent); - } - }); - - return builder.create(); - } - - } -} diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/ExerciseTypeActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/ExerciseTypeActivity.java deleted file mode 100644 index 8aedf79..0000000 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/old/ExerciseTypeActivity.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.secuso.privacyfriendlybreakreminder.activities.old; - - -import android.content.SharedPreferences; -import android.os.Bundle; -import android.preference.PreferenceManager; -import android.support.v7.app.AppCompatActivity; -import android.view.View; -import android.widget.ArrayAdapter; -import android.widget.Button; -import android.widget.ListView; -import android.widget.Spinner; -import android.widget.Toast; - -import org.secuso.privacyfriendlybreakreminder.R; - -import java.util.ArrayList; - -public class ExerciseTypeActivity extends AppCompatActivity implements View.OnClickListener { - - Spinner typeSpinner; - ListView listView; - ArrayList adapter; - private SharedPreferences sharedPrefs; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.exercise_type); - - Button addButton = (Button) findViewById(R.id.button_et_add); - addButton.setOnClickListener(this); - - Button saveButton = (Button) findViewById(R.id.button_et_save); - saveButton.setOnClickListener(this); - - Button cancelButton = (Button) findViewById(R.id.button_et_cancel); - cancelButton.setOnClickListener(this); - - typeSpinner = (Spinner) findViewById(R.id.type_spinner); - listView = (ListView) findViewById(R.id.listView); - - adapter = new ArrayList(); - listView.setAdapter(new ArrayAdapter(this, R.layout.spinner_layout, adapter)); - } - - @Override - public void onClick(View v) { - - switch (v.getId()) { - case R.id.button_et_add: - if(!adapter.contains((String)typeSpinner.getSelectedItem())){ - adapter.add((String)typeSpinner.getSelectedItem()); - listView.setAdapter(new ArrayAdapter(this, R.layout.spinner_layout, adapter)); - } - break; - - case R.id.button_et_save: - sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); - SharedPreferences.Editor editor = sharedPrefs.edit(); - - String exerciseTypes = ""; - for (int i = 0;i - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_break.xml b/app/src/main/res/layout/activity_break.xml deleted file mode 100644 index e1d5dbc..0000000 --- a/app/src/main/res/layout/activity_break.xml +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - -