diff --git a/.idea/misc.xml b/.idea/misc.xml
index e9a58ca..7b4db64 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/app/release/app-release.apk b/app/release/app-release.apk
deleted file mode 100644
index 573a799..0000000
Binary files a/app/release/app-release.apk and /dev/null differ
diff --git a/app/src/main/java/org/secuso/aktivpause/activities/SettingsActivity.java b/app/src/main/java/org/secuso/aktivpause/activities/SettingsActivity.java
deleted file mode 100644
index 4703ff2..0000000
--- a/app/src/main/java/org/secuso/aktivpause/activities/SettingsActivity.java
+++ /dev/null
@@ -1,232 +0,0 @@
-
-package org.secuso.aktivpause.activities;
-
-
-import android.annotation.TargetApi;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.content.res.Configuration;
-import android.os.Build;
-import android.os.Bundle;
-import android.preference.ListPreference;
-import android.preference.MultiSelectListPreference;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceManager;
-import android.view.MenuItem;
-
-import org.secuso.aktivpause.R;
-import org.secuso.aktivpause.activities.helper.AppCompatPreferenceActivity;
-import org.secuso.aktivpause.receivers.TimerSchedulerReceiver;
-
-import java.util.HashSet;
-import java.util.List;
-
-/**
- * @author Christopher Beckmann
- * @version 2.0
- */
-public class SettingsActivity extends AppCompatPreferenceActivity {
-
- protected SharedPreferences mSharedPreferences;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
-
- overridePendingTransition(0, 0);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean onIsMultiPane() {
- return isXLargeTablet(this);
- }
-
- /**
- * Helper method to determine if the device has an extra-large screen. For
- * example, 10" tablets are extra-large.
- */
- private static boolean isXLargeTablet(Context context) {
- return (context.getResources().getConfiguration().screenLayout
- & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- public void onBuildHeaders(List target) {
- loadHeadersFromResource(R.xml.pref_headers, target);
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- onBackPressed();
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
-
- @Override
- protected boolean isValidFragment(String fragmentName) {
- return ExercisePreferenceFragment.class.getName().equals(fragmentName)
- || TimerSchedulePreferenceFragment.class.getName().equals(fragmentName);
- }
-
-
- /**
- * A preference value change listener that updates the preference's summary
- * to reflect its new value.
- */
- private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(Preference preference, Object value) {
- String stringValue = value.toString();
-
- if (preference instanceof ListPreference) {
-
- // For list preferences, look up the correct display value in
- // the preference's 'entries' list.
- ListPreference listPreference = (ListPreference) preference;
- int index = listPreference.findIndexOfValue(stringValue);
-
- // Set the summary to reflect the new value.
- preference.setSummary(
- index >= 0
- ? listPreference.getEntries()[index]
- : null);
- } if(preference instanceof MultiSelectListPreference) {
- MultiSelectListPreference mslPreference = (MultiSelectListPreference) preference;
-
- if(stringValue.length() >= 2) {
- stringValue = stringValue.substring(1, stringValue.length() - 1);
- }
-
- String[] setValues = stringValue.split(",");
-
- if(setValues.length == 7) {
- mslPreference.setSummary(preference.getContext().getString(R.string.pref_schedule_exercise_days_allselectedsummary));
- return true;
- }
-
- StringBuilder sb = new StringBuilder();
- for(int i = 0; i < mslPreference.getEntries().length; i++) {
- String preferenceEntryString = mslPreference.getEntryValues()[i].toString();
-
- for(String chosenValue : setValues) {
- if (chosenValue.trim().equals(preferenceEntryString)) {
- sb.append(mslPreference.getEntries()[i]);
- sb.append(", ");
- break;
- }
- }
- }
-
- if(sb.length() > 0) {
- sb.setLength(sb.length() - 2);
- }
-
- if(sb.length() == 0) {
- sb.append(preference.getContext().getString(R.string.pref_schedule_exercise_days_defaultsummary));
- }
-
- mslPreference.setSummary(sb.toString());
-
- } else {
- // For all other preferences, set the summary to the value's
- // simple string representation.
- preference.setSummary(stringValue);
- }
- return true;
- }
- };
-
- /**
- * Binds a preference's summary to its value. More specifically, when the
- * preference's value is changed, its summary (line of text below the
- * preference title) is updated to reflect the value. The summary is also
- * immediately updated upon calling this method. The exact display format is
- * dependent on the type of preference.
- *
- * @see #sBindPreferenceSummaryToValueListener
- */
- private static void bindPreferenceSummaryToValue(Preference preference) {
- // Set the listener to watch for value changes.
- preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
-
- // Trigger the listener immediately with the preference's
- // current value.
- if(preference instanceof MultiSelectListPreference) {
- sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, PreferenceManager
- .getDefaultSharedPreferences(preference.getContext())
- .getStringSet(preference.getKey(), new HashSet()));
- } else {
- sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, PreferenceManager
- .getDefaultSharedPreferences(preference.getContext())
- .getString(preference.getKey(), ""));
- }
- }
-
- protected int getNavigationDrawerID() {
- return R.id.nav_settings;
- }
-
- public static class ExercisePreferenceFragment extends PreferenceFragment {
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.pref_exercise);
- setHasOptionsMenu(true);
-
- // Bind the summaries of EditText/List/Dialog/Ringtone preferences
- // to their values. When their values change, their summaries are
- // updated to reflect the new value, per the Android Design
- // guidelines.
- bindPreferenceSummaryToValue(findPreference("pref_exercise_time"));
- }
- }
-
- public static class TimerSchedulePreferenceFragment extends PreferenceFragment {
-
- private OnSharedPreferenceChangeListener listener = new OnSharedPreferenceChangeListener() {
- @Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
- // if anything changed with this settings .. reset the alarm
- TimerSchedulerReceiver.scheduleNextAlarm(getActivity().getApplicationContext());
- }
- };
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.pref_scheduler);
- setHasOptionsMenu(true);
-
- bindPreferenceSummaryToValue(findPreference("pref_schedule_exercise_days"));
-
- PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext())
- .registerOnSharedPreferenceChangeListener(listener);
- }
-
- @Override
- public void onDetach() {
- PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext())
- .unregisterOnSharedPreferenceChangeListener(listener);
-
- super.onDetach();
- }
-
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/org/secuso/aktivpause/activities/SettingsActivity.kt b/app/src/main/java/org/secuso/aktivpause/activities/SettingsActivity.kt
new file mode 100644
index 0000000..63b3cb8
--- /dev/null
+++ b/app/src/main/java/org/secuso/aktivpause/activities/SettingsActivity.kt
@@ -0,0 +1,28 @@
+/*
+ This file is part of the application Privacy Friendly Notes.
+ Privacy Friendly Notes is free software:
+ you can redistribute it and/or modify it under the terms of the
+ GNU General Public License as published by the Free Software Foundation,
+ either version 3 of the License, or any later version.
+ Privacy Friendly Notes is distributed in the hope
+ that it will be useful, but WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with Privacy Friendly Notes. If not, see .
+ */
+package org.secuso.aktivpause.activities
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import org.secuso.aktivpause.R
+
+/**
+ * Activity that allows to register some settings like a custom font size.
+ */
+class SettingsActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_settings)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/secuso/aktivpause/activities/fragments/SettingsFragment.kt b/app/src/main/java/org/secuso/aktivpause/activities/fragments/SettingsFragment.kt
new file mode 100644
index 0000000..701eddc
--- /dev/null
+++ b/app/src/main/java/org/secuso/aktivpause/activities/fragments/SettingsFragment.kt
@@ -0,0 +1,31 @@
+/*
+ This file is part of the application Privacy Friendly Notes.
+ Privacy Friendly Notes is free software:
+ you can redistribute it and/or modify it under the terms of the
+ GNU General Public License as published by the Free Software Foundation,
+ either version 3 of the License, or any later version.
+ Privacy Friendly Notes is distributed in the hope
+ that it will be useful, but WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with Privacy Friendly Notes. If not, see .
+ */
+package org.secuso.aktivpause.activities.fragments;
+
+import android.os.Bundle
+import android.preference.PreferenceFragment
+import androidx.appcompat.app.AppCompatDelegate
+import org.secuso.aktivpause.R
+
+class SettingsFragment : PreferenceFragment() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ addPreferencesFromResource(R.xml.preferences)
+ findPreference("settings_day_night_theme")?.setOnPreferenceChangeListener { _, newValue ->
+ AppCompatDelegate.setDefaultNightMode(newValue.toString().toInt())
+ true;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml
index 55aa23d..fe3562a 100644
--- a/app/src/main/res/layout/activity_help.xml
+++ b/app/src/main/res/layout/activity_help.xml
@@ -46,6 +46,7 @@
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
+ android:background="?attr/colorBackground"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_drawer" />
diff --git a/app/src/main/res/layout/activity_manage_exercise_set.xml b/app/src/main/res/layout/activity_manage_exercise_set.xml
index 050a5af..40df4a6 100644
--- a/app/src/main/res/layout/activity_manage_exercise_set.xml
+++ b/app/src/main/res/layout/activity_manage_exercise_set.xml
@@ -85,6 +85,7 @@
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
+ android:background="?attr/colorBackground"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_drawer" />
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 41235bd..fd435f0 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -1,81 +1,13 @@
-
-
-
+
+ android:layout_height="match_parent" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/activity_timer.xml b/app/src/main/res/layout/activity_timer.xml
index 88259b4..b192f68 100644
--- a/app/src/main/res/layout/activity_timer.xml
+++ b/app/src/main/res/layout/activity_timer.xml
@@ -323,6 +323,7 @@
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
+ android:background="?attr/colorBackground"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_drawer" />
diff --git a/app/src/main/res/layout/nav_header.xml b/app/src/main/res/layout/nav_header.xml
index b6b2296..02a82dc 100644
--- a/app/src/main/res/layout/nav_header.xml
+++ b/app/src/main/res/layout/nav_header.xml
@@ -2,38 +2,41 @@
+ android:paddingBottom="7dp">
-
+ android:paddingStart="@dimen/activity_horizontal_margin"
+ android:paddingEnd="@dimen/activity_horizontal_margin"
+ android:src="@mipmap/ic_drawer"/>
+ android:layout_toEndOf="@id/imageView"
+ android:layout_toRightOf="@id/imageView"
+ android:textColor="?attr/colorNavbarHeaderText"
+ android:textSize="18sp"/>
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 1f79287..43f72fb 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -177,4 +177,12 @@
Ja
Online-Befragung
+ Darstellung
+
+ - System
+ - Hell
+ - Dunkel
+
+ Aussehen
+
\ No newline at end of file
diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml
new file mode 100644
index 0000000..fa0ab2c
--- /dev/null
+++ b/app/src/main/res/values-night/styles.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index cc2a7f0..764fdaf 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -18,4 +18,9 @@
- Sa
- So
+
+ - -1
+ - 1
+ - 2
+
\ No newline at end of file
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
index b5bf108..cb0f108 100644
--- a/app/src/main/res/values/attrs.xml
+++ b/app/src/main/res/values/attrs.xml
@@ -8,4 +8,12 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index e05cce4..ab21b4c 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -2,18 +2,25 @@
#024265
#024265
- #0274B2
+ #FFFFFF
+ #373a3d
+ #FFFFFF
+ #050a0f
+ #FFFFFF
+ #222222
#8aa5ce
+ #0274B2
#00000000
- #ffffff
- #000000
- #0274B2
- #8aa5ce
- #024265
#A8A8A8
+ #ffffff
#f6d126
+ #000000
+ #8aa5ce
+ #0274B2
+ #024265
#B71C1C
#388E3C
+
#008C84
#00d67d
#3BAAA2
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d8f2d44..fb08ce4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -169,5 +169,12 @@
Yes
Online Evaluation
+ Appearance
+
+ - System
+ - Light
+ - Dark
+
+ Design
diff --git a/app/src/main/res/xml/pref_exercise.xml b/app/src/main/res/xml/pref_exercise.xml
deleted file mode 100644
index ebc6b29..0000000
--- a/app/src/main/res/xml/pref_exercise.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/xml/pref_headers.xml b/app/src/main/res/xml/pref_headers.xml
deleted file mode 100644
index 26400db..0000000
--- a/app/src/main/res/xml/pref_headers.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/xml/pref_scheduler.xml b/app/src/main/res/xml/preferences.xml
similarity index 54%
rename from app/src/main/res/xml/pref_scheduler.xml
rename to app/src/main/res/xml/preferences.xml
index 942be8f..dda7952 100644
--- a/app/src/main/res/xml/pref_scheduler.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -1,5 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+