diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt
index e85b7815..1c8ba03d 100644
--- a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt
+++ b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt
@@ -11,7 +11,6 @@ import ani.dantotsu.connections.anilist.api.FuzzyDate
import ani.dantotsu.connections.anilist.api.NotificationResponse
import ani.dantotsu.connections.anilist.api.Page
import ani.dantotsu.connections.anilist.api.Query
-import ani.dantotsu.connections.anilist.api.Social
import ani.dantotsu.connections.anilist.api.ToggleLike
import ani.dantotsu.currContext
import ani.dantotsu.isOnline
@@ -413,6 +412,7 @@ class AnilistQueries {
}
suspend fun initHomePage(): Map> {
+ val removeList = PrefManager.getCustomVal("removeList", setOf())
val toShow: List =
PrefManager.getVal(PrefName.HomeLayout) // anime continue, anime fav, anime planned, manga continue, manga fav, manga planned, recommendations
var query = """{"""
@@ -462,15 +462,20 @@ class AnilistQueries {
current?.lists?.forEach { li ->
li.entries?.reversed()?.forEach {
val m = Media(it)
- m.cameFromContinue = true
- subMap[m.id] = m
+ if (m.id !in removeList) {
+ m.cameFromContinue = true
+ subMap[m.id] = m
+ }
}
}
+
repeating?.lists?.forEach { li ->
li.entries?.reversed()?.forEach {
val m = Media(it)
- m.cameFromContinue = true
- subMap[m.id] = m
+ if (m.id !in removeList) {
+ m.cameFromContinue = true
+ subMap[m.id] = m
+ }
}
}
if (type != "Anime") {
@@ -504,8 +509,10 @@ class AnilistQueries {
current?.lists?.forEach { li ->
li.entries?.reversed()?.forEach {
val m = Media(it)
- m.cameFromContinue = true
- subMap[m.id] = m
+ if (m.id !in removeList) {
+ m.cameFromContinue = true
+ subMap[m.id] = m
+ }
}
}
@Suppress("UNCHECKED_CAST")
@@ -532,7 +539,10 @@ class AnilistQueries {
val returnArray = arrayListOf()
apiMediaList?.edges?.forEach {
it.node?.let { i ->
- returnArray.add(Media(i).apply { isFav = true })
+ val m = Media(i).apply { isFav = true }
+ if (m.id !in removeList) {
+ returnArray.add(m)
+ }
}
}
returnMap["favorite$type"] = returnArray
diff --git a/app/src/main/java/ani/dantotsu/media/MediaListDialogFragment.kt b/app/src/main/java/ani/dantotsu/media/MediaListDialogFragment.kt
index 6ac9d7f0..7a08ed10 100644
--- a/app/src/main/java/ani/dantotsu/media/MediaListDialogFragment.kt
+++ b/app/src/main/java/ani/dantotsu/media/MediaListDialogFragment.kt
@@ -20,6 +20,7 @@ import ani.dantotsu.connections.anilist.api.FuzzyDate
import ani.dantotsu.connections.mal.MAL
import ani.dantotsu.databinding.BottomSheetMediaListBinding
import ani.dantotsu.navBarHeight
+import ani.dantotsu.settings.saving.PrefManager
import ani.dantotsu.snackString
import ani.dantotsu.tryWith
import com.google.android.material.materialswitch.MaterialSwitch
@@ -187,7 +188,15 @@ class MediaListDialogFragment : BottomSheetDialogFragment() {
binding.mediaListPrivate.setOnCheckedChangeListener { _, checked ->
media?.isListPrivate = checked
}
-
+ val removeList = PrefManager.getCustomVal("removeList", setOf())
+ binding.mediaListShow.isChecked = media?.id in removeList
+ binding.mediaListShow.setOnCheckedChangeListener { _, checked ->
+ if (checked) {
+ PrefManager.setCustomVal("removeList", removeList.plus(media?.id))
+ } else {
+ PrefManager.setCustomVal("removeList", removeList.minus(media?.id))
+ }
+ }
media?.userRepeat?.apply {
binding.mediaListRewatch.setText(this.toString())
}
diff --git a/app/src/main/java/ani/dantotsu/media/MediaListDialogSmallFragment.kt b/app/src/main/java/ani/dantotsu/media/MediaListDialogSmallFragment.kt
index 36ded771..11fc6f3b 100644
--- a/app/src/main/java/ani/dantotsu/media/MediaListDialogSmallFragment.kt
+++ b/app/src/main/java/ani/dantotsu/media/MediaListDialogSmallFragment.kt
@@ -18,6 +18,7 @@ import ani.dantotsu.connections.mal.MAL
import ani.dantotsu.databinding.BottomSheetMediaListSmallBinding
import ani.dantotsu.navBarHeight
import ani.dantotsu.others.getSerialized
+import ani.dantotsu.settings.saving.PrefManager
import ani.dantotsu.snackString
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@@ -170,7 +171,15 @@ class MediaListDialogSmallFragment : BottomSheetDialogFragment() {
binding.mediaListPrivate.setOnCheckedChangeListener { _, checked ->
media.isListPrivate = checked
}
-
+ val removeList = PrefManager.getCustomVal("removeList", setOf())
+ binding.mediaListShow.isChecked = media?.id in removeList
+ binding.mediaListShow.setOnCheckedChangeListener { _, checked ->
+ if (checked) {
+ PrefManager.setCustomVal("removeList", removeList.plus(media.id))
+ } else {
+ PrefManager.setCustomVal("removeList", removeList.minus(media.id))
+ }
+ }
binding.mediaListSave.setOnClickListener {
scope.launch {
withContext(Dispatchers.IO) {
diff --git a/app/src/main/res/layout/bottom_sheet_media_list.xml b/app/src/main/res/layout/bottom_sheet_media_list.xml
index a4347496..2563d723 100644
--- a/app/src/main/res/layout/bottom_sheet_media_list.xml
+++ b/app/src/main/res/layout/bottom_sheet_media_list.xml
@@ -338,6 +338,13 @@
android:fontFamily="@font/poppins_bold"
android:text="@string/list_private" />
+
+
+
An unexpected error occurred.\nPlease send a crash report to the developer :)
Copy Report
Share as file
+ Hide in Home Screen