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 @@ + + + + + + + + + + + + + + + + + +