From 6ac8545b58a52cfaea32ca070aafa0a4d5ef2e2b Mon Sep 17 00:00:00 2001 From: tateisu Date: Tue, 11 Jul 2023 09:09:43 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=95=E3=82=A9=E3=83=AD=E3=83=BC=E9=99=90?= =?UTF-8?q?=E5=AE=9A=E6=8A=95=E7=A8=BF=E3=81=AB=E3=83=95=E3=82=A9=E3=83=AD?= =?UTF-8?q?=E3=83=BC=E5=A4=96=E3=81=8B=E3=82=89=E8=BF=94=E4=BF=A1=E3=81=97?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=A8=E3=81=97=E3=81=9F=E9=9A=9B=E3=81=AE?= =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E8=A1=A8=E7=A4=BA=E3=82=92=E6=94=B9?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jp/juggler/subwaytooter/util/PostImpl.kt | 14 ++++++- app/src/main/res/values-ja/strings.xml | 3 +- app/src/main/res/values/strings.xml | 1 + .../java/jp/juggler/util/log/ToastUtils.kt | 39 ++++++++++--------- 4 files changed, 37 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/jp/juggler/subwaytooter/util/PostImpl.kt b/app/src/main/java/jp/juggler/subwaytooter/util/PostImpl.kt index 43dc016c..6ca853c7 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/util/PostImpl.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/util/PostImpl.kt @@ -607,7 +607,19 @@ class PostImpl( status != null -> PostResult.Normal(account, status) - else -> error(result.error ?: "(result.error is null)") + else -> { + val e = result.error + error( + when { + e.isNullOrBlank() -> "(missing result.error)" + + e.contains("HTTP 404") -> + "$e\n${activity.getString(R.string.post_404_desc)}" + + else -> e + } + ) + } } } } diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index e8d2b42a..dac02264 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -1289,4 +1289,5 @@ 可能ならWebPフォーマットを使う 詳細 絵文字の詳細 - \ No newline at end of file + (もしくは、フォロー限定投稿にフォロー外から返信しようとしました) + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 500c54ee..75a727d9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1300,4 +1300,5 @@ Use WebP format if server accepts. Detail Emoji detail + (Or, you reply to follower-only post from other account) diff --git a/base/src/main/java/jp/juggler/util/log/ToastUtils.kt b/base/src/main/java/jp/juggler/util/log/ToastUtils.kt index 04b4f742..8fc534de 100644 --- a/base/src/main/java/jp/juggler/util/log/ToastUtils.kt +++ b/base/src/main/java/jp/juggler/util/log/ToastUtils.kt @@ -108,7 +108,7 @@ internal fun showToastImpl( context: Context, bLong: Boolean, message: String, - forceToast:Boolean = false, + forceToast: Boolean = false, ): Boolean { runOnMainLooper { if (!forceToast && (message.length >= 32 || message.count { it == '\n' } > 1)) { @@ -154,8 +154,8 @@ internal fun showToastImpl( fun Context.showToast( bLong: Boolean, caption: String?, - forceToast:Boolean = false, -): Boolean = showToastImpl(this, bLong, caption ?: "(null)" ,forceToast = forceToast) + forceToast: Boolean = false, +): Boolean = showToastImpl(this, bLong, caption ?: "(null)", forceToast = forceToast) fun Context.showToast(ex: Throwable, caption: String? = null): Boolean = showToastImpl(this, true, ex.withCaption(caption)) @@ -188,23 +188,26 @@ fun AppCompatActivity.showError(ex: Throwable, caption: String? = null) { if (ex is CancellationException) return try { - AlertDialog.Builder(this) - .setTitle("error") - .setMessage( - listOf( - caption, - when (ex) { - is IllegalStateException -> null - else -> ex.javaClass.simpleName - }, - ex.message, - ) - .filter { !it.isNullOrBlank() } - .joinToString("\n") - ) + val text = listOf( + caption, + when (ex) { + is IllegalStateException -> null + else -> ex.javaClass.simpleName + }, + ex.message, + ) + .filter { !it.isNullOrBlank() } + .joinToString("\n") + if (text.isNotEmpty()) { + AlertDialog.Builder(this) + .setMessage(text) + .setPositiveButton(android.R.string.ok, null) + .show() + return + } } catch (ignored: Throwable) { - showToast(ex, caption) } + showToast(ex, caption) } fun Context.errorString(@StringRes stringId: Int, vararg args: Any?): Nothing =