summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java')
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java
index 948dc3d12..b2c2d41f4 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java
@@ -48,6 +48,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.view.inputmethod.InputMethodManager;
+import android.webkit.URLUtil;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.GridView;
@@ -59,6 +60,7 @@ import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.AppCompatEditText;
import androidx.appcompat.widget.LinearLayoutCompat;
import androidx.core.app.ActivityCompat;
+import androidx.core.app.ActivityOptionsCompat;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.ViewModelProvider;
@@ -101,9 +103,11 @@ import app.fedilab.android.activities.MainActivity;
import app.fedilab.android.databinding.ComposeAttachmentItemBinding;
import app.fedilab.android.databinding.ComposePollBinding;
import app.fedilab.android.databinding.ComposePollItemBinding;
+import app.fedilab.android.databinding.DrawerMediaListBinding;
import app.fedilab.android.databinding.DrawerStatusComposeBinding;
import app.fedilab.android.databinding.DrawerStatusSimpleBinding;
import app.fedilab.android.mastodon.activities.ComposeActivity;
+import app.fedilab.android.mastodon.activities.MediaActivity;
import app.fedilab.android.mastodon.client.entities.api.Account;
import app.fedilab.android.mastodon.client.entities.api.Attachment;
import app.fedilab.android.mastodon.client.entities.api.Emoji;
@@ -1343,6 +1347,38 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
if (getItemViewType(position) == TYPE_NORMAL) {
Status status = statusList.get(position);
StatusSimpleViewHolder holder = (StatusSimpleViewHolder) viewHolder;
+ if(status.media_attachments != null && status.media_attachments.size() > 0 ) {
+ holder.binding.simpleMedia.removeAllViews();
+ List<Attachment> attachmentList = statusList.get(position).media_attachments;
+ for(Attachment attachment: attachmentList) {
+ DrawerMediaListBinding drawerMediaListBinding = DrawerMediaListBinding.inflate(LayoutInflater.from(context), holder.binding.simpleMedia, false);
+ Glide.with(drawerMediaListBinding.media.getContext())
+ .load(attachment.preview_url)
+ .into(drawerMediaListBinding.media);
+
+ if(attachment.filename != null) {
+ drawerMediaListBinding.mediaName.setText(attachment.filename);
+ } else if (attachment.preview_url != null){
+ drawerMediaListBinding.mediaName.setText(URLUtil.guessFileName(attachment.preview_url, null, null));
+ }
+ drawerMediaListBinding.getRoot().setOnClickListener(v->{
+ Intent mediaIntent = new Intent(context, MediaActivity.class);
+ Bundle b = new Bundle();
+ ArrayList<Attachment> attachments = new ArrayList<>();
+ attachments.add(attachment);
+ b.putSerializable(Helper.ARG_MEDIA_ARRAY, attachments);
+ mediaIntent.putExtras(b);
+ ActivityOptionsCompat options = ActivityOptionsCompat
+ .makeSceneTransitionAnimation((Activity) context, drawerMediaListBinding.media, attachment.url);
+ context.startActivity(mediaIntent, options.toBundle());
+ });
+ holder.binding.simpleMedia.addView(drawerMediaListBinding.getRoot());
+
+ }
+ holder.binding.simpleMediaContainer.setVisibility(View.VISIBLE);
+ } else {
+ holder.binding.simpleMediaContainer.setVisibility(View.GONE);
+ }
holder.binding.statusContent.setText(
status.getSpanContent(context,
new WeakReference<>(holder.binding.statusContent), () -> notifyItemChanged(position)),