mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2025-05-05 00:54:34 +02:00
Hide creators, Fix hide video,
This commit is contained in:
parent
fa7f1b11f3
commit
f52251e23a
@ -123,7 +123,7 @@ class Settings : FragmentedStorageFileJson() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
@FormField(R.string.home, "group", R.string.configure_how_your_home_tab_works_and_feels, 0)
|
@FormField(R.string.language, "group", -1, 0)
|
||||||
var language = LanguageSettings();
|
var language = LanguageSettings();
|
||||||
@Serializable
|
@Serializable
|
||||||
class LanguageSettings {
|
class LanguageSettings {
|
||||||
@ -166,6 +166,17 @@ class Settings : FragmentedStorageFileJson() {
|
|||||||
|
|
||||||
@FormField(R.string.preview_feed_items, FieldForm.TOGGLE, R.string.preview_feed_items_description, 6)
|
@FormField(R.string.preview_feed_items, FieldForm.TOGGLE, R.string.preview_feed_items_description, 6)
|
||||||
var previewFeedItems: Boolean = true;
|
var previewFeedItems: Boolean = true;
|
||||||
|
|
||||||
|
|
||||||
|
@FormField(R.string.clear_hidden, FieldForm.BUTTON, R.string.clear_hidden_description, 7)
|
||||||
|
@FormFieldButton(R.drawable.ic_visibility_off)
|
||||||
|
fun clearHidden() {
|
||||||
|
StateMeta.instance.removeAllHiddenCreators();
|
||||||
|
StateMeta.instance.removeAllHiddenVideos();
|
||||||
|
SettingsActivity.getActivity()?.let {
|
||||||
|
UIDialogs.toast(it, "Creators and videos should show up again");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@FormField(R.string.search, "group", -1, 2)
|
@FormField(R.string.search, "group", -1, 2)
|
||||||
|
@ -389,8 +389,13 @@ class UISlideOverlays {
|
|||||||
val watchLater = StatePlaylists.instance.getWatchLater();
|
val watchLater = StatePlaylists.instance.getWatchLater();
|
||||||
items.add(SlideUpMenuGroup(container.context, container.context.getString(R.string.actions), "actions",
|
items.add(SlideUpMenuGroup(container.context, container.context.getString(R.string.actions), "actions",
|
||||||
(listOf(
|
(listOf(
|
||||||
SlideUpMenuItem(container.context, R.drawable.ic_download, container.context.getString(R.string.download), container.context.getString(R.string.download_the_video), container.context.getString(R.string.download),
|
SlideUpMenuItem(container.context, R.drawable.ic_download, container.context.getString(R.string.download), container.context.getString(R.string.download_the_video), container.context.getString(R.string.download), {
|
||||||
{ showDownloadVideoOverlay(video, container, true); }, false))
|
showDownloadVideoOverlay(video, container, true);
|
||||||
|
}, false),
|
||||||
|
SlideUpMenuItem(container.context, R.drawable.ic_visibility_off, container.context.getString(R.string.hide_creator_from_home), "", "hide_creator", {
|
||||||
|
StateMeta.instance.addHiddenCreator(video.author.url);
|
||||||
|
UIDialogs.toast(container.context, "[${video.author.name}] hidden, you may need to reload home");
|
||||||
|
}))
|
||||||
+ actions)
|
+ actions)
|
||||||
));
|
));
|
||||||
items.add(
|
items.add(
|
||||||
|
@ -152,7 +152,7 @@ class HomeFragment : MainFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun filterResults(contents: List<IPlatformContent>): List<IPlatformContent> {
|
override fun filterResults(contents: List<IPlatformContent>): List<IPlatformContent> {
|
||||||
return contents.filter { it !is IPlatformVideo || !StateMeta.instance.isVideoHidden(it.url) };
|
return contents.filter { !StateMeta.instance.isVideoHidden(it.url) && !StateMeta.instance.isCreatorHidden(it.author.url) };
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loadResults() {
|
private fun loadResults() {
|
||||||
|
@ -5,15 +5,39 @@ import com.futo.platformplayer.stores.StringHashSetStorage
|
|||||||
|
|
||||||
class StateMeta {
|
class StateMeta {
|
||||||
val hiddenVideos = FragmentedStorage.get<StringHashSetStorage>("hiddenVideos");
|
val hiddenVideos = FragmentedStorage.get<StringHashSetStorage>("hiddenVideos");
|
||||||
|
val hiddenCreators = FragmentedStorage.get<StringHashSetStorage>("hiddenCreators");
|
||||||
|
|
||||||
fun isVideoHidden(videoUrl: String) : Boolean {
|
fun isVideoHidden(videoUrl: String) : Boolean {
|
||||||
return hiddenVideos.contains(videoUrl);
|
return hiddenVideos.contains(videoUrl);
|
||||||
}
|
}
|
||||||
fun addHiddenVideo(videoUrl: String) {
|
fun addHiddenVideo(videoUrl: String) {
|
||||||
hiddenVideos.addDistinct(videoUrl);
|
hiddenVideos.addDistinct(videoUrl);
|
||||||
|
hiddenVideos.save();
|
||||||
}
|
}
|
||||||
fun removeHiddenVideo(videoUrl: String) {
|
fun removeHiddenVideo(videoUrl: String) {
|
||||||
hiddenVideos.remove(videoUrl);
|
hiddenVideos.remove(videoUrl);
|
||||||
|
hiddenVideos.save();
|
||||||
|
}
|
||||||
|
fun removeAllHiddenVideos() {
|
||||||
|
hiddenVideos.removeAll();
|
||||||
|
hiddenVideos.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun isCreatorHidden(creatorUrl: String): Boolean {
|
||||||
|
return hiddenCreators.contains(creatorUrl);
|
||||||
|
}
|
||||||
|
fun addHiddenCreator(creatorUrl: String) {
|
||||||
|
hiddenCreators.addDistinct(creatorUrl);
|
||||||
|
hiddenCreators.save();
|
||||||
|
}
|
||||||
|
fun removeHiddenCreator(creatorUrl: String) {
|
||||||
|
hiddenCreators.remove(creatorUrl);
|
||||||
|
hiddenCreators.save();
|
||||||
|
}
|
||||||
|
fun removeAllHiddenCreators() {
|
||||||
|
hiddenCreators.removeAll();
|
||||||
|
hiddenCreators.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -35,6 +35,11 @@ class StringHashSetStorage : FragmentedStorageFileJson() {
|
|||||||
values.remove(obj);
|
values.remove(obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fun removeAll() {
|
||||||
|
synchronized(values) {
|
||||||
|
values.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
fun set(vararg objs: String) {
|
fun set(vararg objs: String) {
|
||||||
synchronized(values) {
|
synchronized(values) {
|
||||||
values.clear();
|
values.clear();
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
<string name="add_to">Add to</string>
|
<string name="add_to">Add to</string>
|
||||||
<string name="lorem_ipsum" translatable="false">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</string>
|
<string name="lorem_ipsum" translatable="false">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</string>
|
||||||
<string name="add_to_queue">Add to queue</string>
|
<string name="add_to_queue">Add to queue</string>
|
||||||
|
<string name="general">General</string>
|
||||||
<string name="home">Home</string>
|
<string name="home">Home</string>
|
||||||
<string name="recommendations">Recommendations</string>
|
<string name="recommendations">Recommendations</string>
|
||||||
<string name="more">More</string>
|
<string name="more">More</string>
|
||||||
@ -312,6 +313,7 @@
|
|||||||
<string name="import_data_description">Select a file to import, support various files (alternative to opening directly)</string>
|
<string name="import_data_description">Select a file to import, support various files (alternative to opening directly)</string>
|
||||||
<string name="external_storage">External Storage</string>
|
<string name="external_storage">External Storage</string>
|
||||||
<string name="feed_style">Feed Style</string>
|
<string name="feed_style">Feed Style</string>
|
||||||
|
<string name="language">Language</string>
|
||||||
<string name="app_language">App Language</string>
|
<string name="app_language">App Language</string>
|
||||||
<string name="may_require_restart">May require restart</string>
|
<string name="may_require_restart">May require restart</string>
|
||||||
<string name="fetch_on_app_boot">Fetch on app boot</string>
|
<string name="fetch_on_app_boot">Fetch on app boot</string>
|
||||||
@ -345,6 +347,8 @@
|
|||||||
<string name="reinstall_embedded_plugins">Reinstall Embedded Plugins</string>
|
<string name="reinstall_embedded_plugins">Reinstall Embedded Plugins</string>
|
||||||
<string name="remove_cached_version">Remove Cached Version</string>
|
<string name="remove_cached_version">Remove Cached Version</string>
|
||||||
<string name="remove_the_last_downloaded_version">Remove the last downloaded version</string>
|
<string name="remove_the_last_downloaded_version">Remove the last downloaded version</string>
|
||||||
|
<string name="clear_hidden">Clear Hidden</string>
|
||||||
|
<string name="clear_hidden_description">Removes all hidden creators and videos, showing them again</string>
|
||||||
<string name="reset_announcements">Reset announcements</string>
|
<string name="reset_announcements">Reset announcements</string>
|
||||||
<string name="reset_hidden_announcements">Reset hidden announcements</string>
|
<string name="reset_hidden_announcements">Reset hidden announcements</string>
|
||||||
<string name="restore_automatic_backup">Restore Automatic Backup</string>
|
<string name="restore_automatic_backup">Restore Automatic Backup</string>
|
||||||
@ -489,6 +493,7 @@
|
|||||||
<string name="page">Page</string>
|
<string name="page">Page</string>
|
||||||
<string name="hide">Hide</string>
|
<string name="hide">Hide</string>
|
||||||
<string name="hide_from_home">Hide from Home</string>
|
<string name="hide_from_home">Hide from Home</string>
|
||||||
|
<string name="hide_creator_from_home">Hide Creator from Home</string>
|
||||||
<string name="play_feed_as_queue">Play Feed as Queue</string>
|
<string name="play_feed_as_queue">Play Feed as Queue</string>
|
||||||
<string name="play_entire_feed">Play entire feed</string>
|
<string name="play_entire_feed">Play entire feed</string>
|
||||||
<string name="queued">Queued</string>
|
<string name="queued">Queued</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user