feat: score graph

This commit is contained in:
rebelonion 2024-03-02 22:32:40 -06:00
parent d2876d04f5
commit a9f8d223e9
7 changed files with 139 additions and 90 deletions

View file

@ -48,7 +48,7 @@ class CharacterDetailsActivity : AppCompatActivity(), AppBarLayout.OnOffsetChang
initActivity(this) initActivity(this)
screenWidth = resources.displayMetrics.run { widthPixels / density } screenWidth = resources.displayMetrics.run { widthPixels / density }
if (PrefManager.getVal(PrefName.ImmersiveMode)) this.window.statusBarColor = if (PrefManager.getVal(PrefName.ImmersiveMode)) this.window.statusBarColor =
ContextCompat.getColor(this, R.color.status) ContextCompat.getColor(this, R.color.transparent)
val banner = val banner =
if (PrefManager.getVal(PrefName.BannerAnimations)) binding.characterBanner else binding.characterBannerNoKen if (PrefManager.getVal(PrefName.BannerAnimations)) binding.characterBanner else binding.characterBannerNoKen
@ -144,7 +144,7 @@ class CharacterDetailsActivity : AppCompatActivity(), AppBarLayout.OnOffsetChang
if (percentage <= percent && isCollapsed) { if (percentage <= percent && isCollapsed) {
isCollapsed = false isCollapsed = false
if (immersiveMode) this.window.statusBarColor = if (immersiveMode) this.window.statusBarColor =
ContextCompat.getColor(this, R.color.status) ContextCompat.getColor(this, R.color.transparent)
binding.characterAppBar.setBackgroundResource(R.color.bg) binding.characterAppBar.setBackgroundResource(R.color.bg)
} }
} }

View file

@ -14,33 +14,31 @@ import ani.dantotsu.R
import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.connections.anilist.Anilist
import ani.dantotsu.connections.anilist.api.Query import ani.dantotsu.connections.anilist.api.Query
import ani.dantotsu.databinding.FragmentStatisticsBinding import ani.dantotsu.databinding.FragmentStatisticsBinding
import com.github.aachartmodel.aainfographics.aachartcreator.AAChartAlignType
import com.github.aachartmodel.aainfographics.aachartcreator.AAChartLayoutType
import com.github.aachartmodel.aainfographics.aachartcreator.AAChartModel import com.github.aachartmodel.aainfographics.aachartcreator.AAChartModel
import com.github.aachartmodel.aainfographics.aachartcreator.AAChartStackingType
import com.github.aachartmodel.aainfographics.aachartcreator.AAChartType import com.github.aachartmodel.aainfographics.aachartcreator.AAChartType
import com.github.aachartmodel.aainfographics.aachartcreator.AAChartVerticalAlignType
import com.github.aachartmodel.aainfographics.aachartcreator.AAChartZoomType import com.github.aachartmodel.aainfographics.aachartcreator.AAChartZoomType
import com.github.aachartmodel.aainfographics.aachartcreator.AADataElement import com.github.aachartmodel.aainfographics.aachartcreator.AADataElement
import com.github.aachartmodel.aainfographics.aachartcreator.AAOptions import com.github.aachartmodel.aainfographics.aachartcreator.AAOptions
import com.github.aachartmodel.aainfographics.aachartcreator.AASeriesElement import com.github.aachartmodel.aainfographics.aachartcreator.AASeriesElement
import com.github.aachartmodel.aainfographics.aachartcreator.aa_toAAOptions import com.github.aachartmodel.aainfographics.aachartcreator.aa_toAAOptions
import com.github.aachartmodel.aainfographics.aaoptionsmodel.AADataLabels
import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAItemStyle import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAItemStyle
import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAMarker
import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAStyle import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAStyle
import com.github.aachartmodel.aainfographics.aatools.AAColor import com.github.aachartmodel.aainfographics.aatools.AAColor
import com.github.aachartmodel.aainfographics.aatools.AAGradientColor
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import java.util.Locale import java.util.Locale
import kotlin.reflect.KClass
class StatsFragment(private val user: Query.UserProfile, private val activity: ProfileActivity) : class StatsFragment(private val user: Query.UserProfile, private val activity: ProfileActivity) :
Fragment() { Fragment() {
private lateinit var binding: FragmentStatisticsBinding private lateinit var binding: FragmentStatisticsBinding
private var selected: Int = 0
private var stats: Query.StatisticsResponse? = null private var stats: Query.StatisticsResponse? = null
private var type: MediaType = MediaType.ANIME private var type: MediaType = MediaType.ANIME
private var statType: StatType = StatType.COUNT private var statType: StatType = StatType.COUNT
var chartType: AAChartType = AAChartType.Pie
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
@ -65,7 +63,7 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
ArrayAdapter( ArrayAdapter(
requireContext(), requireContext(),
R.layout.item_dropdown, R.layout.item_dropdown,
AAChartType.entries.map { it.name.uppercase(Locale.ROOT) } StatType.entries.map { it.name.uppercase(Locale.ROOT) }
) )
) )
@ -76,33 +74,24 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
binding.filterContainer.visibility = View.VISIBLE binding.filterContainer.visibility = View.VISIBLE
binding.sourceType.setOnItemClickListener { _, _, i, _ -> binding.sourceType.setOnItemClickListener { _, _, i, _ ->
type = MediaType.entries.toTypedArray()[i] type = MediaType.entries.toTypedArray()[i]
updateStats() loadStats(type == MediaType.ANIME)
} }
binding.sourceFilter.setOnItemClickListener { _, _, i, _ -> binding.sourceFilter.setOnItemClickListener { _, _, i, _ ->
//statType = StatType.entries.toTypedArray()[i] statType = StatType.entries.toTypedArray()[i]
chartType = AAChartType.entries.toTypedArray()[i] loadStats(type == MediaType.ANIME)
updateStats()
} }
updateStats() loadStats(type == MediaType.ANIME)
} }
} }
} }
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
updateStats() loadStats(type == MediaType.ANIME)
} }
private fun loadStats(anime: Boolean) {
private fun updateStats() { val formatChartModel = getFormatChartModel(anime)
when (type) {
MediaType.ANIME -> loadAnimeStats()
MediaType.MANGA -> loadMangaStats()
}
}
private fun loadAnimeStats() {
val formatChartModel = getFormatChartModel(true)
if (formatChartModel != null) { if (formatChartModel != null) {
binding.formatChartView.visibility = View.VISIBLE binding.formatChartView.visibility = View.VISIBLE
val aaOptions = buildOptions(formatChartModel) val aaOptions = buildOptions(formatChartModel)
@ -110,7 +99,8 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
} else { } else {
binding.formatChartView.visibility = View.GONE binding.formatChartView.visibility = View.GONE
} }
val statusChartModel = getStatusChartModel(true)
val statusChartModel = getStatusChartModel(anime)
if (statusChartModel != null) { if (statusChartModel != null) {
binding.statusChartView.visibility = View.VISIBLE binding.statusChartView.visibility = View.VISIBLE
val aaOptions = buildOptions(statusChartModel) val aaOptions = buildOptions(statusChartModel)
@ -118,38 +108,46 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
} else { } else {
binding.statusChartView.visibility = View.GONE binding.statusChartView.visibility = View.GONE
} }
val scoreChartModel = getScoreChartModel(anime)
if (scoreChartModel != null) {
binding.scoreChartView.visibility = View.VISIBLE
val aaOptions = buildOptions(scoreChartModel, false, """
function () {
return 'score: ' +
this.x +
'<br/> ' +
' ${getTypeName()} ' +
this.y
}
""".trimIndent()
)
binding.scoreChartView.aa_drawChartWithChartOptions(aaOptions)
} else {
binding.scoreChartView.visibility = View.GONE
} }
private fun loadMangaStats() {
val formatChartModel = getFormatChartModel(false)
if (formatChartModel != null) {
binding.formatChartView.visibility = View.VISIBLE
val aaOptions = buildOptions(formatChartModel)
binding.formatChartView.aa_drawChartWithChartOptions(aaOptions)
} else {
binding.formatChartView.visibility = View.GONE
}
val statusChartModel = getStatusChartModel(false)
if (statusChartModel != null) {
binding.statusChartView.visibility = View.VISIBLE
val aaOptions = buildOptions(statusChartModel)
binding.statusChartView.aa_drawChartWithChartOptions(aaOptions)
} else {
binding.statusChartView.visibility = View.GONE
}
} }
private fun buildOptions(aaChartModel: AAChartModel): AAOptions { private fun buildOptions(
aaChartModel: AAChartModel,
polar: Boolean = true,
formatting: String? = null
): AAOptions {
val aaOptions = aaChartModel.aa_toAAOptions() val aaOptions = aaChartModel.aa_toAAOptions()
aaOptions.chart?.zoomType = "xy" aaOptions.chart?.zoomType = "xy"
aaOptions.chart?.pinchType = "xy" aaOptions.chart?.pinchType = "xy"
aaOptions.chart?.polar = true aaOptions.chart?.polar = polar
aaOptions.tooltip?.apply { aaOptions.tooltip?.apply {
shared = true headerFormat
formatter(////I want to show {name}: {y}, {percentage:.2f}% if (formatting != null) {
formatter(formatting)
} else {
formatter(
""" """
function () { function () {
return this.series.name + ': <br/> ' return this.point.name
+ ': <br/> '
+ '<b> ' + '<b> '
+ this.y + this.y
+ ', ' + ', '
@ -159,12 +157,9 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
""".trimIndent() """.trimIndent()
) )
} }
}
aaOptions.legend?.apply { aaOptions.legend?.apply {
enabled(true) enabled(true)
//.verticalAlign(AAChartVerticalAlignType.Top)
//.layout(AAChartLayoutType.Vertical)
//.align(AAChartAlignType.Right)
//.itemMarginTop(10f)
.labelFormat = "{name}: {y}" .labelFormat = "{name}: {y}"
} }
aaOptions.plotOptions?.series?.connectNulls(true) aaOptions.plotOptions?.series?.connectNulls(true)
@ -176,12 +171,12 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
val names: List<String> = if (anime) { val names: List<String> = if (anime) {
stats?.data?.user?.statistics?.anime?.formats?.map { it.format } ?: emptyList() stats?.data?.user?.statistics?.anime?.formats?.map { it.format } ?: emptyList()
} else { } else {
stats?.data?.user?.statistics?.manga?.countries?.map { it.country } ?: emptyList() stats?.data?.user?.statistics?.manga?.formats?.map { it.format } ?: emptyList()
} }
val values: List<Number> = if (anime) { val values: List<Number> = if (anime) {
when (statType) { when (statType) {
StatType.COUNT -> stats?.data?.user?.statistics?.anime?.formats?.map { it.count } StatType.COUNT -> stats?.data?.user?.statistics?.anime?.formats?.map { it.count }
StatType.TIME -> stats?.data?.user?.statistics?.anime?.formats?.map { it.minutesWatched } StatType.TIME -> stats?.data?.user?.statistics?.anime?.formats?.map { it.minutesWatched / 60 }
StatType.MEAN_SCORE -> stats?.data?.user?.statistics?.anime?.formats?.map { it.meanScore } StatType.MEAN_SCORE -> stats?.data?.user?.statistics?.anime?.formats?.map { it.meanScore }
} ?: emptyList() } ?: emptyList()
} else { } else {
@ -198,7 +193,7 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
return AAChartModel() return AAChartModel()
.chartType(AAChartType.Pie) .chartType(AAChartType.Pie)
.title("Format") .title("Format")
.subtitle(statType.name.lowercase(Locale.ROOT)) .subtitle(getTypeName())
.zoomType(AAChartZoomType.XY) .zoomType(AAChartZoomType.XY)
.dataLabelsEnabled(true) .dataLabelsEnabled(true)
.series(getElements(names, values, palette)) .series(getElements(names, values, palette))
@ -213,7 +208,7 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
val values: List<Number> = if (anime) { val values: List<Number> = if (anime) {
when (statType) { when (statType) {
StatType.COUNT -> stats?.data?.user?.statistics?.anime?.statuses?.map { it.count } StatType.COUNT -> stats?.data?.user?.statistics?.anime?.statuses?.map { it.count }
StatType.TIME -> stats?.data?.user?.statistics?.anime?.statuses?.map { it.minutesWatched } StatType.TIME -> stats?.data?.user?.statistics?.anime?.statuses?.map { it.minutesWatched / 60 }
StatType.MEAN_SCORE -> stats?.data?.user?.statistics?.anime?.statuses?.map { it.meanScore } StatType.MEAN_SCORE -> stats?.data?.user?.statistics?.anime?.statuses?.map { it.meanScore }
} ?: emptyList() } ?: emptyList()
} else { } else {
@ -228,14 +223,49 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
val primaryColor = getBaseColor(activity) val primaryColor = getBaseColor(activity)
val palette = generateColorPalette(primaryColor, names.size) val palette = generateColorPalette(primaryColor, names.size)
return AAChartModel() return AAChartModel()
.chartType(chartType) .chartType(AAChartType.Pyramid)
.title("Status") .title("Status")
.subtitle(statType.name.lowercase(Locale.ROOT)) .subtitle(getTypeName())
.zoomType(AAChartZoomType.XY) .zoomType(AAChartZoomType.XY)
.dataLabelsEnabled(true) .dataLabelsEnabled(true)
.series(getElements(names, values, palette)) .series(getElements(names, values, palette))
} }
private fun getScoreChartModel(anime: Boolean): AAChartModel? {
val names: List<Int> = if (anime) {
stats?.data?.user?.statistics?.anime?.scores?.map { it.score } ?: emptyList()
} else {
stats?.data?.user?.statistics?.manga?.scores?.map { it.score } ?: emptyList()
}
val values: List<Number> = if (anime) {
when (statType) {
StatType.COUNT -> stats?.data?.user?.statistics?.anime?.scores?.map { it.count }
StatType.TIME -> stats?.data?.user?.statistics?.anime?.scores?.map { it.minutesWatched / 60 }
StatType.MEAN_SCORE -> stats?.data?.user?.statistics?.anime?.scores?.map { it.meanScore }
} ?: emptyList()
} else {
when (statType) {
StatType.COUNT -> stats?.data?.user?.statistics?.manga?.scores?.map { it.count }
StatType.TIME -> stats?.data?.user?.statistics?.manga?.scores?.map { it.chaptersRead }
StatType.MEAN_SCORE -> stats?.data?.user?.statistics?.manga?.scores?.map { it.meanScore }
} ?: emptyList()
}
if (names.isEmpty() || values.isEmpty())
return null
val primaryColor = getBaseColor(activity)
val palette = generateColorPalette(primaryColor, names.size)
return AAChartModel()
.chartType(AAChartType.Column)
.title("Score")
.subtitle(getTypeName())
.zoomType(AAChartZoomType.XY)
.dataLabelsEnabled(false)
.yAxisTitle(getTypeName())
.xAxisTickInterval(10)
.stacking(AAChartStackingType.Normal)
.series(getElements(names, values, palette))
}
enum class StatType { enum class StatType {
COUNT, TIME, MEAN_SCORE COUNT, TIME, MEAN_SCORE
} }
@ -244,15 +274,24 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
ANIME, MANGA ANIME, MANGA
} }
private fun getTypeName(): String {
return when (statType) {
StatType.COUNT -> "Count"
StatType.TIME -> if (type == MediaType.ANIME) "Hours Watched" else "Chapters Read"
StatType.MEAN_SCORE -> "Mean Score"
}
}
private fun getElements( private fun getElements(
names: List<String>, names: List<Any>,
statData: List<Number>, statData: List<Number>,
colors: List<Int> colors: List<Int>
): Array<Any> { ): Array<Any> {
val statDataElements = mutableListOf<AADataElement>() val statDataElements = mutableListOf<AADataElement>()
for (i in statData.indices) { for (i in statData.indices) {
statDataElements.add( val element = AADataElement()
AADataElement().name(names[i]).y(statData[i]).color( .y(statData[i])
.color(
AAColor.rgbaColor( AAColor.rgbaColor(
Color.red(colors[i]), Color.red(colors[i]),
Color.green(colors[i]), Color.green(colors[i]),
@ -260,10 +299,21 @@ class StatsFragment(private val user: Query.UserProfile, private val activity: P
0.9f 0.9f
) )
) )
if (names[i] is Number) {
element.x(names[i] as Number)
element.dataLabels(AADataLabels()
.enabled(false)
.format("{point.y}")
.backgroundColor(AAColor.rgbaColor(255, 255, 255, 0.0f))
) )
} else {
element.name(names[i] as String)
}
statDataElements.add(element)
} }
return arrayOf( return arrayOf(
AASeriesElement().name("Count").data(statDataElements.toTypedArray()), AASeriesElement().name("Score")
.data(statDataElements.toTypedArray())
) )
} }

View file

@ -61,7 +61,7 @@
android:layout_width="82dp" android:layout_width="82dp"
android:layout_height="82dp" android:layout_height="82dp"
android:layout_gravity="center" android:layout_gravity="center"
android:backgroundTint="@color/bg_opp" android:backgroundTint="@color/transparent"
app:cardCornerRadius="64dp"> app:cardCornerRadius="64dp">
<com.google.android.material.imageview.ShapeableImageView <com.google.android.material.imageview.ShapeableImageView
@ -69,8 +69,7 @@
android:layout_width="78dp" android:layout_width="78dp"
android:layout_height="78dp" android:layout_height="78dp"
android:layout_gravity="center" android:layout_gravity="center"
app:srcCompat="@drawable/ic_round_add_circle_24" tools:tint="@color/transparent"
tools:tint="@color/bg"
tools:ignore="ContentDescription,ImageContrastCheck" /> tools:ignore="ContentDescription,ImageContrastCheck" />
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>

View file

@ -86,71 +86,71 @@
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="250dp" /> android:layout_height="350dp" />
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/status_chart_view"
android:layout_width="match_parent"
android:background="?android:colorBackground"
android:layout_height="250dp" />
<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="250dp" /> android:layout_height="350dp" />
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/statusChartView"
android:layout_width="match_parent"
android:background="?android:colorBackground"
android:layout_height="350dp" />
<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="250dp" /> android:layout_height="350dp" />
<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="250dp" /> android:layout_height="350dp" />
<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="250dp" /> android:layout_height="350dp" />
<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="250dp" /> android:layout_height="350dp" />
<com.github.aachartmodel.aainfographics.aachartcreator.AAChartView <com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
android:id="@+id/tagChartView" android:id="@+id/tagChartView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="?android:colorBackground" android:background="?android:colorBackground"
android:layout_height="250dp" /> android:layout_height="350dp" />
<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="250dp" /> android:layout_height="350dp" />
<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="250dp" /> android:layout_height="350dp" />
<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="250dp" /> android:layout_height="350dp" />
<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="250dp" /> android:layout_height="350dp" />
</LinearLayout> </LinearLayout>

View file

@ -7,7 +7,7 @@
<color name="nav_bg_inv">#001C1C1C</color> <color name="nav_bg_inv">#001C1C1C</color>
<color name="nav_tab">#40ffffff</color> <color name="nav_tab">#40ffffff</color>
<color name="nav_tab_disabled">#40ffffff</color> <color name="nav_tab_disabled">#40ffffff</color>
<color name="status">#00000000</color> <color name="transparent">#00000000</color>
<color name="nav_status">#80000000</color> <color name="nav_status">#80000000</color>
<color name="filler">#29FF6B08</color> <color name="filler">#29FF6B08</color>
<color name="chip">#b3aead</color> <color name="chip">#b3aead</color>

View file

@ -1,7 +1,7 @@
<resources> <resources>
<style name="Theme.Dantotsu" parent="Theme.Base"> <style name="Theme.Dantotsu" parent="Theme.Base">
<item name="android:statusBarColor">@color/status</item> <item name="android:statusBarColor">@color/transparent</item>
<item name="colorOnPrimary">@color/bg_black</item> <item name="colorOnPrimary">@color/bg_black</item>
<item name="android:textColor">@color/bg_white</item> <item name="android:textColor">@color/bg_white</item>
<item name="colorSecondaryVariant">@color/violet_400</item> <item name="colorSecondaryVariant">@color/violet_400</item>

View file

@ -12,7 +12,7 @@
<color name="nav_bg_inv">#00FFFFFF</color> <color name="nav_bg_inv">#00FFFFFF</color>
<color name="nav_tab">#40000000</color> <color name="nav_tab">#40000000</color>
<color name="nav_tab_disabled">#19000000</color> <color name="nav_tab_disabled">#19000000</color>
<color name="status">#00000000</color> <color name="transparent">#00000000</color>
<color name="button_icon">#A9FFFFFF</color> <color name="button_icon">#A9FFFFFF</color>
<color name="nav_status">#80FFFFFF</color> <color name="nav_status">#80FFFFFF</color>
<color name="fav">#ad5edd</color> <color name="fav">#ad5edd</color>