From 9aa95413e6212b9dfcd1df24c3391e48055669e5 Mon Sep 17 00:00:00 2001 From: sk Date: Fri, 6 May 2022 00:15:56 +0200 Subject: [PATCH] make text selectable --- .../android/ui/ImageDescriptionSheet.java | 47 +++++++++++-------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/ImageDescriptionSheet.java b/mastodon/src/main/java/org/joinmastodon/android/ui/ImageDescriptionSheet.java index e80a3574c..fa2ab5338 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/ImageDescriptionSheet.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/ImageDescriptionSheet.java @@ -12,16 +12,19 @@ import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; import org.joinmastodon.android.R; import org.joinmastodon.android.model.Attachment; import org.joinmastodon.android.ui.utils.UiUtils; +import me.grishka.appkit.utils.SingleViewRecyclerAdapter; import me.grishka.appkit.utils.V; import me.grishka.appkit.views.BottomSheet; +import me.grishka.appkit.views.UsableRecyclerView; public class ImageDescriptionSheet extends BottomSheet{ - private LinearLayout layout; + private UsableRecyclerView list; public ImageDescriptionSheet(@NonNull Activity activity, Attachment attachment){ super(activity); @@ -38,26 +41,32 @@ public class ImageDescriptionSheet extends BottomSheet{ textView.setTypeface(null, Typeface.ITALIC); } else { textView.setText(attachment.description); + textView.setTextIsSelectable(true); } - TextView header = new TextView(activity); - header.setText(R.string.image_description); - header.setAllCaps(true); - header.setTypeface(null, Typeface.BOLD); - header.setPadding(0, V.dp(24), 0, V.dp(8)); + TextView heading=new TextView(activity); + heading.setText(R.string.image_description); + heading.setAllCaps(true); + heading.setTypeface(null, Typeface.BOLD); + heading.setPadding(0, V.dp(24), 0, V.dp(8)); - layout = new LinearLayout(activity); - layout.setOrientation(LinearLayout.VERTICAL); - layout.addView(header); - layout.addView(textView); + LinearLayout linearLayout = new LinearLayout(activity); + linearLayout.setOrientation(LinearLayout.VERTICAL); + linearLayout.setPadding(V.dp(24), 0, V.dp(24), 0); + linearLayout.addView(heading); + linearLayout.addView(textView); - FrameLayout content=new FrameLayout(activity); - content.setBackgroundResource(R.drawable.bg_bottom_sheet); - content.addView(handle); - content.addView(layout); - content.setPadding(V.dp(24), V.dp(0), V.dp(24), V.dp(0)); + FrameLayout layout=new FrameLayout(activity); + layout.addView(handle); + layout.addView(linearLayout); - setContentView(content); + list=new UsableRecyclerView(activity); + list.setLayoutManager(new LinearLayoutManager(activity)); + list.setBackgroundResource(R.drawable.bg_bottom_sheet); + list.setAdapter(new SingleViewRecyclerAdapter(layout)); + list.setClipToPadding(false); + + setContentView(list); setNavigationBarBackground(new ColorDrawable(UiUtils.getThemeColor(activity, R.attr.colorWindowBackground)), !UiUtils.isDarkTheme()); } @@ -67,12 +76,12 @@ public class ImageDescriptionSheet extends BottomSheet{ int tappableBottom=insets.getTappableElementInsets().bottom; int insetBottom=insets.getSystemWindowInsetBottom(); if(tappableBottom==0 && insetBottom>0){ - layout.setPadding(0, 0, 0, V.dp(48)-insetBottom); + list.setPadding(0, 0, 0, V.dp(48)-insetBottom); }else{ - layout.setPadding(0, 0, 0, V.dp(24)); + list.setPadding(0, 0, 0, V.dp(24)); } }else{ - layout.setPadding(0, 0, 0, V.dp(24)); + list.setPadding(0, 0, 0, V.dp(24)); } } }