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

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-04-17 21:29:00 +0300
committerStefan Niedermann <info@niedermann.it>2020-04-17 21:29:00 +0300
commit9ce1517b6f5a031ff93137f12fee18515c126eab (patch)
tree05e748a9df66d53361a14776c3c3de0ec1040d21 /app/src/main/java/it/niedermann/nextcloud
parentbfb2e2f60d7362c7e7e4cedb0889292aa48331a4 (diff)
#317 Adjust theme for each account
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/Application.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationActivity.java3
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java16
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedPreferenceCategory.java49
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java3
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java31
6 files changed, 79 insertions, 29 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/Application.java b/app/src/main/java/it/niedermann/nextcloud/deck/Application.java
index 7155fe6ef..9bd544da9 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/Application.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/Application.java
@@ -21,12 +21,9 @@ public class Application extends android.app.Application {
public static final long NO_BOARD_ID = -1L;
public static final long NO_STACK_ID = -1L;
- private static boolean brandingEnabled = false;
-
@Override
public void onCreate() {
setAppTheme(getAppTheme(getApplicationContext()));
- brandingEnabled = getApplicationContext().getResources().getBoolean(R.bool.enable_brand);
super.onCreate();
}
@@ -58,7 +55,8 @@ public class Application extends android.app.Application {
// --------
public static boolean isBrandingEnabled(@NonNull Context context) {
- return context.getApplicationContext().getResources().getBoolean(R.bool.enable_brand);
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ return prefs.getBoolean(context.getString(R.string.pref_key_branding), false);
}
@ColorInt
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationActivity.java
index 34d9ddd67..11d00008f 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationActivity.java
@@ -9,6 +9,7 @@ import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
+import it.niedermann.nextcloud.deck.Application;
import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.ActivityPushNotificationBinding;
@@ -54,7 +55,7 @@ public class PushNotificationActivity extends AppCompatActivity implements Brand
setContentView(binding.getRoot());
setSupportActionBar(binding.toolbar);
- brandingEnabled = getResources().getBoolean(R.bool.enable_brand);
+ brandingEnabled = Application.isBrandingEnabled(this);
binding.subject.setText(getIntent().getStringExtra(KEY_SUBJECT));
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java
index fcda2ca68..6278ac1f5 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java
@@ -62,15 +62,13 @@ public abstract class BrandedActivity extends AppCompatActivity implements Brand
// TODO maybe this can be handled in R.style.AppThemLightBrand
@Override
public boolean onCreateOptionsMenu(Menu menu) {
- if (Application.isBrandingEnabled(this)) {
- @ColorInt final int textColor = Application.readBrandTextColor(this);
- for (int i = 0; i < menu.size(); i++) {
- Drawable drawable = menu.getItem(i).getIcon();
- if (drawable != null) {
- drawable = DrawableCompat.wrap(drawable);
- DrawableCompat.setTint(drawable, textColor);
- menu.getItem(i).setIcon(drawable);
- }
+ @ColorInt final int textColor = Application.readBrandTextColor(this);
+ for (int i = 0; i < menu.size(); i++) {
+ Drawable drawable = menu.getItem(i).getIcon();
+ if (drawable != null) {
+ drawable = DrawableCompat.wrap(drawable);
+ DrawableCompat.setTint(drawable, textColor);
+ menu.getItem(i).setIcon(drawable);
}
}
return super.onCreateOptionsMenu(menu);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedPreferenceCategory.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedPreferenceCategory.java
new file mode 100644
index 000000000..dd7f0a037
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedPreferenceCategory.java
@@ -0,0 +1,49 @@
+package it.niedermann.nextcloud.deck.ui.branding;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.annotation.ColorInt;
+import androidx.annotation.Nullable;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceViewHolder;
+
+import it.niedermann.nextcloud.deck.Application;
+
+import static it.niedermann.nextcloud.deck.Application.readBrandMainColor;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandedActivity.getSecondaryForegroundColorDependingOnTheme;
+
+public class BrandedPreferenceCategory extends PreferenceCategory {
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ if (Application.isBrandingEnabled(getContext())) {
+ final View v = holder.itemView.findViewById(android.R.id.title);
+ @Nullable final Context context = getContext();
+ if (context != null && v instanceof TextView) {
+ @ColorInt final int mainColor = getSecondaryForegroundColorDependingOnTheme(context, readBrandMainColor(context));
+ ((TextView) v).setTextColor(mainColor);
+ }
+ }
+ }
+
+ public BrandedPreferenceCategory(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ public BrandedPreferenceCategory(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ public BrandedPreferenceCategory(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public BrandedPreferenceCategory(Context context) {
+ super(context);
+ }
+}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java
index 7be8504ac..1e00352de 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java
@@ -13,7 +13,6 @@ import java.util.List;
import it.niedermann.nextcloud.deck.Application;
import it.niedermann.nextcloud.deck.DeckLog;
-import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.ActivityPrepareCreateBinding;
import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.model.Board;
@@ -100,7 +99,7 @@ public class PrepareCreateActivity extends BrandedActivity {
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
- brandingEnabled = getResources().getBoolean(R.bool.enable_brand);
+ brandingEnabled = Application.isBrandingEnabled(this);
binding = ActivityPrepareCreateBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java
index a7602fcc9..f531abbe1 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java
@@ -21,15 +21,17 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Brande
private BrandedSwitchPreference wifiOnlyPref;
private BrandedSwitchPreference themePref;
+ private BrandedSwitchPreference brandingPref;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.settings, rootKey);
wifiOnlyPref = findPreference(getString(R.string.pref_key_wifi_only));
+
if (wifiOnlyPref != null) {
wifiOnlyPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
- Boolean syncOnWifiOnly = (Boolean) newValue;
+ final Boolean syncOnWifiOnly = (Boolean) newValue;
DeckLog.log("syncOnWifiOnly: " + syncOnWifiOnly);
return true;
});
@@ -40,7 +42,7 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Brande
themePref = findPreference(getString(R.string.pref_key_dark_theme));
if (themePref != null) {
themePref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
- Boolean darkTheme = (Boolean) newValue;
+ final Boolean darkTheme = (Boolean) newValue;
DeckLog.log("darkTheme: " + darkTheme);
Application.setAppTheme(darkTheme);
requireActivity().setResult(Activity.RESULT_OK);
@@ -51,6 +53,19 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Brande
DeckLog.error("Could not find preference with key: \"" + getString(R.string.pref_key_dark_theme) + "\"");
}
+ brandingPref = findPreference(getString(R.string.pref_key_branding));
+ if (brandingPref != null) {
+ brandingPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
+ final Boolean branding = (Boolean) newValue;
+ DeckLog.log("branding: " + branding);
+ requireActivity().setResult(Activity.RESULT_OK);
+ requireActivity().recreate();
+ return true;
+ });
+ } else {
+ DeckLog.error("Could not find preference with key: \"" + getString(R.string.pref_key_dark_theme) + "\"");
+ }
+
final ListPreference backgroundSyncPref = findPreference(getString(R.string.pref_key_background_sync));
if (backgroundSyncPref != null) {
backgroundSyncPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
@@ -74,19 +89,9 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Brande
}
@Override
- public void onStop() {
- @Nullable Context context = getContext();
- if (context != null) {
- @ColorInt final int mainColor = Application.readBrandMainColor(context);
- @ColorInt final int textColor = Application.readBrandTextColor(context);
- applyBrand(mainColor, textColor);
- }
- super.onStop();
- }
-
- @Override
public void applyBrand(int mainColor, int textColor) {
wifiOnlyPref.applyBrand(mainColor, textColor);
themePref.applyBrand(mainColor, textColor);
+ brandingPref.applyBrand(mainColor, textColor);
}
}