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-03-07 21:24:43 +0300
committerstefan-niedermann <info@niedermann.it>2020-03-07 21:24:43 +0300
commitf180824ec20453fe281d859bdd04aac53684ae16 (patch)
treec635b2ce5e2b2a5ad54f395970b5b120d35f21d1 /app/src/main/java/it/niedermann/nextcloud/deck/ui/attachments
parent656f1d4cc1596a7b6b5fc4b2aa28d8726956acc7 (diff)
Make attachment viewer swipeable
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/attachments')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/attachments/AttachmentAdapter.java74
1 files changed, 74 insertions, 0 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/attachments/AttachmentAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/attachments/AttachmentAdapter.java
new file mode 100644
index 000000000..1d7307ccd
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/attachments/AttachmentAdapter.java
@@ -0,0 +1,74 @@
+package it.niedermann.nextcloud.deck.ui.attachments;
+
+import android.content.Context;
+import android.os.Build;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+
+import java.util.List;
+
+import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.databinding.ItemAttachmentBinding;
+import it.niedermann.nextcloud.deck.model.Account;
+import it.niedermann.nextcloud.deck.model.Attachment;
+import it.niedermann.nextcloud.deck.util.AttachmentUtil;
+
+public class AttachmentAdapter extends RecyclerView.Adapter<AttachmentAdapter.AttachmentViewHolder> {
+
+ private final Account account;
+ private final long cardRemoteId;
+ @NonNull
+ private List<Attachment> attachments;
+ private Context context;
+
+ public AttachmentAdapter(@NonNull Account account, long cardRemoteId, @NonNull List<Attachment> attachments) {
+ super();
+ this.attachments = attachments;
+ this.account = account;
+ this.cardRemoteId = cardRemoteId;
+ }
+
+ @NonNull
+ @Override
+ public AttachmentViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ this.context = parent.getContext();
+ return new AttachmentViewHolder(ItemAttachmentBinding.inflate(LayoutInflater.from(context), parent, false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull AttachmentViewHolder holder, int position) {
+ Attachment attachment = attachments.get(position);
+ String uri = AttachmentUtil.getUrl(account.getUrl(), cardRemoteId, attachment.getId());
+ if (attachment.getMimetype() != null) {
+ if (attachment.getMimetype().startsWith("image")) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ holder.binding.preview.setTransitionName(context.getString(R.string.transition_attachment_preview, String.valueOf(attachment.getLocalId())));
+ }
+ holder.binding.preview.setImageResource(R.drawable.ic_image_grey600_24dp);
+ Glide.with(context)
+ .load(uri)
+ .error(R.drawable.ic_image_grey600_24dp)
+ .into(holder.binding.preview);
+ }
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return attachments.size();
+ }
+
+ static class AttachmentViewHolder extends RecyclerView.ViewHolder {
+ private ItemAttachmentBinding binding;
+
+ private AttachmentViewHolder(ItemAttachmentBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+ }
+}