feat(profile page): Better charts view ig

This commit is contained in:
aayush262 2024-03-03 20:36:24 +05:30
parent 03b8e7dab6
commit 297e9dd756
2 changed files with 421 additions and 126 deletions

View file

@ -93,6 +93,8 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
loadStats(type == MediaType.ANIME) loadStats(type == MediaType.ANIME)
} }
loadStats(type == MediaType.ANIME) loadStats(type == MediaType.ANIME)
binding.statisticProgressBar.visibility = View.GONE
binding.chartsContainer.visibility = View.VISIBLE
} }
} }
} }
@ -271,7 +273,6 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
val palette = generateColorPalette(primaryColor, names.size) val palette = generateColorPalette(primaryColor, names.size)
return AAChartModel() return AAChartModel()
.chartType(AAChartType.Pie) .chartType(AAChartType.Pie)
.title("Format")
.subtitle(getTypeName()) .subtitle(getTypeName())
.zoomType(AAChartZoomType.XY) .zoomType(AAChartZoomType.XY)
.dataLabelsEnabled(true) .dataLabelsEnabled(true)
@ -302,7 +303,6 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
val palette = generateColorPalette(primaryColor, names.size) val palette = generateColorPalette(primaryColor, names.size)
return AAChartModel() return AAChartModel()
.chartType(AAChartType.Funnel) .chartType(AAChartType.Funnel)
.title("Status")
.subtitle(getTypeName()) .subtitle(getTypeName())
.zoomType(AAChartZoomType.XY) .zoomType(AAChartZoomType.XY)
.dataLabelsEnabled(true) .dataLabelsEnabled(true)
@ -333,7 +333,6 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
val palette = generateColorPalette(primaryColor, names.size) val palette = generateColorPalette(primaryColor, names.size)
return AAChartModel() return AAChartModel()
.chartType(AAChartType.Column) .chartType(AAChartType.Column)
.title("Score")
.subtitle(getTypeName()) .subtitle(getTypeName())
.zoomType(AAChartZoomType.XY) .zoomType(AAChartZoomType.XY)
.dataLabelsEnabled(false) .dataLabelsEnabled(false)
@ -368,7 +367,6 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
val palette = generateColorPalette(primaryColor, names.size) val palette = generateColorPalette(primaryColor, names.size)
return AAChartModel() return AAChartModel()
.chartType(AAChartType.Pyramid) .chartType(AAChartType.Pyramid)
.title("Length")
.subtitle(getTypeName()) .subtitle(getTypeName())
.zoomType(AAChartZoomType.XY) .zoomType(AAChartZoomType.XY)
.dataLabelsEnabled(true) .dataLabelsEnabled(true)
@ -400,7 +398,6 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
val hexColorsArray: Array<Any> = palette.map { String.format("#%06X", 0xFFFFFF and it) }.toTypedArray() val hexColorsArray: Array<Any> = palette.map { String.format("#%06X", 0xFFFFFF and it) }.toTypedArray()
return AAChartModel() return AAChartModel()
.chartType(AAChartType.Bubble) .chartType(AAChartType.Bubble)
.title("Release Year")
.subtitle(getTypeName()) .subtitle(getTypeName())
.zoomType(AAChartZoomType.XY) .zoomType(AAChartZoomType.XY)
.dataLabelsEnabled(false) .dataLabelsEnabled(false)
@ -435,7 +432,6 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
val hexColorsArray: Array<Any> = palette.map { String.format("#%06X", 0xFFFFFF and it) }.toTypedArray() val hexColorsArray: Array<Any> = palette.map { String.format("#%06X", 0xFFFFFF and it) }.toTypedArray()
return AAChartModel() return AAChartModel()
.chartType(AAChartType.Bar) .chartType(AAChartType.Bar)
.title("Start Year")
.subtitle(getTypeName()) .subtitle(getTypeName())
.zoomType(AAChartZoomType.XY) .zoomType(AAChartZoomType.XY)
.dataLabelsEnabled(false) .dataLabelsEnabled(false)
@ -470,7 +466,6 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
val hexColorsArray: Array<Any> = palette.map { String.format("#%06X", 0xFFFFFF and it) }.toTypedArray() val hexColorsArray: Array<Any> = palette.map { String.format("#%06X", 0xFFFFFF and it) }.toTypedArray()
return Pair(AAChartModel() return Pair(AAChartModel()
.chartType(AAChartType.Area) .chartType(AAChartType.Area)
.title("Genre")
.subtitle(getTypeName()) .subtitle(getTypeName())
.zoomType(AAChartZoomType.XY) .zoomType(AAChartZoomType.XY)
.dataLabelsEnabled(false) .dataLabelsEnabled(false)
@ -555,7 +550,7 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
private fun setColors(aaOptions: AAOptions) { private fun setColors(aaOptions: AAOptions) {
val backgroundColor = TypedValue() val backgroundColor = TypedValue()
activity.theme.resolveAttribute(android.R.attr.windowBackground, backgroundColor, true) activity.theme.resolveAttribute(com.google.android.material.R.attr.colorSurfaceVariant, backgroundColor, true)
val backgroundStyle = AAStyle().color( val backgroundStyle = AAStyle().color(
AAColor.rgbaColor( AAColor.rgbaColor(
Color.red(backgroundColor.data), Color.red(backgroundColor.data),

View file

@ -5,14 +5,15 @@
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"> android:orientation="vertical"
tools:ignore="HardcodedText,RtlSymmetry">
<LinearLayout <LinearLayout
android:id="@+id/filterContainer" android:id="@+id/filterContainer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
android:padding="16dp"> android:padding="16dp"
android:baselineAligned="false">
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/sourceTypeNameContainer" android:id="@+id/sourceTypeNameContainer"
@ -82,75 +83,374 @@
</LinearLayout> </LinearLayout>
<LinearLayout
android:id="@+id/statisticProgressBar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
tools:visibility="gone">
<ProgressBar
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:id="@+id/chartsContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
tools:visibility="visible"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Format"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/formatChartView" android:id="@+id/formatChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Score"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/scoreChartView" android:id="@+id/scoreChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Status"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/statusChartView" android:id="@+id/statusChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Length"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/lengthChartView" android:id="@+id/lengthChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Release Year"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/releaseYearChartView" android:id="@+id/releaseYearChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Start Year"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/startYearChartView" android:id="@+id/startYearChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Genre"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/genreChartView" android:id="@+id/genreChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Tag"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/tagChartView" android:id="@+id/tagChartChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Country of Origin"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/countryChartView" android:id="@+id/countryChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Voice Actor"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/voiceActorChartView" android:id="@+id/voiceActorChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Staff"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/staffChartView" android:id="@+id/staffChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/poppins_semi_bold"
android:text="Studio"
android:textColor="?attr/colorPrimary"
android:textSize="16sp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp">
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/studioChartView" android:id="@+id/studioChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="350dp" /> android:layout_height="350dp" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout> </LinearLayout>
</LinearLayout>
</LinearLayout>