From 254d9d9fbc8eec1b28b2cb45e05f3ff749f57e13 Mon Sep 17 00:00:00 2001 From: Jannik Date: Tue, 23 Aug 2016 18:11:50 +0200 Subject: [PATCH] Settings Activity Added contiuously and exercises to the settings activity. --- .../BreakReminder.java | 6 +- .../DynamicListPreference.java | 29 +---- .../ExerciseListPreference.java | 115 ++++++++++++++++++ .../ExerciseTypeActivity.java | 1 - .../SettingsActivity.java | 25 +++- app/src/main/res/values/strings.xml | 11 ++ app/src/main/res/xml/pref_general.xml | 12 ++ 7 files changed, 166 insertions(+), 33 deletions(-) create mode 100644 app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/ExerciseListPreference.java diff --git a/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/BreakReminder.java b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/BreakReminder.java index 1d3db01..edadefe 100644 --- a/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/BreakReminder.java +++ b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/BreakReminder.java @@ -136,7 +136,7 @@ public class BreakReminder extends AppCompatActivity String allProfiles = sharedPrefs.getString("profiles", ""); - String currentProfile = sharedPrefs.getString("name_text", "") + "," + sharedPrefs.getInt("work_value", -1) + "," + sharedPrefs.getInt("break_value", -1)+ "," + sharedPrefs.getString("exercise_value", "-1"); + 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", ""))) { System.out.println("Profile didn“t change"); @@ -151,13 +151,15 @@ public class BreakReminder extends AppCompatActivity String profileName = profileNames[i].split(",")[0]; int interval = Integer.parseInt(profileNames[i].split(",")[1]); int break_time = Integer.parseInt(profileNames[i].split(",")[2]); - String exercises = profileNames[i].split(",")[3]; + 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); editor.putInt("break_value", break_time); + editor.putBoolean("cont_value", cont); editor.putString("exercise_value", exercises); editor.apply(); diff --git a/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/DynamicListPreference.java b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/DynamicListPreference.java index 0df31d7..3210155 100644 --- a/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/DynamicListPreference.java +++ b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/DynamicListPreference.java @@ -17,7 +17,7 @@ import android.widget.ListView; import android.widget.Toast; -public class DynamicListPreference extends ListPreference implements Preference.OnPreferenceChangeListener,DialogInterface.OnClickListener { +public class DynamicListPreference extends ListPreference implements DialogInterface.OnClickListener { Context mContext; SharedPreferences sharedPreferences; @@ -76,33 +76,6 @@ public class DynamicListPreference extends ListPreference implements Preference. return entries; } - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - System.out.println("Geschafft!!!"); - ListPreference listPref = (ListPreference) preference; - int index = listPref.findIndexOfValue((String) newValue); - - SharedPreferences.Editor editor = sharedPreferences.edit(); - editor.putString("current_profile", ""+index); - editor.apply(); - - sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext); - String[] allProfile = sharedPreferences.getString("profiles", "").split(";"); - - //FIXME Deactivate the onPrefListener in SettingsActivity - for (int i = 0; i < allProfile.length; i++) { - if (allProfile[i].split(",")[0].equals(getValue())){ - editor.putString("name_text",allProfile[i].split(",")[0]); - editor.putString("work_value",allProfile[i].split(",")[1]); - editor.putString("break_value",allProfile[i].split(",")[2]); - editor.apply(); - } - - } - - return true; - } - } diff --git a/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/ExerciseListPreference.java b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/ExerciseListPreference.java new file mode 100644 index 0000000..2fc2c45 --- /dev/null +++ b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/ExerciseListPreference.java @@ -0,0 +1,115 @@ +package orgprivacy_friendly_apps.secuso.privacyfriendlybreakreminder; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.preference.ListPreference; +import android.util.AttributeSet; +import android.view.View; +import android.widget.ArrayAdapter; +import android.widget.ListAdapter; +import android.widget.ListView; + +/** + * Created by badri_000 on 23.08.2016. + */ +public class ExerciseListPreference extends ListPreference implements DialogInterface.OnClickListener { + + Context mContext; + SharedPreferences sharedPreferences; + private boolean[] mClickedDialogEntryIndices; + String[] exercises; + + public ExerciseListPreference(Context context, AttributeSet attrs) { + super(context, attrs); + mContext = context; + mClickedDialogEntryIndices = new boolean[getEntries().length]; + } + + public ExerciseListPreference(Context context) { + this(context, null); + mClickedDialogEntryIndices = new boolean[getEntries().length]; + } + + @Override + protected View onCreateDialogView() { + + ListView view = new ListView(getContext()); + view.setAdapter(adapter()); + + sharedPreferences = getSharedPreferences(); + String exercise = sharedPreferences.getString("exercise_value", "-1"); + + exercises = exercise.split("\\."); + + return view; + } + + @Override + protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { + CharSequence[] entries = getEntries(); + CharSequence[] entryValues = getEntryValues(); + + if (entries == null || entryValues == null || entries.length != entryValues.length ) { + throw new IllegalStateException( + "ListPreference requires an entries array and an entryValues array which are both the same length"); + } + + restoreCheckedEntries(); + builder.setMultiChoiceItems(entries, mClickedDialogEntryIndices, + new DialogInterface.OnMultiChoiceClickListener() { + public void onClick(DialogInterface dialog, int which, boolean val) { + mClickedDialogEntryIndices[which] = val; + } + }); + } + + private void restoreCheckedEntries() { + CharSequence[] entryValues = getEntries(); + System.out.println("VALUE-CHECK" + getValue()); + + for ( int j=0; j 0 ) + // exs = exs.substring(0, exs.length()); + // setValue(exs); + //} + } + + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putString("exercise_value", exs); + editor.apply(); + } + +} diff --git a/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/ExerciseTypeActivity.java b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/ExerciseTypeActivity.java index 5093877..4d10a41 100644 --- a/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/ExerciseTypeActivity.java +++ b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/ExerciseTypeActivity.java @@ -63,7 +63,6 @@ public class ExerciseTypeActivity extends AppCompatActivity implements View.OnCl for (int i = 0;iProfile name Pomodoro Select profile + Select exercises + Continuously Sport @@ -107,5 +109,14 @@ Pelvis Legs + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml index 602696c..0e64c9f 100644 --- a/app/src/main/res/xml/pref_general.xml +++ b/app/src/main/res/xml/pref_general.xml @@ -40,5 +40,17 @@ android:text="@string/settings_unit" android:title="@string/settings_break_title" /> + + + + +