diff options
author | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2023-02-12 00:34:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-12 00:34:16 +0300 |
commit | 23a8635d0a76edeeb2aa02eff296590b7695e80c (patch) | |
tree | b3ad6fd319782ebb5e590f2f5a53e2e24e9d7b3f /app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments | |
parent | a70b7edcba351e45f97e26f840a1744fb64fb2d8 (diff) |
feat(theming): Integrate android-common Nextcloud library for unified M3 theming (#1431)
* refactor(branding): Use android-common to apply branding
* refactor(branding): Rename BrandingUtil to ViewThemeUtils
* refactor(branding): Move DeckViewThemeUtils to own class
* refactor(branding): Apply theming to NavigationView
* refactor(branding): Roll out android-common based theming
* refactor(branding): Change terminology from "branding" to "theming"
* refactor(branding): Get rid of DeckColorUtil
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments')
4 files changed, 24 insertions, 21 deletions
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 18bf21ceb..b392d5725 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 @@ -1,7 +1,6 @@ package it.niedermann.nextcloud.deck.ui.card.comments; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor; +import static it.niedermann.nextcloud.deck.ui.theme.ThemeUtils.readBrandMainColor; import android.content.Context; import android.view.LayoutInflater; @@ -20,10 +19,12 @@ import it.niedermann.nextcloud.deck.DeckLog; 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 it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; +import scheme.Scheme; public class CardCommentsAdapter extends RecyclerView.Adapter<ItemCommentViewHolder> { - private final int mainColor; + private final Scheme scheme; @NonNull private final List<FullDeckComment> comments = new ArrayList<>(); @NonNull @@ -46,7 +47,7 @@ public class CardCommentsAdapter extends RecyclerView.Adapter<ItemCommentViewHol this.selectAsReplyListener = selectAsReplyListener; this.fragmentManager = fragmentManager; this.editListener = editListener; - this.mainColor = getSecondaryForegroundColorDependingOnTheme(context, readBrandMainColor(context)); + this.scheme = ThemeUtils.createScheme(readBrandMainColor(context), context); setHasStableIds(true); } @@ -64,7 +65,7 @@ public class CardCommentsAdapter extends RecyclerView.Adapter<ItemCommentViewHol @Override public void onBindViewHolder(@NonNull ItemCommentViewHolder holder, int position) { final var comment = comments.get(position); - holder.bind(comment, account, mainColor, menuInflater, deletedListener, selectAsReplyListener, fragmentManager, (changedText) -> { + holder.bind(comment, account, scheme, menuInflater, deletedListener, selectAsReplyListener, fragmentManager, (changedText) -> { if (!Objects.equals(changedText, comment.getComment().getMessage())) { DeckLog.info("Toggled checkbox in comment with localId", comment.getLocalId()); this.editListener.onCommentEdited(comment.getLocalId(), changedText.toString()); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java index b26ee84c5..abb3b1033 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java @@ -1,7 +1,5 @@ package it.niedermann.nextcloud.deck.ui.card.comments; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; - import android.app.Dialog; import android.content.Context; import android.os.Bundle; @@ -20,9 +18,10 @@ import java.util.Objects; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogAddCommentBinding; -import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; +import it.niedermann.nextcloud.deck.ui.theme.ThemedDialogFragment; -public class CardCommentsEditDialogFragment extends BrandedDialogFragment { +public class CardCommentsEditDialogFragment extends ThemedDialogFragment { private static final String BUNDLE_KEY_COMMENT_ID = "commentId"; private static final String BUNDLE_KEY_COMMENT_MESSAGE = "commentMessage"; private CommentEditedListener addCommentListener; @@ -86,8 +85,10 @@ public class CardCommentsEditDialogFragment extends BrandedDialogFragment { } @Override - public void applyBrand(int mainColor) { - applyBrandToEditTextInputLayout(mainColor, binding.inputWrapper); + public void applyTheme(int color) { + final var utils = ThemeUtils.of(color, requireContext()); + + utils.material.colorTextInputLayout(binding.inputWrapper); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java index 7e90e513a..277eb82c2 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java @@ -2,8 +2,6 @@ package it.niedermann.nextcloud.deck.ui.card.comments; import static android.view.View.GONE; import static android.view.View.VISIBLE; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToEditTextInputLayout; -import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.applyBrandToFAB; import android.os.Bundle; import android.text.TextUtils; @@ -33,6 +31,7 @@ import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; import it.niedermann.nextcloud.deck.ui.card.EditActivity; import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; import it.niedermann.nextcloud.deck.util.ViewUtil; public class CardCommentsFragment extends Fragment implements CommentEditedListener, CommentDeletedListener, CommentSelectAsReplyListener { @@ -131,7 +130,7 @@ public class CardCommentsFragment extends Fragment implements CommentEditedListe binding.message.requestFocus(); requireActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); } - mainViewModel.getBrandingColor().observe(getViewLifecycleOwner(), this::applyBrand); + mainViewModel.getBoardColor().observe(getViewLifecycleOwner(), this::applyTheme); } @Override @@ -163,9 +162,11 @@ public class CardCommentsFragment extends Fragment implements CommentEditedListe }); } - private void applyBrand(int mainColor) { - applyBrandToFAB(mainColor, binding.fab); - applyBrandToEditTextInputLayout(mainColor, binding.messageWrapper); + private void applyTheme(int color) { + final var utils = ThemeUtils.of(color, requireContext()); + + utils.material.themeFAB(binding.fab); + utils.material.colorTextInputLayout(binding.messageWrapper); } @Override diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/ItemCommentViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/ItemCommentViewHolder.java index 88cc1a904..f38e41f93 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/ItemCommentViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/ItemCommentViewHolder.java @@ -4,7 +4,6 @@ import android.text.method.LinkMovementMethod; import android.view.MenuInflater; import android.view.View; -import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.appcompat.widget.TooltipCompat; import androidx.core.graphics.drawable.DrawableCompat; @@ -26,6 +25,7 @@ import it.niedermann.nextcloud.deck.model.enums.DBStatus; import it.niedermann.nextcloud.deck.model.ocs.comment.full.FullDeckComment; import it.niedermann.nextcloud.deck.util.DateUtil; import it.niedermann.nextcloud.deck.util.ViewUtil; +import scheme.Scheme; public class ItemCommentViewHolder extends RecyclerView.ViewHolder { private final ItemCommentBinding binding; @@ -38,7 +38,7 @@ public class ItemCommentViewHolder extends RecyclerView.ViewHolder { this.binding.message.setMovementMethod(LinkMovementMethod.getInstance()); } - public void bind(@NonNull FullDeckComment comment, @NonNull Account account, @ColorInt int mainColor, @NonNull MenuInflater inflater, @NonNull CommentDeletedListener deletedListener, @NonNull CommentSelectAsReplyListener selectAsReplyListener, @NonNull FragmentManager fragmentManager, @NonNull Consumer<CharSequence> editListener) { + public void bind(@NonNull FullDeckComment comment, @NonNull Account account, @NonNull Scheme scheme, @NonNull MenuInflater inflater, @NonNull CommentDeletedListener deletedListener, @NonNull CommentSelectAsReplyListener selectAsReplyListener, @NonNull FragmentManager fragmentManager, @NonNull Consumer<CharSequence> editListener) { ViewUtil.addAvatar(binding.avatar, account.getUrl(), comment.getComment().getActorId(), DimensionUtil.INSTANCE.dpToPx(binding.avatar.getContext(), R.dimen.icon_size_details), R.drawable.ic_person_grey600_24dp); final var mentions = new HashMap<String, String>(comment.getComment().getMentions().size()); for (final var mention : comment.getComment().getMentions()) { @@ -80,7 +80,7 @@ public class ItemCommentViewHolder extends RecyclerView.ViewHolder { }); TooltipCompat.setTooltipText(binding.creationDateTime, comment.getComment().getCreationDateTime().atZone(ZoneId.systemDefault()).format(dateFormatter)); - DrawableCompat.setTint(binding.notSyncedYet.getDrawable(), mainColor); + DrawableCompat.setTint(binding.notSyncedYet.getDrawable(), scheme.getOnPrimaryContainer()); binding.notSyncedYet.setVisibility(DBStatus.LOCAL_EDITED.equals(comment.getStatusEnum()) ? View.VISIBLE : View.GONE); if (comment.getParent() == null) { @@ -88,7 +88,7 @@ public class ItemCommentViewHolder extends RecyclerView.ViewHolder { } else { final int commentParentMaxLines = itemView.getContext().getResources().getInteger(R.integer.comment_parent_max_lines); binding.parentContainer.setVisibility(View.VISIBLE); - binding.parentBorder.setBackgroundColor(mainColor); + binding.parentBorder.setBackgroundColor(scheme.getOnPrimaryContainer()); binding.parent.setText(comment.getParent().getMessage()); binding.parent.setOnClickListener((v) -> { final boolean previouslyCollapsed = binding.parent.getMaxLines() == commentParentMaxLines; |