From 0214e6611be7e3eab3c6f0b6ec6d9334b095e02a Mon Sep 17 00:00:00 2001
From: ibo <41344259+sneazy-ibo@users.noreply.github.com>
Date: Tue, 9 Jul 2024 04:31:53 +0200
Subject: [PATCH] fix(ALsettings): staffNameLanguage crash (thx
<@977936340186443826>) (#455)
---
.../dantotsu/connections/anilist/Anilist.kt | 9 ++---
.../dantotsu/connections/anilist/api/User.kt | 32 ++++++++---------
.../ani/dantotsu/media/MediaInfoFragment.kt | 4 +--
.../settings/AnilistSettingsActivity.kt | 35 +++++++------------
.../res/layout/activity_settings_anilist.xml | 8 -----
app/src/main/res/values/strings.xml | 1 +
6 files changed, 36 insertions(+), 53 deletions(-)
diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/Anilist.kt b/app/src/main/java/ani/dantotsu/connections/anilist/Anilist.kt
index 6b0d288c..6acb67a4 100644
--- a/app/src/main/java/ani/dantotsu/connections/anilist/Anilist.kt
+++ b/app/src/main/java/ani/dantotsu/connections/anilist/Anilist.kt
@@ -157,7 +157,7 @@ object Anilist {
"Native (キルア=ゾルディック)"
)
- val ScoreFormat = listOf(
+ val scoreFormats = listOf(
"100 Point (55/100)",
"10 Point Decimal (5.5/10)",
"10 Point (5/10)",
@@ -199,9 +199,10 @@ object Anilist {
else -> 0
}
- fun getDisplayTimezone(apiTimezone: String): String {
+ fun getDisplayTimezone(apiTimezone: String, context: Context): String {
+ val noTimezone = context.getString(R.string.selected_no_time_zone)
val parts = apiTimezone.split(":")
- if (parts.size != 2) return "(GMT+00:00) London"
+ if (parts.size != 2) return noTimezone
val hours = parts[0].toIntOrNull() ?: 0
val minutes = parts[1].toIntOrNull() ?: 0
@@ -210,7 +211,7 @@ object Anilist {
val formattedMinutes = String.format(Locale.US, "%02d", minutes)
val searchString = "(GMT$sign$formattedHours:$formattedMinutes)"
- return timeZone.find { it.contains(searchString) } ?: "(GMT+00:00) London"
+ return timeZone.find { it.contains(searchString) } ?: noTimezone
}
fun getApiTimezone(displayTimezone: String): String {
diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/api/User.kt b/app/src/main/java/ani/dantotsu/connections/anilist/api/User.kt
index b887c710..ed20cb26 100644
--- a/app/src/main/java/ani/dantotsu/connections/anilist/api/User.kt
+++ b/app/src/main/java/ani/dantotsu/connections/anilist/api/User.kt
@@ -131,14 +131,28 @@ enum class UserTitleLanguage {
@Serializable
enum class UserStaffNameLanguage {
- @SerialName("ENGLISH")
- ENGLISH,
+ @SerialName("ROMAJI_WESTERN")
+ ROMAJI_WESTERN,
@SerialName("ROMAJI")
ROMAJI,
@SerialName("NATIVE")
NATIVE
}
+@Serializable
+enum class ScoreFormat {
+ @SerialName("POINT_100")
+ POINT_100,
+ @SerialName("POINT_10_DECIMAL")
+ POINT_10_DECIMAL,
+ @SerialName("POINT_10")
+ POINT_10,
+ @SerialName("POINT_5")
+ POINT_5,
+ @SerialName("POINT_3")
+ POINT_3,
+}
+
@Serializable
data class UserStatistics(
//
@@ -196,20 +210,6 @@ data class MediaListOptions(
@SerialName("mangaList") var mangaList: MediaListTypeOptions?,
)
-@Serializable
-enum class ScoreFormat {
- @SerialName("POINT_100")
- POINT_100,
- @SerialName("POINT_10_DECIMAL")
- POINT_10_DECIMAL,
- @SerialName("POINT_10")
- POINT_10,
- @SerialName("POINT_5")
- POINT_5,
- @SerialName("POINT_3")
- POINT_3,
-}
-
@Serializable
data class MediaListTypeOptions(
// The order each list should be displayed in
diff --git a/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt b/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt
index 216c937f..02305938 100644
--- a/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt
+++ b/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt
@@ -105,8 +105,8 @@ class MediaInfoFragment : Fragment() {
}
if (media.name != null) binding.mediaInfoNameRomajiContainer.visibility =
View.VISIBLE
- val infoNameRomanji = tripleTab + media.nameRomaji
- binding.mediaInfoNameRomaji.text = infoNameRomanji
+ val infoNameRomaji = tripleTab + media.nameRomaji
+ binding.mediaInfoNameRomaji.text = infoNameRomaji
binding.mediaInfoNameRomaji.setOnLongClickListener {
copyToClipboard(media.nameRomaji)
true
diff --git a/app/src/main/java/ani/dantotsu/settings/AnilistSettingsActivity.kt b/app/src/main/java/ani/dantotsu/settings/AnilistSettingsActivity.kt
index 684fb8db..ca9741c5 100644
--- a/app/src/main/java/ani/dantotsu/settings/AnilistSettingsActivity.kt
+++ b/app/src/main/java/ani/dantotsu/settings/AnilistSettingsActivity.kt
@@ -11,12 +11,15 @@ import androidx.lifecycle.lifecycleScope
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.activityMergeTimeMap
import ani.dantotsu.connections.anilist.Anilist.rowOrderMap
+import ani.dantotsu.connections.anilist.Anilist.scoreFormats
import ani.dantotsu.connections.anilist.Anilist.staffNameLang
import ani.dantotsu.connections.anilist.Anilist.titleLang
import ani.dantotsu.connections.anilist.AnilistMutations
+import ani.dantotsu.connections.anilist.api.ScoreFormat
+import ani.dantotsu.connections.anilist.api.UserStaffNameLanguage
+import ani.dantotsu.connections.anilist.api.UserTitleLanguage
import ani.dantotsu.databinding.ActivitySettingsAnilistBinding
import ani.dantotsu.initActivity
import ani.dantotsu.navBarHeight
@@ -33,20 +36,6 @@ class AnilistSettingsActivity : AppCompatActivity() {
private lateinit var binding: ActivitySettingsAnilistBinding
private lateinit var anilistMutations: AnilistMutations
- enum class FormatLang {
- ENGLISH,
- ROMAJI,
- NATIVE
- }
-
- enum class FormatScore {
- POINT_100,
- POINT_10_DECIMAL,
- POINT_10,
- POINT_5,
- POINT_3,
- }
-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
ThemeManager(this).applyTheme()
@@ -67,7 +56,7 @@ class AnilistSettingsActivity : AppCompatActivity() {
}
val currentTitleLang = Anilist.titleLanguage
- val titleFormat = FormatLang.entries.firstOrNull { it.name == currentTitleLang } ?: FormatLang.ENGLISH
+ val titleFormat = UserTitleLanguage.entries.firstOrNull { it.name == currentTitleLang } ?: UserTitleLanguage.ENGLISH
settingsAnilistTitleLanguage.setText(titleLang[titleFormat.ordinal])
settingsAnilistTitleLanguage.setAdapter(
@@ -89,7 +78,7 @@ class AnilistSettingsActivity : AppCompatActivity() {
}
val currentStaffNameLang = Anilist.staffNameLanguage
- val staffNameFormat = FormatLang.entries.firstOrNull { it.name == currentStaffNameLang } ?: FormatLang.ENGLISH
+ val staffNameFormat = UserStaffNameLanguage.entries.firstOrNull { it.name == currentStaffNameLang } ?: UserStaffNameLanguage.ROMAJI_WESTERN
settingsAnilistStaffLanguage.setText(staffNameLang[staffNameFormat.ordinal])
settingsAnilistStaffLanguage.setAdapter(
@@ -97,10 +86,10 @@ class AnilistSettingsActivity : AppCompatActivity() {
)
settingsAnilistStaffLanguage.setOnItemClickListener { _, _, i, _ ->
val selectedLanguage = when (i) {
- 0 -> "ENGLISH"
+ 0 -> "ROMAJI_WESTERN"
1 -> "ROMAJI"
2 -> "NATIVE"
- else -> "ENGLISH"
+ else -> "ROMAJI_WESTERN"
}
lifecycleScope.launch {
anilistMutations.updateSettings(staffNameLanguage = selectedLanguage)
@@ -128,10 +117,10 @@ class AnilistSettingsActivity : AppCompatActivity() {
}
val currentScoreFormat = Anilist.scoreFormat
- val scoreFormat = FormatScore.entries.firstOrNull{ it.name == currentScoreFormat } ?: FormatScore.POINT_100
- settingsAnilistScoreFormat.setText(ScoreFormat[scoreFormat.ordinal])
+ val scoreFormat = ScoreFormat.entries.firstOrNull{ it.name == currentScoreFormat } ?: ScoreFormat.POINT_100
+ settingsAnilistScoreFormat.setText(scoreFormats[scoreFormat.ordinal])
settingsAnilistScoreFormat.setAdapter(
- ArrayAdapter(context, R.layout.item_dropdown, ScoreFormat)
+ ArrayAdapter(context, R.layout.item_dropdown, scoreFormats)
)
settingsAnilistScoreFormat.setOnItemClickListener { _, _, i, _ ->
val selectedFormat = when (i) {
@@ -186,7 +175,7 @@ class AnilistSettingsActivity : AppCompatActivity() {
saveCustomLists()
}
- val currentTimezone = Anilist.timezone?.let { Anilist.getDisplayTimezone(it) } ?: "(GMT+00:00) London"
+ val currentTimezone = Anilist.timezone?.let { Anilist.getDisplayTimezone(it, context) } ?: context.getString(R.string.selected_no_time_zone)
settingsAnilistTimezone.setText(currentTimezone)
settingsAnilistTimezone.setAdapter(
ArrayAdapter(context, R.layout.item_dropdown, Anilist.timeZone)
diff --git a/app/src/main/res/layout/activity_settings_anilist.xml b/app/src/main/res/layout/activity_settings_anilist.xml
index aa7bdd9e..4111056a 100644
--- a/app/src/main/res/layout/activity_settings_anilist.xml
+++ b/app/src/main/res/layout/activity_settings_anilist.xml
@@ -83,7 +83,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp"
- android:alpha="0.58"
android:fontFamily="@font/poppins_bold"
android:text="@string/selected_title_language" />
@@ -120,7 +119,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp"
- android:alpha="0.58"
android:fontFamily="@font/poppins_bold"
android:text="@string/selected_staff_language" />
@@ -157,7 +155,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp"
- android:alpha="0.58"
android:fontFamily="@font/poppins_bold"
android:text="@string/selected_merge_time" />
@@ -223,7 +220,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp"
- android:alpha="0.58"
android:fontFamily="@font/poppins_bold"
android:text="@string/selected_score_format" />
@@ -260,7 +256,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp"
- android:alpha="0.58"
android:fontFamily="@font/poppins_bold"
android:text="@string/selected_row_order" />
@@ -297,7 +292,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp"
- android:alpha="0.58"
android:fontFamily="@font/poppins_bold"
android:text="@string/custom_anime_list" />
@@ -324,7 +318,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp"
- android:alpha="0.58"
android:fontFamily="@font/poppins_bold"
android:text="@string/custom_manga_list" />
@@ -373,7 +366,6 @@
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginHorizontal="32dp"
- android:alpha="0.58"
android:fontFamily="@font/poppins_bold"
android:text="@string/selected_time_zone" />
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a6ae420c..50555026 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -339,6 +339,7 @@
Activity Merge Time
Scoring System
Timezone
+ No Timezone selected
Default List Order
Custom Anime Lists
Custom Manga Lists