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-06-30 14:51:52 +0300
committerStefan Niedermann <info@niedermann.it>2020-06-30 14:51:52 +0300
commited7a25361a1f1ec6f6e116464f62aadbc84f7588 (patch)
treee3af90b449fcdd78e38ca62f70bb2ca5c1fce74d /app/src/main/java/it/niedermann/nextcloud
parentebecdb942bf4b1f70291700519380f743fc25ff7 (diff)
#525 Adjust design to new style of Nextcloud app
Move static branding helper functions to BrandingUtil
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/Application.java34
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java10
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationActivity.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlAdapter.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsAdapter.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedAlertDialogBuilder.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDatePickerDialog.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDialogFragment.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedFragment.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedPreferenceCategory.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSwitchPreference.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedTimePickerDialog.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java33
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsAdapter.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsActivity.java10
-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.java6
19 files changed, 94 insertions, 87 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 e4e139d52..8939d40eb 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/Application.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/Application.java
@@ -3,14 +3,11 @@ package it.niedermann.nextcloud.deck;
import android.content.Context;
import android.content.SharedPreferences;
-import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.preference.PreferenceManager;
import com.jakewharton.threetenabp.AndroidThreeTen;
-import it.niedermann.nextcloud.deck.ui.branding.BrandedActivity;
-
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO;
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES;
import static androidx.appcompat.app.AppCompatDelegate.setDefaultNightMode;
@@ -52,37 +49,6 @@ public class Application extends android.app.Application {
return prefs.getBoolean(context.getString(R.string.pref_key_dark_theme), false);
}
- // --------
- // Branding
- // --------
-
- public static boolean isBrandingEnabled(@NonNull Context context) {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- return prefs.getBoolean(context.getString(R.string.pref_key_branding), true);
- }
-
- @ColorInt
- public static int readBrandMainColor(@NonNull Context context) {
- if (Application.isBrandingEnabled(context)) {
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
- DeckLog.log("--- Read: shared_preference_theme_main");
- return sharedPreferences.getInt(context.getString(R.string.shared_preference_theme_main), context.getApplicationContext().getResources().getColor(R.color.defaultBrand));
- } else {
- return context.getResources().getColor(R.color.primary);
- }
- }
-
- public static void saveBrandColors(@NonNull Context context, @ColorInt int mainColor) {
- if (isBrandingEnabled(context) && context instanceof BrandedActivity) {
- final BrandedActivity activity = (BrandedActivity) context;
- activity.applyBrand(mainColor);
- }
- SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
- DeckLog.log("--- Write: shared_preference_theme_main" + " | " + mainColor);
- editor.putInt(context.getString(R.string.shared_preference_theme_main), mainColor);
- editor.apply();
- }
-
// --------------------------------------
// Current account / board / stack states
// --------------------------------------
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
index 3c8cc4f38..c487a5edd 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
@@ -101,9 +101,11 @@ import static androidx.lifecycle.Transformations.switchMap;
import static it.niedermann.nextcloud.deck.Application.NO_ACCOUNT_ID;
import static it.niedermann.nextcloud.deck.Application.NO_BOARD_ID;
import static it.niedermann.nextcloud.deck.Application.NO_STACK_ID;
+import static it.niedermann.nextcloud.deck.Application.saveCurrentAccountId;
import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToFAB;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToPrimaryTabLayout;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.saveBrandColors;
import static it.niedermann.nextcloud.deck.util.ColorUtil.contrastRatioIsSufficient;
import static it.niedermann.nextcloud.deck.util.DrawerMenuUtil.MENU_ID_ABOUT;
import static it.niedermann.nextcloud.deck.util.DrawerMenuUtil.MENU_ID_ADD_BOARD;
@@ -195,7 +197,7 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
}).observe(this, (List<Account> accounts) -> {
if (accounts == null || accounts.size() == 0) {
// Last account has been deleted. hasAccounts LiveData will handle this, but we make sure, that branding is reset.
- Application.saveBrandColors(this, getResources().getColor(R.color.primary));
+ saveBrandColors(this, getResources().getColor(R.color.primary));
return;
}
@@ -233,8 +235,8 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
SingleAccountHelper.setCurrentAccount(getApplicationContext(), mainViewModel.getCurrentAccount().getName());
syncManager = new SyncManager(this);
- Application.saveBrandColors(this, parseColor(mainViewModel.getCurrentAccount().getColor()));
- Application.saveCurrentAccountId(this, mainViewModel.getCurrentAccount().getId());
+ saveBrandColors(this, parseColor(mainViewModel.getCurrentAccount().getColor()));
+ saveCurrentAccountId(this, mainViewModel.getCurrentAccount().getId());
if (mainViewModel.getCurrentAccount().isMaintenanceEnabled()) {
refreshCapabilities(mainViewModel.getCurrentAccount());
}
@@ -517,7 +519,7 @@ public class MainActivity extends BrandedActivity implements DeleteStackListener
recreate();
}
@ColorInt final int mainColor = parseColor(response.getColor());
- runOnUiThread(() -> Application.saveBrandColors(MainActivity.this, mainColor));
+ runOnUiThread(() -> saveBrandColors(MainActivity.this, mainColor));
}
}
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 36ddf2c15..e825200aa 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
@@ -12,7 +12,6 @@ import androidx.annotation.UiThread;
import com.nextcloud.android.sso.helper.SingleAccountHelper;
-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;
@@ -25,6 +24,8 @@ import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler;
import static android.graphics.Color.parseColor;
import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.saveBrandColors;
public class PushNotificationActivity extends BrandedActivity {
@@ -53,7 +54,7 @@ public class PushNotificationActivity extends BrandedActivity {
setContentView(binding.getRoot());
setSupportActionBar(binding.toolbar);
- brandingEnabled = Application.isBrandingEnabled(this);
+ brandingEnabled = isBrandingEnabled(this);
binding.subject.setText(getIntent().getStringExtra(KEY_SUBJECT));
@@ -151,7 +152,7 @@ public class PushNotificationActivity extends BrandedActivity {
@UiThread
private void launchEditActivity(@NonNull Account account, Long boardId, Long cardId) {
try {
- Application.saveBrandColors(this, Color.parseColor(account.getColor()));
+ saveBrandColors(this, Color.parseColor(account.getColor()));
} catch (Throwable t) {
DeckLog.logError(t);
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlAdapter.java
index a18704b13..e5a50d9f4 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlAdapter.java
@@ -17,7 +17,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.NoSuchElementException;
-import it.niedermann.nextcloud.deck.Application;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.ItemAccessControlBinding;
import it.niedermann.nextcloud.deck.databinding.ItemAccessControlOwnerBinding;
@@ -28,6 +27,7 @@ import it.niedermann.nextcloud.deck.ui.branding.Branded;
import it.niedermann.nextcloud.deck.util.ViewUtil;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
public class AccessControlAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements Branded {
@@ -121,7 +121,7 @@ public class AccessControlAdapter extends RecyclerView.Adapter<RecyclerView.View
accessControlChangedListener.updateAccessControl(ac);
});
- if (Application.isBrandingEnabled(context)) {
+ if (isBrandingEnabled(context)) {
if (hasManagePermission) {
brandSwitch(context, acHolder.binding.permissionEdit, mainColor);
brandSwitch(context, acHolder.binding.permissionManage, mainColor);
@@ -159,7 +159,7 @@ public class AccessControlAdapter extends RecyclerView.Adapter<RecyclerView.View
@Override
public void applyBrand(int mainColor) {
- if (Application.isBrandingEnabled(context)) {
+ if (isBrandingEnabled(context)) {
this.mainColor = getSecondaryForegroundColorDependingOnTheme(context, mainColor);
notifyDataSetChanged();
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsAdapter.java
index d5ae68259..d8bb57a11 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsAdapter.java
@@ -11,13 +11,13 @@ import java.util.LinkedList;
import java.util.List;
import java.util.NoSuchElementException;
-import it.niedermann.nextcloud.deck.Application;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.ItemManageLabelBinding;
import it.niedermann.nextcloud.deck.model.Label;
import it.niedermann.nextcloud.deck.ui.branding.Branded;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
public class ManageLabelsAdapter extends RecyclerView.Adapter<ManageLabelsViewHolder> implements Branded {
@@ -76,7 +76,7 @@ public class ManageLabelsAdapter extends RecyclerView.Adapter<ManageLabelsViewHo
@Override
public void applyBrand(int mainColor) {
- if (Application.isBrandingEnabled(context)) {
+ if (isBrandingEnabled(context)) {
this.mainColor = getSecondaryForegroundColorDependingOnTheme(context, mainColor);
notifyDataSetChanged();
}
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 37d6b3c1e..3420e888b 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
@@ -6,9 +6,10 @@ import android.view.Menu;
import androidx.annotation.ColorInt;
import androidx.appcompat.app.AppCompatActivity;
-import it.niedermann.nextcloud.deck.Application;
import it.niedermann.nextcloud.deck.R;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.tintMenuIcon;
public abstract class BrandedActivity extends AppCompatActivity implements Branded {
@@ -24,8 +25,8 @@ public abstract class BrandedActivity extends AppCompatActivity implements Brand
getTheme().resolveAttribute(R.attr.colorAccent, typedValue, true);
colorAccent = typedValue.data;
- if (Application.isBrandingEnabled(this)) {
- @ColorInt final int mainColor = Application.readBrandMainColor(this);
+ if (isBrandingEnabled(this)) {
+ @ColorInt final int mainColor = readBrandMainColor(this);
applyBrand(mainColor);
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedAlertDialogBuilder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedAlertDialogBuilder.java
index a4b64eda6..cfeffe7dc 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedAlertDialogBuilder.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedAlertDialogBuilder.java
@@ -11,9 +11,8 @@ import androidx.appcompat.app.AlertDialog;
import org.jetbrains.annotations.NotNull;
-import it.niedermann.nextcloud.deck.Application;
-
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
public class BrandedAlertDialogBuilder extends AlertDialog.Builder implements Branded {
@@ -29,7 +28,7 @@ public class BrandedAlertDialogBuilder extends AlertDialog.Builder implements Br
this.dialog = super.create();
@NonNull Context context = getContext();
- @ColorInt final int mainColor = Application.readBrandMainColor(context);
+ @ColorInt final int mainColor = readBrandMainColor(context);
applyBrand(mainColor);
dialog.setOnShowListener(dialog -> applyBrand(mainColor));
return dialog;
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDatePickerDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDatePickerDialog.java
index 1447412cf..766562655 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDatePickerDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDatePickerDialog.java
@@ -17,6 +17,8 @@ import java.util.Calendar;
import it.niedermann.nextcloud.deck.Application;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
public class BrandedDatePickerDialog extends DatePickerDialog implements Branded {
@@ -25,9 +27,8 @@ public class BrandedDatePickerDialog extends DatePickerDialog implements Branded
@Nullable Context context = getContext();
if (context != null) {
setThemeDark(Application.isDarkTheme(context));
- if (Application.isBrandingEnabled(context)) {
- @ColorInt final int mainColor = Application.readBrandMainColor(context);
- applyBrand(mainColor);
+ if (isBrandingEnabled(context)) {
+ applyBrand(readBrandMainColor(context));
}
}
return super.onCreateView(inflater, container, savedInstanceState);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDialogFragment.java
index 7174323a8..adf3844e9 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDialogFragment.java
@@ -2,11 +2,11 @@ package it.niedermann.nextcloud.deck.ui.branding;
import android.content.Context;
-import androidx.annotation.ColorInt;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
-import it.niedermann.nextcloud.deck.Application;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
public abstract class BrandedDialogFragment extends DialogFragment implements Branded {
@@ -16,9 +16,8 @@ public abstract class BrandedDialogFragment extends DialogFragment implements Br
@Nullable Context context = getContext();
if (context != null) {
- if (Application.isBrandingEnabled(context)) {
- @ColorInt final int mainColor = Application.readBrandMainColor(context);
- applyBrand(mainColor);
+ if (isBrandingEnabled(context)) {
+ applyBrand(readBrandMainColor(context));
}
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedFragment.java
index 2c9e23ae1..fe202f48c 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedFragment.java
@@ -2,11 +2,11 @@ package it.niedermann.nextcloud.deck.ui.branding;
import android.content.Context;
-import androidx.annotation.ColorInt;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
-import it.niedermann.nextcloud.deck.Application;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
public abstract class BrandedFragment extends Fragment implements Branded {
@@ -15,9 +15,8 @@ public abstract class BrandedFragment extends Fragment implements Branded {
super.onStart();
@Nullable Context context = getContext();
- if (context != null && Application.isBrandingEnabled(context)) {
- @ColorInt final int mainColor = Application.readBrandMainColor(context);
- applyBrand(mainColor);
+ if (context != null && isBrandingEnabled(context)) {
+ applyBrand(readBrandMainColor(context));
}
}
}
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
index 6bab51069..e01c523c6 100644
--- 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
@@ -10,10 +10,9 @@ 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.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
public class BrandedPreferenceCategory extends PreferenceCategory {
@@ -21,7 +20,7 @@ public class BrandedPreferenceCategory extends PreferenceCategory {
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
- if (Application.isBrandingEnabled(getContext())) {
+ if (isBrandingEnabled(getContext())) {
final View v = holder.itemView.findViewById(android.R.id.title);
@Nullable final Context context = getContext();
if (context != null && v instanceof TextView) {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java
index b28b00ac0..937373932 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java
@@ -3,23 +3,26 @@ package it.niedermann.nextcloud.deck.ui.branding;
import android.graphics.Color;
import android.view.View;
+import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import com.google.android.material.snackbar.BaseTransientBottomBar;
import com.google.android.material.snackbar.Snackbar;
-import it.niedermann.nextcloud.deck.Application;
import it.niedermann.nextcloud.deck.util.ColorUtil;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
+
public class BrandedSnackbar {
@NonNull
public static Snackbar make(
@NonNull View view, @NonNull CharSequence text, @BaseTransientBottomBar.Duration int duration) {
final Snackbar snackbar = Snackbar.make(view, text, duration);
- if (Application.isBrandingEnabled(view.getContext())) {
- int color = Application.readBrandMainColor(view.getContext());
+ if (isBrandingEnabled(view.getContext())) {
+ @ColorInt final int color = readBrandMainColor(view.getContext());
snackbar.setActionTextColor(ColorUtil.isColorDark(color) ? Color.WHITE : color);
}
return snackbar;
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSwitchPreference.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSwitchPreference.java
index 6137e15c9..463800a0a 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSwitchPreference.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSwitchPreference.java
@@ -13,10 +13,10 @@ import androidx.core.graphics.drawable.DrawableCompat;
import androidx.preference.PreferenceViewHolder;
import androidx.preference.SwitchPreference;
-import it.niedermann.nextcloud.deck.Application;
import it.niedermann.nextcloud.deck.R;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
public class BrandedSwitchPreference extends SwitchPreference implements Branded {
@@ -46,7 +46,7 @@ public class BrandedSwitchPreference extends SwitchPreference implements Branded
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
- if (Application.isBrandingEnabled(getContext()) && holder.itemView instanceof ViewGroup) {
+ if (isBrandingEnabled(getContext()) && holder.itemView instanceof ViewGroup) {
switchView = findSwitchWidget(holder.itemView);
if (mainColor != null) {
applyBrand();
@@ -58,7 +58,7 @@ public class BrandedSwitchPreference extends SwitchPreference implements Branded
public void applyBrand(@ColorInt int mainColor) {
this.mainColor = mainColor;
// onBindViewHolder is called after applyBrand, therefore we have to store the given values and apply them later.
- if (Application.isBrandingEnabled(getContext())) {
+ if (isBrandingEnabled(getContext())) {
applyBrand();
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedTimePickerDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedTimePickerDialog.java
index e8cb50a30..69f20654d 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedTimePickerDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedTimePickerDialog.java
@@ -17,6 +17,8 @@ import java.util.Calendar;
import it.niedermann.nextcloud.deck.Application;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
public class BrandedTimePickerDialog extends TimePickerDialog implements Branded {
@@ -25,9 +27,8 @@ public class BrandedTimePickerDialog extends TimePickerDialog implements Branded
@Nullable Context context = getContext();
if (context != null) {
setThemeDark(Application.isDarkTheme(context));
- if (Application.isBrandingEnabled(context)) {
- @ColorInt final int mainColor = Application.readBrandMainColor(context);
- applyBrand(mainColor);
+ if (isBrandingEnabled(context)) {
+ applyBrand(readBrandMainColor(context));
}
}
return super.onCreateView(inflater, container, savedInstanceState);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java
index 0ad765faa..fca1a766b 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java
@@ -1,6 +1,7 @@
package it.niedermann.nextcloud.deck.ui.branding;
import android.content.Context;
+import android.content.SharedPreferences;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
@@ -11,6 +12,7 @@ import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.preference.PreferenceManager;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.tabs.TabLayout;
@@ -30,6 +32,37 @@ public abstract class BrandingUtil {
// Util class
}
+ // --------
+ // Branding
+ // --------
+
+ public static boolean isBrandingEnabled(@NonNull Context context) {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ return prefs.getBoolean(context.getString(R.string.pref_key_branding), true);
+ }
+
+ @ColorInt
+ public static int readBrandMainColor(@NonNull Context context) {
+ if (isBrandingEnabled(context)) {
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
+ DeckLog.log("--- Read: shared_preference_theme_main");
+ return sharedPreferences.getInt(context.getString(R.string.shared_preference_theme_main), context.getApplicationContext().getResources().getColor(R.color.defaultBrand));
+ } else {
+ return context.getResources().getColor(R.color.primary);
+ }
+ }
+
+ public static void saveBrandColors(@NonNull Context context, @ColorInt int mainColor) {
+ if (isBrandingEnabled(context) && context instanceof BrandedActivity) {
+ final BrandedActivity activity = (BrandedActivity) context;
+ activity.applyBrand(mainColor);
+ }
+ SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
+ DeckLog.log("--- Write: shared_preference_theme_main" + " | " + mainColor);
+ editor.putInt(context.getString(R.string.shared_preference_theme_main), mainColor);
+ editor.apply();
+ }
+
/**
* Since we may collide with dark theme in this area, we have to make sure that the color is visible depending on the background
*/
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsAdapter.java
index 68e23c7d7..169a37c79 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsAdapter.java
@@ -16,8 +16,8 @@ import it.niedermann.nextcloud.deck.databinding.ItemCommentBinding;
import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.model.ocs.comment.full.FullDeckComment;
-import static it.niedermann.nextcloud.deck.Application.readBrandMainColor;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
public class CardCommentsAdapter extends RecyclerView.Adapter<ItemCommentViewHolder> {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsActivity.java
index d5c20ad71..c7db3feb5 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsActivity.java
@@ -15,7 +15,9 @@ import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
import it.niedermann.nextcloud.deck.ui.branding.BrandedActivity;
+import static it.niedermann.nextcloud.deck.Application.saveCurrentAccountId;
import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.saveBrandColors;
public class ManageAccountsActivity extends BrandedActivity {
@@ -39,8 +41,8 @@ public class ManageAccountsActivity extends BrandedActivity {
adapter = new ManageAccountAdapter((account) -> {
SingleAccountHelper.setCurrentAccount(getApplicationContext(), account.getName());
syncManager = new SyncManager(this);
- Application.saveBrandColors(this, Color.parseColor(account.getColor()));
- Application.saveCurrentAccountId(this, account.getId());
+ saveBrandColors(this, Color.parseColor(account.getColor()));
+ saveCurrentAccountId(this, account.getId());
}, (accountPair) -> {
if (accountPair.first != null) {
syncManager.deleteAccount(accountPair.first.getId());
@@ -50,8 +52,8 @@ public class ManageAccountsActivity extends BrandedActivity {
Account newAccount = accountPair.second;
if (newAccount != null) {
SingleAccountHelper.setCurrentAccount(getApplicationContext(), newAccount.getName());
- Application.saveBrandColors(this, Color.parseColor(newAccount.getColor()));
- Application.saveCurrentAccountId(this, newAccount.getId());
+ saveBrandColors(this, Color.parseColor(newAccount.getColor()));
+ saveCurrentAccountId(this, newAccount.getId());
syncManager = new SyncManager(this);
} else {
Log.i(TAG, "Got delete account request, but new account is null. Maybe last account has been deleted?");
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 6a329b413..231a90a18 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
@@ -29,6 +29,7 @@ import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler;
import static android.graphics.Color.parseColor;
import static androidx.lifecycle.Transformations.switchMap;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.isBrandingEnabled;
public class PrepareCreateActivity extends BrandedActivity {
@@ -98,7 +99,7 @@ public class PrepareCreateActivity extends BrandedActivity {
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
- brandingEnabled = Application.isBrandingEnabled(this);
+ brandingEnabled = 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 299ec7499..ff110d1df 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
@@ -4,7 +4,6 @@ import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
-import androidx.annotation.ColorInt;
import androidx.annotation.Nullable;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
@@ -17,6 +16,8 @@ import it.niedermann.nextcloud.deck.persistence.sync.SyncWorker;
import it.niedermann.nextcloud.deck.ui.branding.Branded;
import it.niedermann.nextcloud.deck.ui.branding.BrandedSwitchPreference;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
+
public class SettingsFragment extends PreferenceFragmentCompat implements Branded {
private BrandedSwitchPreference wifiOnlyPref;
@@ -82,8 +83,7 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Brande
super.onStart();
@Nullable Context context = getContext();
if (context != null) {
- @ColorInt final int mainColor = Application.readBrandMainColor(context);
- applyBrand(mainColor);
+ applyBrand(readBrandMainColor(context));
}
}