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 19c4bf4d..4323087d 100644 --- a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt +++ b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt @@ -889,6 +889,7 @@ class AnilistQueries { onList: Boolean? = null, excludedGenres: MutableList? = null, excludedTags: MutableList? = null, + startYear: Int? =null, seasonYear: Int? = null, season: String? = null, id: Int? = null, @@ -943,7 +944,8 @@ query (${"$"}page: Int = 1, ${"$"}id: Int, ${"$"}type: MediaType, ${"$"}isAdult: ${if (onList != null) ""","onList":$onList""" else ""} ${if (page != null) ""","page":"$page"""" else ""} ${if (id != null) ""","id":"$id"""" else ""} - ${if (seasonYear != null) ""","seasonYear":"$seasonYear"""" else ""} + ${if (type == "ANIME" && seasonYear != null) ""","seasonYear":"$seasonYear"""" else ""} + ${if (type == "MANGA" && startYear != null) ""","startDate_greater":${startYear}0101,"startDate_lesser":${startYear + 1}0101""" else ""} ${if (season != null) ""","season":"$season"""" else ""} ${if (search != null) ""","search":"$search"""" else ""} ${if (source != null) ""","source":"$source"""" else ""} @@ -1018,6 +1020,7 @@ query (${"$"}page: Int = 1, ${"$"}id: Int, ${"$"}type: MediaType, ${"$"}isAdult: source = source, format = format, countryOfOrigin = countryOfOrigin, + startYear = startYear, seasonYear = seasonYear, season = season, results = responseArray, diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistViewModel.kt b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistViewModel.kt index ccf8849e..da564ad2 100644 --- a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistViewModel.kt +++ b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistViewModel.kt @@ -268,6 +268,7 @@ class AnilistMangaViewModel : ViewModel() { r.onList, r.excludedGenres, r.excludedTags, + r.startYear, r.seasonYear, r.season ) @@ -300,6 +301,7 @@ class AnilistSearch : ViewModel() { r.onList, r.excludedGenres, r.excludedTags, + r.startYear, r.seasonYear, r.season ) @@ -322,6 +324,7 @@ class AnilistSearch : ViewModel() { r.onList, r.excludedGenres, r.excludedTags, + r.startYear, r.seasonYear, r.season ) diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/SearchResults.kt b/app/src/main/java/ani/dantotsu/connections/anilist/SearchResults.kt index 2306c0ac..8458cc7e 100644 --- a/app/src/main/java/ani/dantotsu/connections/anilist/SearchResults.kt +++ b/app/src/main/java/ani/dantotsu/connections/anilist/SearchResults.kt @@ -21,6 +21,7 @@ data class SearchResults( var source: String? = null, var format: String? = null, var seasonYear: Int? = null, + var startYear: Int? = null, var season: String? = null, var page: Int = 1, var results: MutableList, @@ -55,6 +56,9 @@ data class SearchResults( season?.let { list.add(SearchChip("SEASON", it)) } + startYear?.let { + list.add(SearchChip("START_YEAR", it.toString())) + } seasonYear?.let { list.add(SearchChip("SEASON_YEAR", it.toString())) } @@ -91,6 +95,7 @@ data class SearchResults( "FORMAT" -> format = null "COUNTRY" -> countryOfOrigin = null "SEASON" -> season = null + "START_YEAR" -> startYear = null "SEASON_YEAR" -> seasonYear = null "GENRE" -> genres?.remove(chip.text) "EXCLUDED_GENRE" -> excludedGenres?.remove(chip.text) diff --git a/app/src/main/java/ani/dantotsu/media/SearchActivity.kt b/app/src/main/java/ani/dantotsu/media/SearchActivity.kt index 11122481..14662e27 100644 --- a/app/src/main/java/ani/dantotsu/media/SearchActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/SearchActivity.kt @@ -71,7 +71,8 @@ class SearchActivity : AppCompatActivity() { source = intent.getStringExtra("source"), countryOfOrigin = intent.getStringExtra("country"), season = intent.getStringExtra("season"), - seasonYear = intent.getStringExtra("seasonYear")?.toIntOrNull(), + seasonYear = if (intent.getStringExtra("type") == "ANIME") intent.getStringExtra("seasonYear")?.toIntOrNull() else null, + startYear = if (intent.getStringExtra("type") == "MANGA") intent.getStringExtra("seasonYear")?.toIntOrNull() else null, results = mutableListOf(), hasNextPage = false ) @@ -130,6 +131,7 @@ class SearchActivity : AppCompatActivity() { excludedTags = it.excludedTags tags = it.tags season = it.season + startYear = it.startYear seasonYear = it.seasonYear status = it.status source = it.source diff --git a/app/src/main/java/ani/dantotsu/media/SearchFilterBottomDialog.kt b/app/src/main/java/ani/dantotsu/media/SearchFilterBottomDialog.kt index 25c480b9..ac5e87ba 100644 --- a/app/src/main/java/ani/dantotsu/media/SearchFilterBottomDialog.kt +++ b/app/src/main/java/ani/dantotsu/media/SearchFilterBottomDialog.kt @@ -128,6 +128,7 @@ class SearchFilterBottomDialog : BottomSheetDialogFragment() { source = binding.searchSource.text.toString().replace(" ", "_").ifBlank { null } format = binding.searchFormat.text.toString().ifBlank { null } season = binding.searchSeason.text.toString().ifBlank { null } + startYear = binding.searchYear.text.toString().toIntOrNull() seasonYear = binding.searchYear.text.toString().toIntOrNull() sort = activity.result.sort genres = selectedGenres @@ -230,7 +231,11 @@ class SearchFilterBottomDialog : BottomSheetDialogFragment() { source = binding.searchSource.text.toString().replace(" ", "_").ifBlank { null } format = binding.searchFormat.text.toString().ifBlank { null } season = binding.searchSeason.text.toString().ifBlank { null } - seasonYear = binding.searchYear.text.toString().toIntOrNull() + if (activity.result.type == "ANIME") { + seasonYear = binding.searchYear.text.toString().toIntOrNull() + } else { + startYear = binding.searchYear.text.toString().toIntOrNull() + } sort = activity.result.sort countryOfOrigin = activity.result.countryOfOrigin genres = selectedGenres @@ -273,7 +278,11 @@ class SearchFilterBottomDialog : BottomSheetDialogFragment() { ) ) - binding.searchYear.setText(activity.result.seasonYear?.toString()) + if (activity.result.type == "ANIME") { + binding.searchYear.setText(activity.result.seasonYear?.toString()) + } else { + binding.searchYear.setText(activity.result.startYear?.toString()) + } binding.searchYear.setAdapter( ArrayAdapter( binding.root.context,