From 5de2c73dd9301a5742b73313d3b10f8074480c05 Mon Sep 17 00:00:00 2001 From: tateisu Date: Fri, 24 Feb 2023 05:38:51 +0900 Subject: [PATCH] =?UTF-8?q?=E7=B5=B5=E6=96=87=E5=AD=97=E3=83=94=E3=83=83?= =?UTF-8?q?=E3=82=AB=E3=83=BC=E3=81=A7=E3=82=AB=E3=83=86=E3=82=B4=E3=83=AA?= =?UTF-8?q?=E9=96=8B=E9=96=89=E3=81=97=E3=81=9F=E5=BE=8C=E3=81=AE=E3=82=B9?= =?UTF-8?q?=E3=82=AF=E3=83=AD=E3=83=BC=E3=83=AB=E5=8B=95=E4=BD=9C=E3=82=92?= =?UTF-8?q?=E5=BE=AE=E5=A6=99=E3=81=AB=E6=94=B9=E5=96=84=E3=80=82NoteStock?= =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E3=81=AE=E3=83=A1=E3=83=B3=E3=82=B7=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E3=81=AE=E6=89=B1=E3=81=84=E3=81=AE=E6=94=B9=E5=96=84?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../juggler/subwaytooter/api/entity/APTag.kt | 20 +++++++++---------- .../subwaytooter/dialog/EmojiPicker.kt | 17 ++++++++-------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/jp/juggler/subwaytooter/api/entity/APTag.kt b/app/src/main/java/jp/juggler/subwaytooter/api/entity/APTag.kt index 0a8a6b97..50c211f3 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/api/entity/APTag.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/api/entity/APTag.kt @@ -48,17 +48,17 @@ class APTag(parser: TootParser, jsonArray: JsonArray?) { "Hashtag" -> hashtags.add(TootTag.parse(parser, it)) "Mention" -> - Acct.parse(it.string("name")!!) - .let { acct -> - mentions.add( - TootMention( - id = EntityId.DEFAULT, - url = it.string("href")!!, - acct = acct, // may local - username = acct.username - ) + it.string("name")?.trimStart('@')?.let { rawAcct -> + val acct = Acct.parse(rawAcct) + mentions.add( + TootMention( + id = EntityId.DEFAULT, + url = it.string("href")!!, + acct = acct, // may local + username = acct.username ) - } + ) + } } } catch (ex: Throwable) { log.e(ex, "APTag ctor failed.") diff --git a/app/src/main/java/jp/juggler/subwaytooter/dialog/EmojiPicker.kt b/app/src/main/java/jp/juggler/subwaytooter/dialog/EmojiPicker.kt index 51143483..947b921b 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/dialog/EmojiPicker.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/dialog/EmojiPicker.kt @@ -619,7 +619,7 @@ private class EmojiPicker( this.canCollapse = keywordLower.isNullOrEmpty() && (selectedCategory == null || selectedCategory == EmojiCategory.Custom) - val list = buildList { + adapter.list = buildList { val filteredCategories = pickerCategries.filter { selectedCategory == null || it.category == selectedCategory }.mapNotNull { category -> @@ -648,13 +648,14 @@ private class EmojiPicker( } } } - adapter.list = list - if (scrollToCategory) { - val idx = - list.indexOfFirst { (it as? PickerItemCategory)?.original == lastExpandCategory } - if (idx != -1) { - views.rvGrid.smoothScrollToPosition(idx) - } + + val targetCategory = lastExpandCategory + if (scrollToCategory && targetCategory != null) { + views.root.handler?.postDelayed({ + adapter.list.indexOfFirst { (it as? PickerItemCategory)?.original == targetCategory } + .takeIf { it != -1 } + ?.let { views.rvGrid.smoothScrollToPosition(it) } + }, 100L) } for (it in views.llCategories.children) {