From 3c40978d507183339d9d93efb6a98ff38e822428 Mon Sep 17 00:00:00 2001 From: fgerber Date: Tue, 13 Dec 2022 17:46:49 +0100 Subject: [PATCH 1/3] Fix crash when server is offline (issue #357) --- .../app/posts/feeds/CommonFeedFragmentUtils.kt | 10 ++++++++-- app/src/main/res/values/strings.xml | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt index 08b12511..c0df818b 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt @@ -1,7 +1,6 @@ package org.pixeldroid.app.posts.feeds import android.view.LayoutInflater -import android.view.View import android.view.ViewGroup import android.widget.ProgressBar import androidx.constraintlayout.motion.widget.MotionLayout @@ -83,7 +82,14 @@ internal fun initAdapter( ?: loadState.refresh as? LoadState.Error errorState?.let { val error: String = (it.error as? HttpException)?.response()?.errorBody()?.string()?.ifEmpty { null }?.let { s -> - Gson().fromJson(s, org.pixeldroid.app.utils.api.objects.Error::class.java)?.error?.ifBlank { null } + try { + Gson().fromJson(s, org.pixeldroid.app.utils.api.objects.Error::class.java)?.error?.ifBlank { null } + } catch (exception: Exception) { + errorLayout.root.context.getString( + R.string.server_down_error, + it.error.localizedMessage.orEmpty() + ) + } } ?: it.error.localizedMessage.orEmpty() showError(motionLayout = motionLayout, errorLayout = errorLayout, errorText = error) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 964b263f..52749391 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -123,6 +123,7 @@ For more info about Pixelfed, you can check here: https://pixelfed.org" Something went wrong while loading Could not get feed + The server appears to be temporarily down: %1$s Share picture… Save to Gallery… From 1aa9f7bca28e6f347d56ff16bc051400366eefc1 Mon Sep 17 00:00:00 2001 From: fgerber <76-fgerber@users.noreply.shinice.net> Date: Sat, 7 Jan 2023 11:11:14 +0100 Subject: [PATCH 2/3] Warn about unknown error instead of server error --- .../org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt | 2 +- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt index c0df818b..ee52b113 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt @@ -86,7 +86,7 @@ internal fun initAdapter( Gson().fromJson(s, org.pixeldroid.app.utils.api.objects.Error::class.java)?.error?.ifBlank { null } } catch (exception: Exception) { errorLayout.root.context.getString( - R.string.server_down_error, + R.string.unknown_error, it.error.localizedMessage.orEmpty() ) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 52749391..8ed31929 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -123,7 +123,7 @@ For more info about Pixelfed, you can check here: https://pixelfed.org" Something went wrong while loading Could not get feed - The server appears to be temporarily down: %1$s + Unknown error, check if server is down: %1$s Share picture… Save to Gallery… From 09f272eb3c3949975055cd46206857a08aee1ada Mon Sep 17 00:00:00 2001 From: fgerber <76-fgerber@users.noreply.shinice.net> Date: Sat, 7 Jan 2023 12:13:21 +0100 Subject: [PATCH 3/3] Adapt error name to a less generic error name, but still more generic than explicitly telling the server is down (this commit message is longer than the actual changes in the files) --- .../org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt | 2 +- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt index ee52b113..b7b0d436 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/CommonFeedFragmentUtils.kt @@ -86,7 +86,7 @@ internal fun initAdapter( Gson().fromJson(s, org.pixeldroid.app.utils.api.objects.Error::class.java)?.error?.ifBlank { null } } catch (exception: Exception) { errorLayout.root.context.getString( - R.string.unknown_error, + R.string.unknown_error_in_error, it.error.localizedMessage.orEmpty() ) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8ed31929..ba9f8bbd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -123,7 +123,7 @@ For more info about Pixelfed, you can check here: https://pixelfed.org" Something went wrong while loading Could not get feed - Unknown error, check if server is down: %1$s + Unknown error, check if server is down: %1$s Share picture… Save to Gallery…