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 c9ff694d..c83fd07f 100644 --- a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt +++ b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt @@ -72,7 +72,7 @@ class AnilistQueries { media.cameFromContinue = false val query = - """{Media(id:${media.id}){id mediaListEntry{id status score(format:POINT_100)progress private notes repeat customLists updatedAt startedAt{year month day}completedAt{year month day}}isFavourite siteUrl idMal nextAiringEpisode{episode airingAt}source countryOfOrigin format duration season seasonYear startDate{year month day}endDate{year month day}genres studios(isMain:true){nodes{id name siteUrl}}description trailer{site id}synonyms tags{name rank isMediaSpoiler}characters(sort:[ROLE,FAVOURITES_DESC],perPage:25,page:1){edges{role node{id image{medium}name{userPreferred}isFavourite}}}relations{edges{relationType(version:2)node{id idMal mediaListEntry{progress private score(format:POINT_100)status}episodes chapters nextAiringEpisode{episode}popularity meanScore isAdult isFavourite format title{english romaji userPreferred}type status(version:2)bannerImage coverImage{large}}}}staffPreview:staff(perPage:8,sort:[RELEVANCE,ID]){edges{role node{id image{large medium}name{userPreferred}}}}recommendations(sort:RATING_DESC){nodes{mediaRecommendation{id idMal mediaListEntry{progress private score(format:POINT_100)status}episodes chapters nextAiringEpisode{episode}meanScore isAdult isFavourite format title{english romaji userPreferred}type status(version:2)bannerImage coverImage{large}}}}externalLinks{url site}}}""" + """{Media(id:${media.id}){id favourites popularity mediaListEntry{id status score(format:POINT_100)progress private notes repeat customLists updatedAt startedAt{year month day}completedAt{year month day}}isFavourite siteUrl idMal nextAiringEpisode{episode airingAt}source countryOfOrigin format duration season seasonYear startDate{year month day}endDate{year month day}genres studios(isMain:true){nodes{id name siteUrl}}description trailer{site id}synonyms tags{name rank isMediaSpoiler}characters(sort:[ROLE,FAVOURITES_DESC],perPage:25,page:1){edges{role node{id image{medium}name{userPreferred}isFavourite}}}relations{edges{relationType(version:2)node{id idMal mediaListEntry{progress private score(format:POINT_100)status}episodes chapters nextAiringEpisode{episode}popularity meanScore isAdult isFavourite format title{english romaji userPreferred}type status(version:2)bannerImage coverImage{large}}}}staffPreview:staff(perPage:8,sort:[RELEVANCE,ID]){edges{role node{id image{large medium}name{userPreferred}}}}recommendations(sort:RATING_DESC){nodes{mediaRecommendation{id idMal mediaListEntry{progress private score(format:POINT_100)status}episodes chapters nextAiringEpisode{episode}meanScore isAdult isFavourite format title{english romaji userPreferred}type status(version:2)bannerImage coverImage{large}}}}externalLinks{url site}}}""" runBlocking { val anilist = async { var response = executeQuery(query, force = true, show = true) @@ -83,7 +83,8 @@ class AnilistQueries { media.source = fetchedMedia.source?.toString() media.countryOfOrigin = fetchedMedia.countryOfOrigin media.format = fetchedMedia.format?.toString() - + media.favourites = fetchedMedia.favourites + media.popularity = fetchedMedia.popularity media.startDate = fetchedMedia.startDate media.endDate = fetchedMedia.endDate diff --git a/app/src/main/java/ani/dantotsu/media/Media.kt b/app/src/main/java/ani/dantotsu/media/Media.kt index d26a5048..c0196218 100644 --- a/app/src/main/java/ani/dantotsu/media/Media.kt +++ b/app/src/main/java/ani/dantotsu/media/Media.kt @@ -25,7 +25,7 @@ data class Media( var cover: String? = null, var banner: String? = null, var relation: String? = null, - var popularity: Int? = null, + var favourites: Int? = null, var isAdult: Boolean, var isFav: Boolean = false, @@ -56,6 +56,7 @@ data class Media( var trailer: String? = null, var startDate: FuzzyDate? = null, var endDate: FuzzyDate? = null, + var popularity: Int? = null, var characters: ArrayList? = null, var staff: ArrayList? = null, @@ -95,6 +96,7 @@ data class Media( meanScore = apiMedia.meanScore, startDate = apiMedia.startDate, endDate = apiMedia.endDate, + favourites = apiMedia.favourites, anime = if (apiMedia.type == MediaType.ANIME) Anime( totalEpisodes = apiMedia.episodes, nextAiringEpisode = apiMedia.nextAiringEpisode?.episode?.minus(1) diff --git a/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt b/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt index 06fb3aa9..1cec1eb6 100644 --- a/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt @@ -97,6 +97,8 @@ class MediaInfoFragment : Fragment() { binding.mediaInfoSource.text = media.source binding.mediaInfoStart.text = media.startDate?.toString() ?: "??" binding.mediaInfoEnd.text = media.endDate?.toString() ?: "??" + binding.mediaInfoPopularity.text = media.popularity.toString() + binding.mediaInfoFavorites.text = media.favourites.toString() if (media.anime != null) { val episodeDuration = media.anime.episodeDuration diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml index 068e1e41..5b61ea3d 100644 --- a/app/src/main/res/layout/activity_profile.xml +++ b/app/src/main/res/layout/activity_profile.xml @@ -129,133 +129,145 @@ - + app:cardCornerRadius="16dp"> - + android:orientation="horizontal" + tools:ignore="HardcodedText"> - + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:layout_weight="1" + android:gravity="center" + android:orientation="vertical"> - + + + + + + + + - + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:layout_weight="1" + android:gravity="center" + android:orientation="vertical"> + - + - + + + + + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:layout_weight="1" + android:gravity="center" + android:orientation="vertical"> - + + + + + + + + + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:layout_weight="1" + android:gravity="center" + android:orientation="vertical"> - + + - - - - - - - - - - - - - - - - - + + + diff --git a/app/src/main/res/layout/fragment_media_info.xml b/app/src/main/res/layout/fragment_media_info.xml index 0cc14a6a..29ae8ff9 100644 --- a/app/src/main/res/layout/fragment_media_info.xml +++ b/app/src/main/res/layout/fragment_media_info.xml @@ -303,7 +303,46 @@ android:fontFamily="@font/poppins_bold" android:textAlignment="textEnd" /> + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a974ff47..9b0ec0f3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -124,6 +124,8 @@ Characters Relations Staff + Favourites + Popularity Roles Details