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 29ae33f..3746d6d 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
@@ -253,11 +253,11 @@ public class BreakReminder extends AppCompatActivity
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//FIXME Add flag if New Profile or Resume
- if (addNewProfile) {
+ //if (addNewProfile) {
fillProfiles();
profileSpinner = (Spinner) findViewById(R.id.spinner);
- addNewProfile = false;
- }
+ // addNewProfile = false;
+ //}
}
@Override
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
new file mode 100644
index 0000000..d191a53
--- /dev/null
+++ b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/DynamicListPreference.java
@@ -0,0 +1,99 @@
+package orgprivacy_friendly_apps.secuso.privacyfriendlybreakreminder;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.preference.PreferenceManager;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+import android.widget.Toast;
+
+
+public class DynamicListPreference extends ListPreference implements Preference.OnPreferenceChangeListener,DialogInterface.OnClickListener {
+
+ Context mContext;
+ int currentProfile = 0;
+
+ public DynamicListPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ mContext = context;
+ }
+
+
+ @Override
+ protected void onDialogClosed(boolean positiveResult) {
+
+ System.out.println("Verzweiflung " + getValue());
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);
+ String[] allProfile = sharedPreferences.getString("profiles", "").split(";");
+
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ //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();
+ }
+
+ }
+
+ }
+
+ @Override
+ protected View onCreateDialogView() {
+ ListView view = new ListView(getContext());
+ view.setAdapter(adapter());
+ setEntries(entries());
+ setEntryValues(entryValues());
+ setValueIndex(currentProfile);
+ return view;
+ }
+
+
+ private ListAdapter adapter() {
+ return new ArrayAdapter(getContext(), android.R.layout.select_dialog_singlechoice);
+ }
+
+ private CharSequence[] entries() {
+ //action to provide entry data in char sequence array for list
+
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);
+ String[] allProfiles = sharedPreferences.getString("profiles", "").split(";");
+ CharSequence[] entries = new CharSequence[allProfiles.length];
+ for (int i = 0; i < allProfiles.length; i++) {
+ String profileName = allProfiles[i].split(",")[0];
+ entries[i] = profileName;
+ if (profileName.equals(sharedPreferences.getString("name_text", "")))
+ currentProfile = i;
+ }
+ return entries;
+ }
+
+ private CharSequence[] entryValues() {
+ //action to provide entry data in char sequence array for list
+
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);
+ String[] allProfiles = sharedPreferences.getString("profiles", "").split(";");
+ CharSequence[] entries = new CharSequence[allProfiles.length];
+ for (int i = 0; i < allProfiles.length; i++) {
+ String profileName = allProfiles[i].split(",")[0];
+ entries[i] = "" + i;
+ }
+ return entries;
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ return true;
+ }
+}
diff --git a/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/SettingsActivity.java b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/SettingsActivity.java
index 0355e55..9541d79 100644
--- a/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/SettingsActivity.java
+++ b/app/src/main/java/orgprivacy_friendly_apps/secuso/privacyfriendlybreakreminder/SettingsActivity.java
@@ -186,6 +186,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
private SeekBarPreference _seekBarWork;
private SeekBarPreference _seekBarBreak;
+ private DynamicListPreference dlp;
+
private String currentProfile = "";
@Override
@@ -198,6 +200,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
_seekBarWork = (SeekBarPreference) this.findPreference("work_value");
_seekBarBreak = (SeekBarPreference) this.findPreference("break_value");
+ dlp = (DynamicListPreference) this.findPreference("current_profile");
+
// Set listener :
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
@@ -235,12 +239,23 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+ if(key.equals("current_profile")){
+ System.out.println("HOOOOOOOOOOOOOLY SHIIIIIIIIIIIIT");
+ }
+
+
+ System.out.println("--------We change something!!!!! Key: " + key);
+
// Set seekbar summary :
int radius = PreferenceManager.getDefaultSharedPreferences(this.getActivity()).getInt("work_value", 50);
_seekBarWork.setSummary(this.getString(R.string.settings_summary).replace("$1", "" + radius));
radius = PreferenceManager.getDefaultSharedPreferences(this.getActivity()).getInt("break_value", 10);
_seekBarBreak.setSummary(this.getString(R.string.settings_summary).replace("$1", "" + radius));
+ //FIXME Update the preferences of the selected profile
+ if (!key.equals("profiles"))
+ updateProfilesPreference();
+
}
@@ -248,12 +263,19 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
public void onPause() {
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
+ updateProfilesPreference();
+
+ super.onPause();
+ }
+
+ private void updateProfilesPreference() {
int work_radius = PreferenceManager.getDefaultSharedPreferences(this.getActivity()).getInt("work_value", 50);
int break_radius = PreferenceManager.getDefaultSharedPreferences(this.getActivity()).getInt("break_value", 10);
String newProfileName = PreferenceManager.getDefaultSharedPreferences(this.getActivity()).getString("name_text", "");
String allProfiles = PreferenceManager.getDefaultSharedPreferences(this.getActivity()).getString("profiles", "");
System.out.println("SETTINGS ACTIVITY0: " + newProfileName + "," + work_radius + "," + break_radius);
+ System.out.println("SETTING ACTIVITY1: " + allProfiles);
if (allProfiles.contains(newProfileName + "," + work_radius + "," + break_radius) && newProfileName.equals(currentProfile)) {
//Nothing changes
System.out.println("No changes for a profile in general settings");
@@ -264,16 +286,17 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
if (newProfileName.equals("")) {
// Profile name empty
System.out.println("EMPTY NAME IN SETTINGS ACTIVITY");
- Toast.makeText(this.getActivity(), R.string.settings_emptyName, Toast.LENGTH_SHORT).show();
+ Toast.makeText(this.getActivity(), R.string.settings_emptyName, Toast.LENGTH_LONG).show();
editor.putString("name_text", currentProfile);
editor.apply();
+ findPreference("name_text").setSummary(currentProfile);
} else if (currentProfile != newProfileName && prefContainsName(newProfileName)) {
// Profile name exists already
- Toast.makeText(this.getActivity(), R.string.settings_doubleName, Toast.LENGTH_SHORT).show();
+ Toast.makeText(this.getActivity(), R.string.settings_doubleName, Toast.LENGTH_LONG).show();
editor.putString("name_text", currentProfile);
editor.apply();
-
+ findPreference("name_text").setSummary(currentProfile);
} else {
String[] profiles = allProfiles.split(";");
@@ -289,11 +312,12 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
}
editor.putString("profiles", builder.toString());
editor.apply();
+
+ currentProfile = newProfileName;
}
}
- super.onPause();
}
private boolean prefContainsName(String profileName) {
diff --git a/app/src/main/res/drawable/circle.xml b/app/src/main/res/drawable/circle.xml
new file mode 100644
index 0000000..346fd35
--- /dev/null
+++ b/app/src/main/res/drawable/circle.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/content_break_reminder.xml b/app/src/main/res/layout/content_break_reminder.xml
index 5aff274..ba911e5 100644
--- a/app/src/main/res/layout/content_break_reminder.xml
+++ b/app/src/main/res/layout/content_break_reminder.xml
@@ -4,79 +4,66 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="@color/white"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
- android:background="@color/white"
tools:context="orgprivacy_friendly_apps.secuso.privacyfriendlybreakreminder.BreakReminder"
tools:showIn="@layout/app_bar_break_reminder">
+ android:layout_marginTop="49dp" />
+ android:layout_alignStart="@+id/textView"
+ android:layout_marginTop="39dp" />
-
-
-
+ android:textStyle="bold" />
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8d16c5c..dcf7175 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -24,7 +24,8 @@
General
Profile name
Pomodoro
-
+ Select profile
+ Sport
Notifications
diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml
index 9c7c23c..b3f2470 100644
--- a/app/src/main/res/xml/pref_general.xml
+++ b/app/src/main/res/xml/pref_general.xml
@@ -1,18 +1,24 @@
+
+
+
@@ -34,4 +40,5 @@
android:text="@string/settings_unit"
android:title="@string/settings_break_title" />
+
diff --git a/app/src/main/res/xml/pref_notification.xml b/app/src/main/res/xml/pref_notification.xml
index 26cf90d..9f3a755 100644
--- a/app/src/main/res/xml/pref_notification.xml
+++ b/app/src/main/res/xml/pref_notification.xml
@@ -24,10 +24,6 @@
android:key="notifications_new_message_vibrate"
android:title="@string/pref_title_vibrate" />
-
+
+
+