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:
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AttachmentAdapter.java')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AttachmentAdapter.java106
1 files changed, 66 insertions, 40 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AttachmentAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AttachmentAdapter.java
index c6f229de9..66610543b 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AttachmentAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/AttachmentAdapter.java
@@ -11,12 +11,11 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.TextView;
+import android.widget.ImageView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.AppCompatImageView;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
@@ -24,9 +23,9 @@ import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import java.util.List;
-import butterknife.BindView;
-import butterknife.ButterKnife;
import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.databinding.ItemAttachmentDefaultBinding;
+import it.niedermann.nextcloud.deck.databinding.ItemAttachmentImageBinding;
import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.model.Attachment;
import it.niedermann.nextcloud.deck.model.enums.DBStatus;
@@ -64,10 +63,10 @@ public class AttachmentAdapter extends RecyclerView.Adapter<AttachmentAdapter.At
//noinspection SwitchStatementWithTooFewBranches
switch (viewType) {
case VIEW_TYPE_IMAGE: {
- return new ImageAttachmentViewHolder(LayoutInflater.from(context).inflate(R.layout.item_attachment_image, parent, false));
+ return new ImageAttachmentViewHolder(ItemAttachmentImageBinding.inflate(LayoutInflater.from(context), parent, false));
}
default: {
- return new DefaultAttachmentViewHolder(LayoutInflater.from(context).inflate(R.layout.item_attachment_default, parent, false));
+ return new DefaultAttachmentViewHolder(ItemAttachmentDefaultBinding.inflate(LayoutInflater.from(context), parent, false));
}
}
}
@@ -77,8 +76,8 @@ public class AttachmentAdapter extends RecyclerView.Adapter<AttachmentAdapter.At
Attachment attachment = attachments.get(position);
int viewType = getItemViewType(position);
String uri = account.getUrl() + "/index.php/apps/deck/cards/" + cardRemoteId + "/attachment/" + attachment.getId();
- holder.notSyncedYet.setVisibility(attachment.getStatusEnum() == DBStatus.UP_TO_DATE ? View.GONE : View.VISIBLE);
- holder.preview.getRootView().setOnCreateContextMenuListener((menu, v, menuInfo) -> {
+ holder.setNotSyncedYetStatus(attachment.getStatusEnum() == DBStatus.UP_TO_DATE);
+ holder.getRootView().setOnCreateContextMenuListener((menu, v, menuInfo) -> {
((Activity) context).getMenuInflater().inflate(R.menu.attachment_menu, menu);
menu.findItem(R.id.delete).setOnMenuItemClickListener(item -> {
new DeleteDialogBuilder(context)
@@ -109,13 +108,13 @@ public class AttachmentAdapter extends RecyclerView.Adapter<AttachmentAdapter.At
.load(uri)
.transform(new CenterCrop())
.error(R.drawable.ic_image_grey600_24dp)
- .into(holder.preview);
- holder.preview.setImageResource(R.drawable.ic_image_grey600_24dp);
- holder.preview.getRootView().setOnClickListener((v) -> AttachmentDialogFragment.newInstance(uri, attachment.getBasename()).show(((AppCompatActivity) context).getSupportFragmentManager(), "preview"));
+ .into(holder.getPreview());
+ holder.getPreview().setImageResource(R.drawable.ic_image_grey600_24dp);
+ holder.getPreview().getRootView().setOnClickListener((v) -> AttachmentDialogFragment.newInstance(uri, attachment.getBasename()).show(((AppCompatActivity) context).getSupportFragmentManager(), "preview"));
} else if (attachment.getMimetype().startsWith("audio")) {
- holder.preview.setImageResource(R.drawable.ic_music_note_grey600_24dp);
+ holder.getPreview().setImageResource(R.drawable.ic_music_note_grey600_24dp);
} else if (attachment.getMimetype().startsWith("video")) {
- holder.preview.setImageResource(R.drawable.ic_local_movies_grey600_24dp);
+ holder.getPreview().setImageResource(R.drawable.ic_local_movies_grey600_24dp);
}
}
@@ -127,21 +126,21 @@ public class AttachmentAdapter extends RecyclerView.Adapter<AttachmentAdapter.At
}
default: {
DefaultAttachmentViewHolder defaultHolder = (DefaultAttachmentViewHolder) holder;
- defaultHolder.filename.getRootView().setOnClickListener((event) -> {
+ defaultHolder.binding.filename.getRootView().setOnClickListener((event) -> {
Intent openURL = new Intent(android.content.Intent.ACTION_VIEW);
openURL.setData(Uri.parse(account.getUrl() + "/index.php/apps/deck/cards/" + cardRemoteId + "/attachment/" + attachment.getId()));
context.startActivity(openURL);
});
- defaultHolder.filename.setText(attachment.getBasename());
- defaultHolder.filesize.setText(Formatter.formatFileSize(context, attachment.getFilesize()));
+ defaultHolder.binding.filename.setText(attachment.getBasename());
+ defaultHolder.binding.filesize.setText(Formatter.formatFileSize(context, attachment.getFilesize()));
if (attachment.getLastModifiedLocal() != null) {
- defaultHolder.modified.setText(DateUtil.getRelativeDateTimeString(context, attachment.getLastModifiedLocal().getTime()));
- defaultHolder.modified.setVisibility(View.VISIBLE);
+ defaultHolder.binding.modified.setText(DateUtil.getRelativeDateTimeString(context, attachment.getLastModifiedLocal().getTime()));
+ defaultHolder.binding.modified.setVisibility(View.VISIBLE);
} else if (attachment.getLastModified() != null) {
- defaultHolder.modified.setText(DateUtil.getRelativeDateTimeString(context, attachment.getLastModified().getTime()));
- defaultHolder.modified.setVisibility(View.VISIBLE);
+ defaultHolder.binding.modified.setText(DateUtil.getRelativeDateTimeString(context, attachment.getLastModified().getTime()));
+ defaultHolder.binding.modified.setVisibility(View.VISIBLE);
} else {
- defaultHolder.modified.setVisibility(View.GONE);
+ defaultHolder.binding.modified.setVisibility(View.GONE);
}
break;
}
@@ -159,36 +158,63 @@ public class AttachmentAdapter extends RecyclerView.Adapter<AttachmentAdapter.At
return attachments.size();
}
- static class AttachmentViewHolder extends RecyclerView.ViewHolder {
- @BindView(R.id.preview)
- AppCompatImageView preview;
- @BindView(R.id.not_synced_yet)
- AppCompatImageView notSyncedYet;
-
+ static abstract class AttachmentViewHolder extends RecyclerView.ViewHolder {
AttachmentViewHolder(@NonNull View itemView) {
super(itemView);
}
+
+ abstract View getRootView();
+
+ abstract ImageView getPreview();
+
+ abstract void setNotSyncedYetStatus(boolean synced);
}
static class DefaultAttachmentViewHolder extends AttachmentViewHolder {
- @BindView(R.id.filename)
- TextView filename;
- @BindView(R.id.filesize)
- TextView filesize;
- @BindView(R.id.modified)
- TextView modified;
-
- private DefaultAttachmentViewHolder(View view) {
- super(view);
- ButterKnife.bind(this, view);
+ ItemAttachmentDefaultBinding binding;
+
+ private DefaultAttachmentViewHolder(ItemAttachmentDefaultBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+
+ @Override
+ View getRootView() {
+ return binding.getRoot();
+ }
+
+ @Override
+ ImageView getPreview() {
+ return binding.preview;
+ }
+
+ @Override
+ void setNotSyncedYetStatus(boolean synced) {
+ binding.notSyncedYet.setVisibility(synced ? View.GONE : View.VISIBLE);
}
}
static class ImageAttachmentViewHolder extends AttachmentViewHolder {
+ ItemAttachmentImageBinding binding;
+
+ private ImageAttachmentViewHolder(ItemAttachmentImageBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+
+ @Override
+ View getRootView() {
+ return binding.getRoot();
+ }
+
+ @Override
+ ImageView getPreview() {
+ return binding.preview;
+ }
- private ImageAttachmentViewHolder(View view) {
- super(view);
- ButterKnife.bind(this, view);
+ @Override
+ void setNotSyncedYetStatus(boolean synced) {
+ binding.notSyncedYet.setVisibility(synced ? View.GONE : View.VISIBLE);
}
}