diff options
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui')
18 files changed, 94 insertions, 53 deletions
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)); } } |