From 40a058e3690cf4d170e35485f36aad2966b6457f Mon Sep 17 00:00:00 2001 From: Kelvin K Date: Mon, 24 Nov 2025 23:36:12 +0100 Subject: [PATCH] Fix empty library clear, comment ui change --- .../mainactivity/main/LibraryFragment.kt | 7 +++++++ .../platformplayer/views/LibrarySection.kt | 4 ++++ .../views/adapters/CommentViewHolder.kt | 9 ++++---- .../platformplayer/views/pills/PillButton.kt | 16 ++++++++++++++ app/src/main/res/layout/list_comment.xml | 21 +++++++++---------- 5 files changed, 41 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/LibraryFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/LibraryFragment.kt index 8324f114..92ef927f 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/LibraryFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/LibraryFragment.kt @@ -12,6 +12,7 @@ import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView import androidx.activity.result.contract.ActivityResultContracts +import androidx.collection.emptyLongSet import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat @@ -273,6 +274,8 @@ class LibraryFragment : MainFragment() { "No artists were found on your device", -1 ); + else + sectionArtists.clearEmpty(); } else if(Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { sectionAlbums.isVisible = false; @@ -290,6 +293,8 @@ class LibraryFragment : MainFragment() { adapterAlbums.setData(albums); if (albums.size == 0) sectionAlbums.setEmpty("No albums", "No albums were found on your device", -1); + else + sectionAlbums.clearEmpty(); } else if(Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { sectionArtists.isVisible = false; @@ -307,6 +312,8 @@ class LibraryFragment : MainFragment() { adapterVideos.setData(videos); if (videos.size == 0) sectionVideos.setEmpty("No videos", "No videos were found on your device", -1); + else + sectionVideos.clearEmpty(); } else if(Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { sectionVideos.isVisible = false; diff --git a/app/src/main/java/com/futo/platformplayer/views/LibrarySection.kt b/app/src/main/java/com/futo/platformplayer/views/LibrarySection.kt index f9af189c..ccaccbb4 100644 --- a/app/src/main/java/com/futo/platformplayer/views/LibrarySection.kt +++ b/app/src/main/java/com/futo/platformplayer/views/LibrarySection.kt @@ -53,4 +53,8 @@ class LibrarySection: ConstraintLayout { recycler.isVisible = false; noContent.setText(title, txt, iconId); } + fun clearEmpty() { + noContent.isVisible = false; + recycler.isVisible = true; + } } \ No newline at end of file diff --git a/app/src/main/java/com/futo/platformplayer/views/adapters/CommentViewHolder.kt b/app/src/main/java/com/futo/platformplayer/views/adapters/CommentViewHolder.kt index a7873328..9818694a 100644 --- a/app/src/main/java/com/futo/platformplayer/views/adapters/CommentViewHolder.kt +++ b/app/src/main/java/com/futo/platformplayer/views/adapters/CommentViewHolder.kt @@ -3,9 +3,7 @@ package com.futo.platformplayer.views.adapters import android.content.ClipData import android.content.ClipboardManager import android.content.Context -import android.view.GestureDetector import android.view.LayoutInflater -import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.widget.FrameLayout @@ -46,7 +44,7 @@ class CommentViewHolder : ViewHolder { private val _imageLikeIcon: ImageView; private val _textLikes: TextView; private val _imageDislikeIcon: ImageView; - private val _imageCopy: ImageView; + private val _buttonCopy: PillButton; private val _textDislikes: TextView; private val _buttonReplies: PillButton; private val _layoutRating: LinearLayout; @@ -70,7 +68,7 @@ class CommentViewHolder : ViewHolder { _textMetadata = itemView.findViewById(R.id.text_metadata); _textBody = itemView.findViewById(R.id.text_body); _imageLikeIcon = itemView.findViewById(R.id.image_like_icon); - _imageCopy = itemView.findViewById(R.id.image_copy); + _buttonCopy = itemView.findViewById(R.id.image_copy); _textLikes = itemView.findViewById(R.id.text_likes); _imageDislikeIcon = itemView.findViewById(R.id.image_dislike_icon); _textDislikes = itemView.findViewById(R.id.text_dislikes); @@ -105,7 +103,8 @@ class CommentViewHolder : ViewHolder { StatePolycentric.instance.updateLikeMap(c.reference, args.hasLiked, args.hasDisliked) }; - _imageCopy.setOnLongClickListener { + _buttonCopy.setTransparant() + _buttonCopy.onClick.subscribe { val clipboard = viewGroup.context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager val text = comment?.message.orEmpty() val clip = ClipData.newPlainText("Comment", text) diff --git a/app/src/main/java/com/futo/platformplayer/views/pills/PillButton.kt b/app/src/main/java/com/futo/platformplayer/views/pills/PillButton.kt index 4ce1ecb1..a69bc736 100644 --- a/app/src/main/java/com/futo/platformplayer/views/pills/PillButton.kt +++ b/app/src/main/java/com/futo/platformplayer/views/pills/PillButton.kt @@ -7,11 +7,15 @@ import android.view.View import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView +import androidx.compose.ui.graphics.Color +import androidx.core.view.isVisible import com.futo.platformplayer.R import com.futo.platformplayer.constructs.Event0 +import com.futo.platformplayer.dp import com.futo.platformplayer.views.LoaderView class PillButton : LinearLayout { + val root: LinearLayout; val icon: ImageView; val text: TextView; val loaderView: LoaderView; @@ -23,6 +27,7 @@ class PillButton : LinearLayout { icon = findViewById(R.id.pill_icon); text = findViewById(R.id.pill_text); loaderView = findViewById(R.id.loader) + root = findViewById(R.id.root); val attrArr = context.obtainStyledAttributes(attrs, R.styleable.PillButton, 0, 0); val attrIconRef = attrArr.getResourceId(R.styleable.PillButton_pillIcon, -1); @@ -34,6 +39,13 @@ class PillButton : LinearLayout { val attrText = attrArr.getText(R.styleable.PillButton_pillText) ?: ""; text.text = attrText; + if(text.text.isNullOrBlank()) { + val dp6 = 6.dp(resources); + val dp7 = 7.dp(resources); + val dp12 = 12.dp(resources); + root.setPadding(dp7, dp6, dp7, dp7) + } + findViewById(R.id.root).setOnClickListener { if (_isLoading) { return@setOnClickListener @@ -43,6 +55,10 @@ class PillButton : LinearLayout { }; } + fun setTransparant() { + root.setBackgroundColor(0); + } + fun setLoading(loading: Boolean) { if (loading == _isLoading) { return diff --git a/app/src/main/res/layout/list_comment.xml b/app/src/main/res/layout/list_comment.xml index cfba03af..1b77a3b3 100644 --- a/app/src/main/res/layout/list_comment.xml +++ b/app/src/main/res/layout/list_comment.xml @@ -96,16 +96,6 @@ android:layout_marginTop="8dp" android:gravity="center_vertical"> - - + + + android:layout_marginStart="2dp" />