From cc629d5829edcd5ca129cd62e9be880a1ba921e4 Mon Sep 17 00:00:00 2001 From: Kai Date: Tue, 19 Aug 2025 14:27:26 -0400 Subject: [PATCH] add creator unhide page in settings Changelog: added --- app/src/main/AndroidManifest.xml | 4 + .../java/com/futo/platformplayer/Settings.kt | 14 ++- .../activities/UnhideCreatorsActivity.kt | 75 +++++++++++++ .../viewholders/HiddenCreatorViewHolder.kt | 34 ++++++ .../res/layout/activity_unhide_creators.xml | 104 ++++++++++++++++++ .../main/res/layout/list_hidden_creator.xml | 29 +++++ app/src/main/res/values/strings.xml | 3 + 7 files changed, 261 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/futo/platformplayer/activities/UnhideCreatorsActivity.kt create mode 100644 app/src/main/java/com/futo/platformplayer/views/adapters/viewholders/HiddenCreatorViewHolder.kt create mode 100644 app/src/main/res/layout/activity_unhide_creators.xml create mode 100644 app/src/main/res/layout/list_hidden_creator.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ea6f3e5b..edd91c7a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -218,6 +218,10 @@ android:name=".activities.ManageTabsActivity" android:screenOrientation="sensorPortrait" android:theme="@style/Theme.FutoVideo.NoActionBar" /> + (items) { + it.onUnhide.subscribe { + it.data?.creatorUrl?.let { creatorUrl -> + StateMeta.instance.removeHiddenCreator(creatorUrl) + + val position = items.indexOfFirst { item -> item.creatorUrl == creatorUrl } + if (position != -1) { + items.removeAt(position) + recyclerHiddenCreators.adapter!!.notifyItemRemoved(position) + } + + if (items.isEmpty()) { + zeroState.visibility = View.VISIBLE + recyclerHiddenCreators.visibility = View.GONE + } + } + } + } + + backButton.setOnClickListener { + onBackPressedDispatcher.onBackPressed() + } + } + + companion object { + @Suppress("unused") + private const val TAG = "UnhideCreatorsActivity" + } +} diff --git a/app/src/main/java/com/futo/platformplayer/views/adapters/viewholders/HiddenCreatorViewHolder.kt b/app/src/main/java/com/futo/platformplayer/views/adapters/viewholders/HiddenCreatorViewHolder.kt new file mode 100644 index 00000000..8ffe83a7 --- /dev/null +++ b/app/src/main/java/com/futo/platformplayer/views/adapters/viewholders/HiddenCreatorViewHolder.kt @@ -0,0 +1,34 @@ +package com.futo.platformplayer.views.adapters.viewholders + +import android.view.LayoutInflater +import android.view.ViewGroup +import android.widget.ImageButton +import android.widget.TextView +import com.futo.platformplayer.R +import com.futo.platformplayer.constructs.Event0 +import com.futo.platformplayer.views.adapters.AnyAdapter + +data class HiddenCreatorViewHolderData(val creatorUrl: String) + +class HiddenCreatorViewHolder(viewGroup: ViewGroup) : + AnyAdapter.AnyViewHolder( + LayoutInflater.from(viewGroup.context) + .inflate(R.layout.list_hidden_creator, viewGroup, false) + ) { + var data: HiddenCreatorViewHolderData? = null + private val _creatorLabel: TextView = _view.findViewById(R.id.text_creator_name) + + val onUnhide = Event0() + + init { + val unhideButton: ImageButton = _view.findViewById(R.id.button_trash) + unhideButton.setOnClickListener { + onUnhide.emit() + } + } + + override fun bind(value: HiddenCreatorViewHolderData) { + _creatorLabel.text = value.creatorUrl + data = value + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_unhide_creators.xml b/app/src/main/res/layout/activity_unhide_creators.xml new file mode 100644 index 00000000..25cc1f0d --- /dev/null +++ b/app/src/main/res/layout/activity_unhide_creators.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/list_hidden_creator.xml b/app/src/main/res/layout/list_hidden_creator.xml new file mode 100644 index 00000000..dbceeca0 --- /dev/null +++ b/app/src/main/res/layout/list_hidden_creator.xml @@ -0,0 +1,29 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f387e1f7..c3633247 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -91,6 +91,7 @@ Watch Later Nothing to see here The enabled sources do not have any short video results. + There are no hidden creators. Create OK Yes @@ -509,6 +510,8 @@ Reinstall Embedded Plugins Remove Cached Version Remove the last downloaded version + Manage Hidden Creators + View and selectively unhide previously hidden creators, showing them again Clear Hidden Removes all hidden creators and videos, showing them again Reset announcements