diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/PrefsFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/PrefsFragment.java
index d2dbc1f..f229b7b 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/PrefsFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/PrefsFragment.java
@@ -1,11 +1,17 @@
package de.sebse.fuplanner.fragments;
+import android.content.SharedPreferences;
import android.os.Bundle;
+import android.support.v7.preference.ListPreference;
+import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceFragmentCompat;
import de.sebse.fuplanner.R;
+import de.sebse.fuplanner.tools.logging.Logger;
-public class PrefsFragment extends PreferenceFragmentCompat {
+public class PrefsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
+
+ private Logger log = new Logger(this);
public static PrefsFragment newInstance() {
PrefsFragment fragment = new PrefsFragment();
@@ -18,5 +24,27 @@ public class PrefsFragment extends PreferenceFragmentCompat {
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
// Load the preferences from an XML resource
setPreferencesFromResource(R.xml.preferences, rootKey);
+ for (String s : getPreferenceScreen().getSharedPreferences().getAll().keySet()) {
+ onSharedPreferenceChanged(getPreferenceScreen().getSharedPreferences(), s);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
+ }
+
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
+ Preference preference = getPreferenceScreen().findPreference(s);
+ if (preference instanceof ListPreference)
+ preference.setSummary(((ListPreference) preference).getEntry());
}
}
\ No newline at end of file
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/canteen/MealAdapter.java b/app/src/main/java/de/sebse/fuplanner/fragments/canteen/MealAdapter.java
index b40c05e..dfa0d54 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/canteen/MealAdapter.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/canteen/MealAdapter.java
@@ -9,6 +9,7 @@ import android.widget.BaseExpandableListAdapter;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.services.Canteen.types.Day;
import de.sebse.fuplanner.services.Canteen.types.Meal;
+import de.sebse.fuplanner.tools.Preferences;
import de.sebse.fuplanner.tools.ui.ItemViewHolder;
import de.sebse.fuplanner.tools.ui.StringViewHolder;
@@ -93,7 +94,21 @@ class MealAdapter extends BaseExpandableListAdapter {
ItemViewHolder itemHolder = new ItemViewHolder(convertView);
itemHolder.mTitle.setText(meal.getName());
itemHolder.mSubLeft.setText(meal.getCategory());
- itemHolder.mSubRight.setText(mContext.getResources().getString(R.string.prices, meal.getPriceStdnt(), meal.getPriceEmply(), meal.getPriceOther()));
+ String value;
+ switch (Preferences.getString(mContext, R.array.pref_price_group)) {
+ case "student":
+ value = mContext.getString(R.string.price, meal.getPriceStdnt());
+ break;
+ case "employee":
+ value = mContext.getString(R.string.price, meal.getPriceEmply());
+ break;
+ case "other":
+ value = mContext.getString(R.string.price, meal.getPriceOther());
+ break;
+ default:
+ value = mContext.getString(R.string.prices, meal.getPriceStdnt(), meal.getPriceEmply(), meal.getPriceOther());
+ }
+ itemHolder.mSubRight.setText(value);
return convertView;
}
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/Preferences.java b/app/src/main/java/de/sebse/fuplanner/tools/Preferences.java
new file mode 100644
index 0000000..b3c6985
--- /dev/null
+++ b/app/src/main/java/de/sebse/fuplanner/tools/Preferences.java
@@ -0,0 +1,12 @@
+package de.sebse.fuplanner.tools;
+
+import android.content.Context;
+import android.support.annotation.ArrayRes;
+import android.support.v7.preference.PreferenceManager;
+
+public class Preferences {
+ public static String getString(Context context, @ArrayRes int key) {
+ String[] strings = context.getResources().getStringArray(key);
+ return PreferenceManager.getDefaultSharedPreferences(context).getString(strings[0], strings[1]);
+ }
+}
diff --git a/app/src/main/res/values-de/arrays.xml b/app/src/main/res/values-de/arrays.xml
new file mode 100644
index 0000000..33b0bdc
--- /dev/null
+++ b/app/src/main/res/values-de/arrays.xml
@@ -0,0 +1,9 @@
+
+
+
+ - Alle
+ - Student
+ - Angestellter
+ - Andere
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 50cbcd0..0f88eef 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -41,4 +41,6 @@
Ort: %1$s
Modul: %1$s
Schließen
+ Datenschutzrichtlinie
+ Öffne die Datenschutzrichtlinie nach DSGVO
\ No newline at end of file
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
new file mode 100644
index 0000000..747e97b
--- /dev/null
+++ b/app/src/main/res/values/arrays.xml
@@ -0,0 +1,18 @@
+
+
+
+ - All
+ - Student
+ - Employee
+ - Other
+
+
+ - all
+ - student
+ - employee
+ - other
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/preferences.xml b/app/src/main/res/values/preferences.xml
new file mode 100644
index 0000000..e8305a6
--- /dev/null
+++ b/app/src/main/res/values/preferences.xml
@@ -0,0 +1,9 @@
+
+
+
+ - @string/pref_price_group
+ - @string/pref_price_group_default
+
+ pref_price_group
+ all
+
\ 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 327a85f..d767135 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -48,4 +48,9 @@
Module: %1$s
Close
root_preferences
+ Data Policy (German)
+ Open Data Policy according to GDPR
+ Canteen Price Group
+ Only show specific price category
+ Price Group Selection
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index c3068ea..1bddf83 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -1,12 +1,18 @@
+
-
+ android:title="@string/open_data_policy"
+ android:summary="@string/open_data_policy_summary">
-
\ No newline at end of file