From a88329504c5e2f842eaeb68e5b71b527a706d2c8 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Fri, 23 Aug 2024 17:01:16 +0200 Subject: [PATCH] fix: issues with expandable text views --- .../github/libretube/ui/fragments/AudioPlayerFragment.kt | 6 ++++++ .../com/github/libretube/ui/views/ExpandableTextView.kt | 7 +++++++ app/src/main/res/layout/fragment_audio_player.xml | 1 - app/src/main/res/layout/fragment_channel.xml | 4 +--- app/src/main/res/layout/fragment_playlist.xml | 5 +---- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt index aade47690a..051450e572 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt @@ -34,6 +34,7 @@ import com.github.libretube.extensions.togglePlayPauseState import com.github.libretube.extensions.updateIfChanged import com.github.libretube.helpers.AudioHelper import com.github.libretube.helpers.BackgroundHelper +import com.github.libretube.helpers.ClipboardHelper import com.github.libretube.helpers.ImageHelper import com.github.libretube.helpers.NavBarHelper import com.github.libretube.helpers.NavigationHelper @@ -117,6 +118,11 @@ class AudioPlayerFragment : Fragment(), AudioPlayerOptions { binding.title.isSelected = true binding.uploader.isSelected = true + binding.title.setOnLongClickListener { + ClipboardHelper.save(requireContext(), text = binding.title.text.toString()) + true + } + binding.minimizePlayer.setOnClickListener { val mainMotionLayout = mainActivity.binding.mainMotionLayout mainMotionLayout.transitionToStart() diff --git a/app/src/main/java/com/github/libretube/ui/views/ExpandableTextView.kt b/app/src/main/java/com/github/libretube/ui/views/ExpandableTextView.kt index 22932c38ad..7104c03131 100644 --- a/app/src/main/java/com/github/libretube/ui/views/ExpandableTextView.kt +++ b/app/src/main/java/com/github/libretube/ui/views/ExpandableTextView.kt @@ -2,9 +2,11 @@ package com.github.libretube.ui.views import android.content.Context import android.text.TextUtils +import android.text.util.Linkify import android.util.AttributeSet import androidx.appcompat.widget.AppCompatTextView import com.github.libretube.R +import com.github.libretube.helpers.ClipboardHelper class ExpandableTextView(context: Context, attributeSet: AttributeSet? = null) : AppCompatTextView(context, attributeSet) { @@ -13,10 +15,15 @@ class ExpandableTextView(context: Context, attributeSet: AttributeSet? = null) : maxLines = DEFAULT_MAX_LINES ellipsize = TextUtils.TruncateAt.END setBackgroundResource(R.drawable.rounded_ripple) + autoLinkMask = Linkify.WEB_URLS setOnClickListener { maxLines = if (maxLines == DEFAULT_MAX_LINES) Int.MAX_VALUE else DEFAULT_MAX_LINES } + setOnLongClickListener { + ClipboardHelper.save(context, text = text.toString()) + true + } } companion object { diff --git a/app/src/main/res/layout/fragment_audio_player.xml b/app/src/main/res/layout/fragment_audio_player.xml index 639b19ed78..cffaab7abb 100644 --- a/app/src/main/res/layout/fragment_audio_player.xml +++ b/app/src/main/res/layout/fragment_audio_player.xml @@ -137,7 +137,6 @@ style="@style/TextViewMarquee" android:layout_width="match_parent" android:layout_height="wrap_content" - android:textIsSelectable="true" android:textSize="24sp" /> + android:padding="10dp" /> diff --git a/app/src/main/res/layout/fragment_playlist.xml b/app/src/main/res/layout/fragment_playlist.xml index 39a6e347b7..7f38561016 100644 --- a/app/src/main/res/layout/fragment_playlist.xml +++ b/app/src/main/res/layout/fragment_playlist.xml @@ -93,7 +93,6 @@ android:layout_weight="1" android:paddingHorizontal="5dp" android:paddingVertical="2dp" - android:textIsSelectable="true" android:textSize="20sp" android:textStyle="bold" /> @@ -147,11 +146,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginHorizontal="5dp" - android:autoLink="web" android:paddingHorizontal="10dp" android:paddingTop="5dp" - android:paddingBottom="10dp" - android:textIsSelectable="true" /> + android:paddingBottom="10dp" />