diff options
Diffstat (limited to 'app/src/main/java/it')
7 files changed, 80 insertions, 38 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java index eba776cd7..cedcef707 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java @@ -19,6 +19,7 @@ import androidx.lifecycle.ViewModelProvider; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.nextcloud.android.common.ui.theme.utils.ColorRole; import java.util.Objects; import java.util.stream.Collectors; @@ -115,5 +116,9 @@ public class AccountSwitcherDialog extends DialogFragment { private void applyTheme(int color) { final var utils = ThemeUtils.of(color, requireContext()); utils.deck.themeSelectedCheck(binding.check.getContext(), binding.check.getDrawable()); + utils.platform.colorImageView(binding.addAccountIcon, ColorRole.ON_SURFACE); + utils.platform.colorImageView(binding.manageAccountsIcon, ColorRole.ON_SURFACE); + utils.platform.colorTextView(binding.addAccountLabel, ColorRole.ON_SURFACE); + utils.platform.colorTextView(binding.manageAccountsLabel, ColorRole.ON_SURFACE); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherViewHolder.java index bd91d4ec8..8e0e010c9 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherViewHolder.java @@ -10,6 +10,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; +import com.nextcloud.android.common.ui.theme.utils.ColorRole; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ItemAccountChooseBinding; @@ -43,5 +44,7 @@ public class AccountSwitcherViewHolder extends RecyclerView.ViewHolder { final var utils = ThemeUtils.of(account.getColor(), itemView.getContext()); utils.deck.themeSelectedCheck(binding.currentAccountIndicator.getContext(), binding.currentAccountIndicator.getDrawable()); + utils.platform.colorTextView(binding.accountName, ColorRole.ON_SURFACE); + utils.platform.colorTextView(binding.accountHost, ColorRole.ON_SURFACE_VARIANT); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityAdapter.java index a64cf3a44..adcc21dc0 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityAdapter.java @@ -5,24 +5,28 @@ import android.view.MenuInflater; import android.view.ViewGroup; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; +import java.util.ArrayList; import java.util.List; import it.niedermann.nextcloud.deck.databinding.ItemActivityBinding; import it.niedermann.nextcloud.deck.model.ocs.Activity; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; public class CardActivityAdapter extends RecyclerView.Adapter<CardActivityViewHolder> { @NonNull - private final List<Activity> activities; + private final List<Activity> activities = new ArrayList<>(); + @Nullable + private ThemeUtils utils; @NonNull private final MenuInflater menuInflater; @SuppressWarnings("WeakerAccess") - public CardActivityAdapter(@NonNull List<Activity> activities, @NonNull MenuInflater menuInflater) { + public CardActivityAdapter(@NonNull MenuInflater menuInflater) { super(); - this.activities = activities; this.menuInflater = menuInflater; } @@ -34,9 +38,16 @@ public class CardActivityAdapter extends RecyclerView.Adapter<CardActivityViewHo return new CardActivityViewHolder(binding); } + public void setData(@NonNull List<Activity> activities, @NonNull ThemeUtils utils) { + this.activities.clear(); + this.activities.addAll(activities); + this.utils = utils; + this.notifyDataSetChanged(); + } + @Override public void onBindViewHolder(@NonNull CardActivityViewHolder holder, int position) { - holder.bind(activities.get(position), menuInflater); + holder.bind(activities.get(position), menuInflater, utils); } @Override diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java index d301968c4..41d4d0963 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java @@ -9,6 +9,7 @@ import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; +import it.niedermann.android.reactivelivedata.ReactiveLiveData; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.databinding.FragmentCardEditTabActivitiesBinding; import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel; @@ -38,18 +39,22 @@ public class CardActivityFragment extends Fragment implements Themed { return binding.getRoot(); } - viewModel.getBoardColor().observe(getViewLifecycleOwner(), this::applyTheme); + final var adapter = new CardActivityAdapter(requireActivity().getMenuInflater()); + binding.activitiesList.setAdapter(adapter); - viewModel.syncActivitiesForCard(viewModel.getFullCard().getCard()).observe(getViewLifecycleOwner(), (activities -> { - if (activities == null || activities.size() == 0) { - binding.emptyContentView.setVisibility(View.VISIBLE); - binding.activitiesList.setVisibility(View.GONE); - } else { - binding.emptyContentView.setVisibility(View.GONE); - binding.activitiesList.setVisibility(View.VISIBLE); - binding.activitiesList.setAdapter(new CardActivityAdapter(activities, requireActivity().getMenuInflater())); - } - })); + new ReactiveLiveData<>(viewModel.syncActivitiesForCard(viewModel.getFullCard().getCard())) + .combineWith(viewModel::getBoardColor) + .observe(getViewLifecycleOwner(), data -> { + applyTheme(data.second); + if (data.first == null || data.first.size() == 0) { + binding.emptyContentView.setVisibility(View.VISIBLE); + binding.activitiesList.setVisibility(View.GONE); + } else { + binding.emptyContentView.setVisibility(View.GONE); + binding.activitiesList.setVisibility(View.VISIBLE); + } + adapter.setData(data.first, ThemeUtils.of(data.second, requireContext())); + }); return binding.getRoot(); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java index 1d3101d61..b9f4ca436 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityViewHolder.java @@ -1,19 +1,25 @@ package it.niedermann.nextcloud.deck.ui.card.activities; import android.content.Context; +import android.content.res.ColorStateList; import android.view.MenuInflater; import android.view.View; -import android.widget.ImageView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; +import com.nextcloud.android.common.ui.theme.utils.ColorRole; + +import java.util.function.Function; + import it.niedermann.android.util.ClipboardUtil; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ItemActivityBinding; import it.niedermann.nextcloud.deck.model.enums.ActivityType; import it.niedermann.nextcloud.deck.model.ocs.Activity; -import it.niedermann.nextcloud.deck.ui.theme.DeckViewThemeUtils; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; import it.niedermann.nextcloud.deck.util.DateUtil; public class CardActivityViewHolder extends RecyclerView.ViewHolder { @@ -25,7 +31,7 @@ public class CardActivityViewHolder extends RecyclerView.ViewHolder { this.binding = binding; } - public void bind(@NonNull Activity activity, @NonNull MenuInflater inflater) { + public void bind(@NonNull Activity activity, @NonNull MenuInflater inflater, @Nullable ThemeUtils utils) { final var context = itemView.getContext(); binding.date.setText(DateUtil.getRelativeDateTimeString(context, activity.getLastModified().toEpochMilli())); binding.subject.setText(activity.getSubject()); @@ -34,33 +40,39 @@ public class CardActivityViewHolder extends RecyclerView.ViewHolder { inflater.inflate(R.menu.activity_menu, menu); menu.findItem(android.R.id.copy).setOnMenuItemClickListener(item -> ClipboardUtil.copyToClipboard(context, activity.getSubject())); }); + final var type = ActivityType.findById(activity.getType()); - setImageResource(binding.type, type); - setImageColor(context, binding.type, type); + bindImageResource(type); + if (utils != null) { + applyTheme(context, utils, type); + } } - private static void setImageResource(@NonNull ImageView imageView, @NonNull ActivityType type) { + private void bindImageResource(@NonNull ActivityType type) { switch (type) { - case CHANGE -> imageView.setImageResource(R.drawable.type_change_36dp); - case ADD -> imageView.setImageResource(R.drawable.type_add_color_36dp); - case DELETE -> imageView.setImageResource(R.drawable.type_delete_color_36dp); - case ARCHIVE -> imageView.setImageResource(R.drawable.type_archive_36dp); - case TAGGED_WITH_LABEL -> - imageView.setImageResource(R.drawable.type_label_36dp); - case COMMENT -> imageView.setImageResource(R.drawable.type_comment_36dp); - case FILES -> imageView.setImageResource(R.drawable.type_file_36dp); - case HISTORY -> imageView.setImageResource(R.drawable.type_history_36dp); - default -> imageView.setImageResource(R.drawable.ic_app_logo); + case CHANGE -> binding.type.setImageResource(R.drawable.type_change_36dp); + case ADD -> binding.type.setImageResource(R.drawable.type_add_color_36dp); + case DELETE -> binding.type.setImageResource(R.drawable.type_delete_color_36dp); + case ARCHIVE -> binding.type.setImageResource(R.drawable.type_archive_36dp); + case TAGGED_WITH_LABEL -> binding.type.setImageResource(R.drawable.type_label_36dp); + case COMMENT -> binding.type.setImageResource(R.drawable.type_comment_36dp); + case FILES -> binding.type.setImageResource(R.drawable.type_file_36dp); + case HISTORY -> binding.type.setImageResource(R.drawable.type_history_36dp); + default -> binding.type.setImageResource(R.drawable.ic_app_logo); } } - private static void setImageColor(@NonNull Context context, @NonNull ImageView imageView, @NonNull ActivityType type) { + private void applyTheme(@NonNull Context context, @NonNull ThemeUtils utils, @NonNull ActivityType type) { + utils.platform.colorTextView(binding.subject, ColorRole.ON_SURFACE); + utils.platform.colorTextView(binding.date, ColorRole.ON_SURFACE_VARIANT); + + final Function<Integer, ColorStateList> getColor = color -> + ColorStateList.valueOf(ContextCompat.getColor(context, color)); + switch (type) { - case ADD -> - DeckViewThemeUtils.setImageColor(context, imageView, R.color.activity_create); - case DELETE -> - DeckViewThemeUtils.setImageColor(context, imageView, R.color.activity_delete); - default -> DeckViewThemeUtils.setImageColor(context, imageView, R.color.surfaceVariant); + case ADD -> binding.type.setImageTintList(getColor.apply(R.color.activity_create)); + case DELETE -> binding.type.setImageTintList(getColor.apply(R.color.activity_delete)); + default -> utils.platform.colorImageView(binding.type, ColorRole.ON_SURFACE_VARIANT); } } }
\ No newline at end of file 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 f8d805c92..839b904c0 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 @@ -109,9 +109,11 @@ public class ItemCommentViewHolder extends RecyclerView.ViewHolder { if (utils != null) { utils.platform.colorViewBackground(binding.parentBorder, ColorRole.SECONDARY); utils.platform.colorTextView(binding.parent, ColorRole.ON_SURFACE_VARIANT); + utils.platform.colorImageView(binding.notSyncedYet, ColorRole.PRIMARY); utils.platform.colorTextView(binding.actorDisplayName, ColorRole.ON_SURFACE); - utils.platform.colorTextView(binding.actorDisplayName, ColorRole.ON_SURFACE); + utils.platform.colorTextView(binding.creationDateTime, ColorRole.ON_SURFACE_VARIANT); + utils.platform.colorTextView(binding.message, ColorRole.ON_SURFACE); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountViewHolder.java index a6495817a..2ee0b1451 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountViewHolder.java @@ -14,6 +14,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; +import com.nextcloud.android.common.ui.theme.utils.ColorRole; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ItemAccountChooseBinding; @@ -58,5 +59,8 @@ public class ManageAccountViewHolder extends RecyclerView.ViewHolder { final var utils = ThemeUtils.of(account.getColor(), itemView.getContext()); utils.deck.themeSelectedCheck(binding.currentAccountIndicator.getContext(), binding.currentAccountIndicator.getDrawable()); + utils.platform.colorImageView(binding.delete, ColorRole.ON_SURFACE); + utils.platform.colorTextView(binding.accountName, ColorRole.ON_SURFACE); + utils.platform.colorTextView(binding.accountHost, ColorRole.ON_SURFACE_VARIANT); } } |