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