This commit is contained in:
rebelonion 2024-03-22 21:48:01 -05:00
commit dca6ffdbbe
13 changed files with 200 additions and 150 deletions

View file

@ -72,7 +72,7 @@ class AnilistQueries {
media.cameFromContinue = false media.cameFromContinue = false
val query = 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 { runBlocking {
val anilist = async { val anilist = async {
var response = executeQuery<Query.Media>(query, force = true, show = true) var response = executeQuery<Query.Media>(query, force = true, show = true)
@ -83,7 +83,8 @@ class AnilistQueries {
media.source = fetchedMedia.source?.toString() media.source = fetchedMedia.source?.toString()
media.countryOfOrigin = fetchedMedia.countryOfOrigin media.countryOfOrigin = fetchedMedia.countryOfOrigin
media.format = fetchedMedia.format?.toString() media.format = fetchedMedia.format?.toString()
media.favourites = fetchedMedia.favourites
media.popularity = fetchedMedia.popularity
media.startDate = fetchedMedia.startDate media.startDate = fetchedMedia.startDate
media.endDate = fetchedMedia.endDate media.endDate = fetchedMedia.endDate

View file

@ -62,7 +62,7 @@ class OfflineAnimeAdapter(
val bannerView = view.findViewById<ImageView>(R.id.itemCompactBanner) // for large view val bannerView = view.findViewById<ImageView>(R.id.itemCompactBanner) // for large view
val episodes = view.findViewById<TextView>(R.id.itemTotal) val episodes = view.findViewById<TextView>(R.id.itemTotal)
episodes.text = " Episodes" episodes.text = " Episodes"
bannerView.setImageURI(item.banner) bannerView.setImageURI(item.banner ?: item.image)
totalepisodes.text = item.totalEpisodeList totalepisodes.text = item.totalEpisodeList
} else if (style == 1) { } else if (style == 1) {
val watchedEpisodes = val watchedEpisodes =

View file

@ -61,7 +61,7 @@ class OfflineMangaAdapter(
val bannerView = view.findViewById<ImageView>(R.id.itemCompactBanner) // for large view val bannerView = view.findViewById<ImageView>(R.id.itemCompactBanner) // for large view
val chapters = view.findViewById<TextView>(R.id.itemTotal) val chapters = view.findViewById<TextView>(R.id.itemTotal)
chapters.text = " Chapters" chapters.text = " Chapters"
bannerView.setImageURI(item.banner) bannerView.setImageURI(item.banner ?: item.image)
totalChapter.text = item.totalChapter totalChapter.text = item.totalChapter
} else if (style == 1) { } else if (style == 1) {
val readChapter = val readChapter =

View file

@ -25,7 +25,7 @@ data class Media(
var cover: String? = null, var cover: String? = null,
var banner: String? = null, var banner: String? = null,
var relation: String? = null, var relation: String? = null,
var popularity: Int? = null, var favourites: Int? = null,
var isAdult: Boolean, var isAdult: Boolean,
var isFav: Boolean = false, var isFav: Boolean = false,
@ -56,6 +56,7 @@ data class Media(
var trailer: String? = null, var trailer: String? = null,
var startDate: FuzzyDate? = null, var startDate: FuzzyDate? = null,
var endDate: FuzzyDate? = null, var endDate: FuzzyDate? = null,
var popularity: Int? = null,
var characters: ArrayList<Character>? = null, var characters: ArrayList<Character>? = null,
var staff: ArrayList<Author>? = null, var staff: ArrayList<Author>? = null,
@ -95,6 +96,7 @@ data class Media(
meanScore = apiMedia.meanScore, meanScore = apiMedia.meanScore,
startDate = apiMedia.startDate, startDate = apiMedia.startDate,
endDate = apiMedia.endDate, endDate = apiMedia.endDate,
favourites = apiMedia.favourites,
anime = if (apiMedia.type == MediaType.ANIME) Anime( anime = if (apiMedia.type == MediaType.ANIME) Anime(
totalEpisodes = apiMedia.episodes, totalEpisodes = apiMedia.episodes,
nextAiringEpisode = apiMedia.nextAiringEpisode?.episode?.minus(1) nextAiringEpisode = apiMedia.nextAiringEpisode?.episode?.minus(1)

View file

@ -97,6 +97,8 @@ class MediaInfoFragment : Fragment() {
binding.mediaInfoSource.text = media.source binding.mediaInfoSource.text = media.source
binding.mediaInfoStart.text = media.startDate?.toString() ?: "??" binding.mediaInfoStart.text = media.startDate?.toString() ?: "??"
binding.mediaInfoEnd.text = media.endDate?.toString() ?: "??" binding.mediaInfoEnd.text = media.endDate?.toString() ?: "??"
binding.mediaInfoPopularity.text = media.popularity.toString()
binding.mediaInfoFavorites.text = media.favourites.toString()
if (media.anime != null) { if (media.anime != null) {
val episodeDuration = media.anime.episodeDuration val episodeDuration = media.anime.episodeDuration

View file

@ -143,8 +143,6 @@ class ProfileFragment : Fragment() {
super.onResume() super.onResume()
if (this::binding.isInitialized) { if (this::binding.isInitialized) {
binding.root.requestLayout() binding.root.requestLayout()
setFavPeople()
model.refresh()
} }
} }

View file

@ -128,145 +128,149 @@
app:tint="@color/bg_opp" /> app:tint="@color/bg_opp" />
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>
<LinearLayout
<com.google.android.material.card.MaterialCardView
android:id="@+id/profileButtonContainer" android:id="@+id/profileButtonContainer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="210dp"
android:layout_marginBottom="6dp"
android:background="?attr/colorSurface"
android:baselineAligned="false"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:orientation="horizontal" android:layout_marginStart="12dp"
tools:ignore="HardcodedText"> android:layout_marginEnd="12dp"
android:layout_marginTop="210dp"
<View android:layout_marginBottom="2dp"
android:layout_width="3dp" android:backgroundTint="?attr/colorSurfaceVariant"
android:layout_height="match_parent" android:baselineAligned="false"
android:layout_marginStart="2dp" app:cardCornerRadius="16dp">
android:background="?android:attr/listDivider" />
<LinearLayout <LinearLayout
android:id="@+id/profileFollowerCountContainer" android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:orientation="horizontal"
android:gravity="center" tools:ignore="HardcodedText">
android:orientation="vertical">
<TextView <LinearLayout
android:id="@+id/profileFollowerCount" android:id="@+id/profileFollowerCountContainer"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold" android:layout_marginTop="8dp"
tools:text="1" android:layout_marginBottom="8dp"
android:textColor="?attr/colorPrimary" /> android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView <TextView
android:layout_width="wrap_content" android:id="@+id/profileFollowerCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:textColor="?attr/colorPrimary"
tools:text="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:text="Follower" />
</LinearLayout>
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/profileFollowingCountContainer"
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold" android:layout_marginTop="8dp"
android:text="Follower" /> android:layout_marginBottom="8dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/profileFollowingCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:textColor="?attr/colorPrimary"
tools:text="2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:text="Following" />
</LinearLayout>
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/profileAnimeCountContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/profileAnimeCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:textColor="?attr/colorPrimary"
tools:text="3" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:text="Anime" />
</LinearLayout>
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/profileMangaCountContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/profileMangaCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:textColor="?attr/colorPrimary"
tools:text="4" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:text="Manga" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView>
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/profileFollowingCountContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/profileFollowingCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
tools:text="2"
android:textColor="?attr/colorPrimary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:text="Following" />
</LinearLayout>
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/profileAnimeCountContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/profileAnimeCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
tools:text="3"
android:textColor="?attr/colorPrimary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:text="Anime" />
</LinearLayout>
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/profileMangaCountContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/profileMangaCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
tools:text="4"
android:textColor="?attr/colorPrimary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_semi_bold"
android:text="Manga" />
</LinearLayout>
<View
android:layout_width="3dp"
android:layout_height="match_parent"
android:layout_marginEnd="2dp"
android:background="?android:attr/listDivider" />
</LinearLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout> </com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<LinearLayout <LinearLayout

View file

@ -303,7 +303,46 @@
android:fontFamily="@font/poppins_bold" android:fontFamily="@font/poppins_bold"
android:textAlignment="textEnd" /> android:textAlignment="textEnd" />
</TableRow> </TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="24dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.58"
android:text="@string/popularity"
android:textStyle="bold" />
<TextView
android:id="@+id/mediaInfoPopularity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/poppins_bold"
android:textAlignment="textEnd" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="24dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.58"
android:text="@string/favourites"
android:textStyle="bold" />
<TextView
android:id="@+id/mediaInfoFavorites"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/poppins_bold"
android:textAlignment="textEnd" />
</TableRow>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="16dp" /> android:layout_height="16dp" />

View file

@ -109,11 +109,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp"> android:layout_marginTop="8dp">
<com.google.android.material.card.MaterialCardView <androidx.cardview.widget.CardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical" android:layout_gravity="start|center_vertical"
android:backgroundTint="?attr/colorSurface" app:cardBackgroundColor="@color/nav_bg"
app:cardCornerRadius="24dp" app:cardCornerRadius="24dp"
app:strokeColor="@color/transparent"> app:strokeColor="@color/transparent">
@ -150,7 +150,7 @@
android:layout_height="160dp" android:layout_height="160dp"
android:layout_gravity="center" android:layout_gravity="center"
android:scaleType="centerCrop" android:scaleType="centerCrop"
app:srcCompat="@drawable/ic_round_add_circle_24" tools:srcCompat="@tools:sample/backgrounds/scenic"
tools:ignore="ContentDescription,ImageContrastCheck" tools:ignore="ContentDescription,ImageContrastCheck"
tools:tint="@color/transparent" /> tools:tint="@color/transparent" />
@ -193,7 +193,7 @@
android:textStyle="bold" android:textStyle="bold"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </androidx.cardview.widget.CardView>
</FrameLayout> </FrameLayout>
<LinearLayout <LinearLayout

View file

@ -154,7 +154,7 @@
android:orientation="horizontal" android:orientation="horizontal"
android:visibility="gone"> android:visibility="gone">
<com.google.android.material.switchmaterial.SwitchMaterial <com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/animeSourceDubbed" android:id="@+id/animeSourceDubbed"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -162,7 +162,9 @@
android:padding="12dp" android:padding="12dp"
app:cornerRadius="0dp" app:cornerRadius="0dp"
app:showText="false" app:showText="false"
app:useMaterialThemeColors="true" /> android:scaleX="0.80"
android:scaleY="0.80"
app:useMaterialThemeColors="true"/>
<TextView <TextView
android:id="@+id/animeSourceDubbedText" android:id="@+id/animeSourceDubbedText"
@ -174,7 +176,7 @@
android:ellipsize="marquee" android:ellipsize="marquee"
android:fontFamily="@font/poppins_bold" android:fontFamily="@font/poppins_bold"
android:marqueeRepeatLimit="marquee_forever" android:marqueeRepeatLimit="marquee_forever"
android:paddingLeft="7dp" android:paddingLeft="5dp"
android:singleLine="true" android:singleLine="true"
android:textSize="14sp" android:textSize="14sp"
tools:text="Dubbed" /> tools:text="Dubbed" />
@ -373,3 +375,4 @@
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View file

@ -7,21 +7,21 @@
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:orientation="horizontal"> android:orientation="horizontal">
<com.google.android.material.card.MaterialCardView <androidx.cardview.widget.CardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="90dp" android:layout_height="90dp"
android:layout_gravity="start|center_vertical" android:layout_gravity="start|center_vertical"
android:backgroundTint="@color/bg_white" android:backgroundTint="@color/bg_white"
app:strokeColor="@color/transparent" app:cardCornerRadius="24dp"
app:cardCornerRadius="24dp"> app:strokeColor="@color/transparent">
<ImageView <ImageView
android:id="@+id/profileBannerImage" android:id="@+id/profileBannerImage"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="89dp" android:layout_height="89dp"
android:scaleType="centerCrop" android:scaleType="centerCrop"
tools:srcCompat="@tools:sample/backgrounds/scenic" tools:ignore="ContentDescription"
tools:ignore="ContentDescription" /> tools:srcCompat="@tools:sample/backgrounds/scenic" />
<ImageView <ImageView
android:id="@+id/imageView" android:id="@+id/imageView"
@ -38,8 +38,8 @@
android:layout_gravity="start|center_vertical" android:layout_gravity="start|center_vertical"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:backgroundTint="@color/transparent" android:backgroundTint="@color/transparent"
app:strokeColor="@color/transparent" app:cardCornerRadius="64dp"
app:cardCornerRadius="64dp"> app:strokeColor="@color/transparent">
<com.google.android.material.imageview.ShapeableImageView <com.google.android.material.imageview.ShapeableImageView
android:id="@+id/profileUserAvatar" android:id="@+id/profileUserAvatar"
@ -58,9 +58,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical" android:layout_gravity="start|center_vertical"
android:layout_marginStart="120dp" android:layout_marginStart="120dp"
android:fontFamily="@font/poppins_semi_bold"
android:text="@string/username" android:text="@string/username"
android:textColor="@color/bg_white" android:textSize="18sp" />
android:textSize="18sp" </androidx.cardview.widget.CardView>
android:textStyle="bold"/>
</com.google.android.material.card.MaterialCardView>
</FrameLayout> </FrameLayout>

View file

@ -8,7 +8,7 @@
android:layout_margin="8dp" android:layout_margin="8dp"
android:orientation="horizontal"> android:orientation="horizontal">
<com.google.android.material.card.MaterialCardView <androidx.cardview.widget.CardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical" android:layout_gravity="start|center_vertical"
@ -110,5 +110,5 @@
tools:ignore="HardcodedText,SmallSp" /> tools:ignore="HardcodedText,SmallSp" />
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </androidx.cardview.widget.CardView>
</FrameLayout> </FrameLayout>

View file

@ -124,6 +124,8 @@
<string name="characters">Characters</string> <string name="characters">Characters</string>
<string name="relations">Relations</string> <string name="relations">Relations</string>
<string name="staff">Staff</string> <string name="staff">Staff</string>
<string name="favourites">Favourites</string>
<string name="popularity">Popularity</string>
<string name="roles">Roles</string> <string name="roles">Roles</string>
<string name="details">Details</string> <string name="details">Details</string>