aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2021-11-25 23:15:30 +0900
committerKazuki Yamaguchi <k@rhe.jp>2021-11-25 23:15:30 +0900
commit5afa436feac0207e23a88616380f1982df180d2e (patch)
tree057bba112cd144c8f0ac197715f5aa807f5b2af0
parente746a4dd06d74e4dec6170aa54e464773152a41c (diff)
downloadsnag-5afa436feac0207e23a88616380f1982df180d2e.tar.gz
app: use list name instead of full name if possible
-rw-r--r--app/src/main/kotlin/jp/rhe/snag/entities/TwitterList.kt16
-rw-r--r--app/src/main/kotlin/jp/rhe/snag/views/pages/ListPageFragment.kt10
-rw-r--r--app/src/main/kotlin/jp/rhe/snag/views/pages/Pages.kt6
3 files changed, 22 insertions, 10 deletions
diff --git a/app/src/main/kotlin/jp/rhe/snag/entities/TwitterList.kt b/app/src/main/kotlin/jp/rhe/snag/entities/TwitterList.kt
index 8582ec8..8bd2e93 100644
--- a/app/src/main/kotlin/jp/rhe/snag/entities/TwitterList.kt
+++ b/app/src/main/kotlin/jp/rhe/snag/entities/TwitterList.kt
@@ -5,14 +5,24 @@ import jp.rhe.snag.utils.jsonIgnoringUnknownKeys
import kotlinx.serialization.Serializable
import kotlinx.serialization.builtins.ListSerializer
-class TwitterList private constructor(override val id: Long, val fullName: String) : IdObject {
+class TwitterList private constructor(
+ override val id: Long,
+ val name: String,
+ val fullName: String,
+ val user: User
+) : IdObject {
companion object {
fun fromTwitterJsonArray(jsonString: String): List<TwitterList> {
val list = jsonIgnoringUnknownKeys.decodeFromString(ListSerializer(TwitterJson.serializer()), jsonString)
- return list.map { TwitterList(it.id, it.full_name) }
+ return list.map { TwitterList(it.id, it.name, it.full_name, User.fromTwitterJson(it.user)) }
}
}
@Serializable
- private data class TwitterJson(val id: Long, val full_name: String)
+ private data class TwitterJson(
+ val id: Long,
+ val name: String,
+ val full_name: String,
+ val user: User.TwitterJson
+ )
}
diff --git a/app/src/main/kotlin/jp/rhe/snag/views/pages/ListPageFragment.kt b/app/src/main/kotlin/jp/rhe/snag/views/pages/ListPageFragment.kt
index 8851f84..6a8e2b0 100644
--- a/app/src/main/kotlin/jp/rhe/snag/views/pages/ListPageFragment.kt
+++ b/app/src/main/kotlin/jp/rhe/snag/views/pages/ListPageFragment.kt
@@ -35,12 +35,14 @@ class ListPageFragment : RefreshableTimelinePageFragment<Tweet, PageInfo.ListPag
val lists = world.listSubscriptions.toList()
val popup = PopupMenu(requireContext(), binding.twitterListMenuButton)
lists.forEachIndexed { index, item ->
- popup.menu.add(Menu.NONE, index, Menu.NONE, item.fullName)
+ val displayName = if (item.user == world.user) item.name else item.fullName
+ popup.menu.add(Menu.NONE, index, Menu.NONE, displayName)
}
popup.setOnMenuItemClickListener {
val item = lists[it.itemId]
- binding.twitterListName.text = item.fullName
- pageInfo.currentListFullName = item.fullName
+ val displayName = if (item.user == world.user) item.name else item.fullName
+ binding.twitterListName.text = displayName
+ pageInfo.currentListDisplayName = displayName
pageInfo.currentListId = item.id
setSwipeRefreshEnabled(true)
adapter.clear()
@@ -50,7 +52,7 @@ class ListPageFragment : RefreshableTimelinePageFragment<Tweet, PageInfo.ListPag
popup.show()
}
setSwipeRefreshEnabled(pageInfo.currentListId != null)
- binding.twitterListName.text = pageInfo.currentListFullName ?: "<none selected>"
+ binding.twitterListName.text = pageInfo.currentListDisplayName ?: "<none selected>"
refreshData()
}
diff --git a/app/src/main/kotlin/jp/rhe/snag/views/pages/Pages.kt b/app/src/main/kotlin/jp/rhe/snag/views/pages/Pages.kt
index 6a9cf41..5e3c244 100644
--- a/app/src/main/kotlin/jp/rhe/snag/views/pages/Pages.kt
+++ b/app/src/main/kotlin/jp/rhe/snag/views/pages/Pages.kt
@@ -199,9 +199,9 @@ sealed class PageInfo(val fragmentClass: Class<out PageFragment<*>>) {
}
}
- class ListPageInfo(var currentListId: Long?, var currentListFullName: String?) : PageInfo(ListPageFragment::class.java) {
+ class ListPageInfo(var currentListId: Long?, var currentListDisplayName: String?) : PageInfo(ListPageFragment::class.java) {
override val name
- get() = "List (${currentListFullName ?: "<not selected>"})"
+ get() = "List (${currentListDisplayName ?: "<not selected>"})"
override fun describe(): String {
return ""
@@ -209,7 +209,7 @@ sealed class PageInfo(val fragmentClass: Class<out PageFragment<*>>) {
override fun toJson() = buildJsonObject {
put("list_id", currentListId)
- put("list_full_name", currentListFullName)
+ put("list_full_name", currentListDisplayName)
}
companion object : PageInfoCompanionObject {