feat(ALsettings): rowOrder backend done

This commit is contained in:
sneazy-ibo
2024-07-07 01:17:57 +02:00
parent ebdb7a2c33
commit bddb7e14bb
3 changed files with 23 additions and 6 deletions

View File

@@ -163,11 +163,11 @@ object Anilist {
"3 Point Smiley :)",
)
val RowOrder = listOf(
"Score",
"Title",
"Last Updated",
"Last Added",
val rowOrderMap = mapOf(
"Score" to "score",
"Title" to "title",
"Last Updated" to "updatedAt",
"Last Added" to "id"
)
private val cal: Calendar = Calendar.getInstance()

View File

@@ -72,7 +72,7 @@ class AnilistMutations {
${displayAdultContent?.let { """"displayAdultContent":$it""" } ?: ""}
${restrictMessagesToFollowing?.let { """"restrictMessagesToFollowing":$it""" } ?: ""}
${scoreFormat?.let { """"scoreFormat":"$it"""" } ?: ""}
${rowOrder?.let { """"rowOrder":$it""" } ?: ""}
${rowOrder?.let { """"rowOrder":"$it"""" } ?: ""}
}
""".trimIndent().replace("\n", "").replace(""" """, "").replace(",}", "}")

View File

@@ -10,6 +10,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import ani.dantotsu.R
import ani.dantotsu.connections.anilist.Anilist
import ani.dantotsu.connections.anilist.Anilist.ScoreFormat
import ani.dantotsu.connections.anilist.Anilist.rowOrderMap
import ani.dantotsu.connections.anilist.Anilist.staffNameLang
import ani.dantotsu.connections.anilist.Anilist.titleLang
import ani.dantotsu.connections.anilist.AnilistMutations
@@ -125,6 +126,22 @@ class SettingsAnilistActivity : AppCompatActivity() {
settingsAnilistScoreFormat.clearFocus()
}
val currentRowOrder = rowOrderMap.entries.firstOrNull { it.value == Anilist.rowOrder }?.key ?: "Score"
settingsAnilistRowOrder.setText(currentRowOrder)
settingsAnilistRowOrder.setAdapter(
ArrayAdapter(context, R.layout.item_dropdown, rowOrderMap.keys.toList())
)
settingsAnilistRowOrder.setOnItemClickListener { _, _, i, _ ->
val selectedDisplayOrder = rowOrderMap.keys.toList()[i]
val selectedApiOrder = rowOrderMap[selectedDisplayOrder] ?: "score"
lifecycleScope.launch {
anilistMutations.updateSettings(rowOrder = selectedApiOrder)
Anilist.rowOrder = selectedApiOrder
restartApp()
}
settingsAnilistRowOrder.clearFocus()
}
val currentTimezone = Anilist.timezone?.let { Anilist.getDisplayTimezone(it) } ?: "(GMT+00:00) London"
settingsAnilistTimezone.setText(currentTimezone)
settingsAnilistTimezone.setAdapter(