From ff44caf6521f425190afad0bd13bb638dd7b7eac Mon Sep 17 00:00:00 2001 From: tateisu Date: Mon, 20 Feb 2023 20:14:26 +0900 Subject: [PATCH] =?UTF-8?q?-=20=E3=82=B5=E3=82=A4=E3=83=89=E3=83=A1?= =?UTF-8?q?=E3=83=8B=E3=83=A5=E3=83=BC=E3=81=AE=E9=A0=85=E7=9B=AE=E3=82=92?= =?UTF-8?q?=E6=95=B4=E7=90=86=20-=20notestock=E3=81=A7username,display=5Fn?= =?UTF-8?q?ame=E3=81=AE=E7=89=87=E6=96=B9=E3=81=8C=E6=AC=A0=E3=81=91?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=81=A6=E3=82=82=E5=8B=95=E4=BD=9C=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E5=A4=89=E6=9B=B4=20-=20=E6=9F=90?= =?UTF-8?q?=E3=81=8C/api/v1/instance=E3=81=AB200=E3=81=A8=E3=82=A8?= =?UTF-8?q?=E3=83=A9=E3=83=BCHTML=E3=82=92=E8=BF=94=E3=81=99=E5=95=8F?= =?UTF-8?q?=E9=A1=8C=E3=81=AE=E5=AF=BE=E7=AD=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subwaytooter/actmain/SideMenuAdapter.kt | 15 ++++++++++++--- .../subwaytooter/api/entity/TootAccount.kt | 8 ++++++-- .../subwaytooter/api/entity/TootInstance.kt | 10 +++++++--- .../juggler/subwaytooter/api/entity/TootStatus.kt | 6 ++++-- 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/jp/juggler/subwaytooter/actmain/SideMenuAdapter.kt b/app/src/main/java/jp/juggler/subwaytooter/actmain/SideMenuAdapter.kt index 3ca33a0f..756a8475 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/actmain/SideMenuAdapter.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/actmain/SideMenuAdapter.kt @@ -602,20 +602,29 @@ class SideMenuAdapter( else -> null } - fun filterListItems() { + fun filterListItems(notify:Boolean=true) { + log.i("filterListItems notify=$notify") list = originalList.filter { when (it.itemType) { ItemType.IT_NOTIFICATION_PERMISSION -> notificationActionRecommend() != null + + ItemType.IT_NORMAL -> when (it.title) { + R.string.antenna_list_misskey, + R.string.misskey_hybrid_timeline_long, + -> PrefB.bpEnableDeprecatedSomething.value + + else -> true + } else -> true } } - notifyDataSetChanged() + if(notify) notifyDataSetChanged() } init { actMain.applicationContext.checkVersion() - filterListItems() + filterListItems(notify = false) ListView(actMain).apply { adapter = this@SideMenuAdapter diff --git a/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootAccount.kt b/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootAccount.kt index 25025469..4df8c584 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootAccount.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootAccount.kt @@ -477,9 +477,13 @@ open class TootAccount( // notestock はActivityPub 準拠のサービスなので、サーバ内IDというのは特にない val id: EntityId = EntityId.DEFAULT + val tmpDisplayName = src.string("display_name") + val tmpUserName = src.string("username") + // notestockはdisplay_nameとusernameが入れ替わってる? - val username: String = src.stringOrThrow("display_name") - val display_name: String = src.stringOrThrow("username") + val username = tmpDisplayName ?: tmpUserName ?: error("missing username,displayname") + val display_name = + tmpUserName ?: tmpDisplayName ?: error("missing username,displayname") val tmpAcct = src.string("subject")?.let { Acct.parse(it) } val url: String? = src.string("url") diff --git a/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootInstance.kt b/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootInstance.kt index 742fcb48..9d1f599c 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootInstance.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootInstance.kt @@ -367,7 +367,7 @@ class TootInstance(parser: TootParser, src: JsonObject) { val result = TootApiResult.makeWithCaption(apiHost) if (result.error != null) return result - if(!PrefB.bpEnableDeprecatedSomething.value){ + if (!PrefB.bpEnableDeprecatedSomething.value) { return result.setError(context.getString(R.string.misskey_support_end)) } @@ -418,13 +418,17 @@ class TootInstance(parser: TootParser, src: JsonObject) { // 両方読めなかった場合 return when (r1.response?.code) { - // Mastodon側が404を返したらMisskeyのエラー応答を返す + // /api/v1/instance が404を返したらMisskeyのエラー応答を返す 404 -> r2 - // Mastodonはホワイトリストモードの際に401を返す。 + // /api/v1/instance 401を返すのはMastodonのホワイトリストモードだと思う // Mastoronのエラー結果を返す。 401 -> r1 + // /api/v1/instance が200を返すがJsonObjectではないのは、 + // Misskeyサーバへの /api/meta にアクセスしない && Misskey は /api/v1/instance に200を返すから。 + 200 -> r2 + // その他の場合 // Mastoronのエラー結果を返す。 else -> r1 diff --git a/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootStatus.kt b/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootStatus.kt index 01326247..6eabd7f1 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootStatus.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/api/entity/TootStatus.kt @@ -794,8 +794,10 @@ class TootStatus( val apTag = APTag(parser, src.jsonArray("tag")) val who = parser.account(src.jsonObject("account")) - ?: error("missing account") - val accountRef = TootAccountRef.tootAccountRef(parser, who) + if (who == null) { + error("missing account") + } + val accountRef = tootAccountRef(parser, who) val account = accountRef.get() val uri = src.string("id") ?: error("missing uri")