Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java')
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java79
1 files changed, 75 insertions, 4 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java
index 27ce4fc7..76077f27 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java
@@ -1,24 +1,39 @@
package it.niedermann.owncloud.notes.android.fragment;
import android.app.Activity;
+import android.content.Context;
import android.os.Bundle;
import android.util.Log;
+import androidx.annotation.ColorInt;
import androidx.annotation.Nullable;
import androidx.preference.ListPreference;
+import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
-import androidx.preference.SwitchPreference;
+import it.niedermann.owncloud.notes.BuildConfig;
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.android.DarkModeSetting;
+import it.niedermann.owncloud.notes.branding.Branded;
+import it.niedermann.owncloud.notes.branding.BrandedSwitchPreference;
+import it.niedermann.owncloud.notes.branding.BrandingUtil;
+import it.niedermann.owncloud.notes.persistence.NotesDatabase;
import it.niedermann.owncloud.notes.persistence.SyncWorker;
import it.niedermann.owncloud.notes.util.DeviceCredentialUtil;
import it.niedermann.owncloud.notes.util.Notes;
-public class PreferencesFragment extends PreferenceFragmentCompat {
+import static it.niedermann.owncloud.notes.android.appwidget.NoteListWidget.updateNoteListWidgets;
+
+public class PreferencesFragment extends PreferenceFragmentCompat implements Branded {
private static final String TAG = PreferencesFragment.class.getSimpleName();
+ private BrandedSwitchPreference fontPref;
+ private BrandedSwitchPreference lockPref;
+ private BrandedSwitchPreference wifiOnlyPref;
+ private BrandedSwitchPreference brandingPref;
+ private BrandedSwitchPreference gridViewPref;
+
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -28,10 +43,45 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.preferences);
- final SwitchPreference lockPref = findPreference(getString(R.string.pref_key_lock));
+ fontPref = findPreference(getString(R.string.pref_key_font));
+
+ brandingPref = findPreference(getString(R.string.pref_key_branding));
+ if (brandingPref != null) {
+ brandingPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
+ updateNoteListWidgets(requireContext());
+ final Boolean branding = (Boolean) newValue;
+ Log.v(TAG, "branding: " + branding);
+ requireActivity().setResult(Activity.RESULT_OK);
+ requireActivity().recreate();
+ return true;
+ });
+ } else {
+ Log.e(TAG, "Could not find preference with key: \"" + getString(R.string.pref_key_branding) + "\"");
+ }
+
+ gridViewPref = findPreference(getString(R.string.pref_key_gridview));
+ if (gridViewPref != null) {
+ gridViewPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
+ final Boolean gridView = (Boolean) newValue;
+ Log.v(TAG, "gridView: " + gridView);
+ requireActivity().setResult(Activity.RESULT_OK);
+ Notes.updateGridViewEnabled(gridView);
+ return true;
+ });
+ } else {
+ Log.e(TAG, "Could not find preference with key: \"" + getString(R.string.pref_key_branding) + "\"");
+ }
+
+ lockPref = findPreference(getString(R.string.pref_key_lock));
if (lockPref != null) {
if (!DeviceCredentialUtil.areCredentialsAvailable(requireContext())) {
lockPref.setVisible(false);
+ Preference securityCategory = findPreference(getString(R.string.pref_category_security));
+ if (securityCategory != null) {
+ securityCategory.setVisible(false);
+ } else {
+ Log.e(TAG, "Could not find preference " + getString(R.string.pref_category_security));
+ }
} else {
lockPref.setOnPreferenceChangeListener((preference, newValue) -> {
Notes.setLockedPreference((Boolean) newValue);
@@ -51,7 +101,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
return true;
});
- final SwitchPreference wifiOnlyPref = findPreference(getString(R.string.pref_key_wifi_only));
+ wifiOnlyPref = findPreference(getString(R.string.pref_key_wifi_only));
assert wifiOnlyPref != null;
wifiOnlyPref.setOnPreferenceChangeListener((preference, newValue) -> {
Log.i(TAG, "syncOnWifiOnly: " + newValue);
@@ -66,4 +116,25 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
return true;
});
}
+
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ @Nullable Context context = getContext();
+ if (context != null) {
+ @ColorInt final int mainColor = BrandingUtil.readBrandMainColor(context);
+ @ColorInt final int textColor = BrandingUtil.readBrandTextColor(context);
+ applyBrand(mainColor, textColor);
+ }
+ }
+
+ @Override
+ public void applyBrand(int mainColor, int textColor) {
+ fontPref.applyBrand(mainColor, textColor);
+ lockPref.applyBrand(mainColor, textColor);
+ wifiOnlyPref.applyBrand(mainColor, textColor);
+ brandingPref.applyBrand(mainColor, textColor);
+ gridViewPref.applyBrand(mainColor, textColor);
+ }
}