From 72fb4affa94f12e9e326e6a507253d3dfd5f3f1a Mon Sep 17 00:00:00 2001
From: Cameron Merkel <44722506+cguy7777@users.noreply.github.com>
Date: Fri, 7 Jul 2023 00:22:56 -0500
Subject: [PATCH] Add more specific error messages for blocked, quarantined,
and premium-only subreddits.
---
.../quantumbadger/redreader/common/General.kt | 41 ++++++++++++-------
src/main/res/values/strings.xml | 8 ++++
2 files changed, 35 insertions(+), 14 deletions(-)
diff --git a/src/main/java/org/quantumbadger/redreader/common/General.kt b/src/main/java/org/quantumbadger/redreader/common/General.kt
index 8bb7fc34e..495c63342 100644
--- a/src/main/java/org/quantumbadger/redreader/common/General.kt
+++ b/src/main/java/org/quantumbadger/redreader/common/General.kt
@@ -274,7 +274,7 @@ object General {
CacheRequest.REQUEST_FAILURE_REQUEST -> if (status != null) {
when (status) {
- 400, 401, 403 -> {
+ 400, 401, 403, 404 -> {
val uri = uriFromString(url)
var isImgurApiRequest = false
var isRedditRequest = false
@@ -294,29 +294,42 @@ object General {
val responseJson = response.flatMap { it.toJson() }
- if (responseJson.asNullable()?.asObject()?.getString("reason") == "private") {
- title = R.string.error_403_private_sr_title
- message = R.string.error_403_private_sr_message
-
- } else {
- title = R.string.error_403_title
- message = R.string.error_403_message
+ when(responseJson.asNullable()?.asObject()?.getString("reason")) {
+ "private" -> {
+ title = R.string.error_403_private_sr_title
+ message = R.string.error_403_private_sr_message
+ } "quarantined" -> {
+ title = R.string.error_403_quarantined_sr_title
+ message = R.string.error_403_quarantined_sr_message
+ } "gold_only" -> {
+ title = R.string.error_403_premiumonly_sr_title
+ message = R.string.error_403_premiumonly_sr_message
+ } "banned" -> {
+ title = R.string.error_404_banned_sr_title
+ message = R.string.error_404_banned_sr_message
+ } else -> {
+ if(status == 404) {
+ title = R.string.error_404_title
+ message = R.string.error_404_message
+ } else {
+ title = R.string.error_403_title
+ message = R.string.error_403_message
+ }
+ }
}
} else if (status == 400 && isImgurApiRequest) {
title = R.string.error_imgur_400_title
message = R.string.error_imgur_400_message
- } else {
+ } else if (status == 404) {
+ title = R.string.error_404_title
+ message = R.string.error_404_message
+ } else {
title = R.string.error_403_title_nonreddit
message = R.string.error_403_message_nonreddit
}
}
- 404 -> {
- title = R.string.error_404_title
- message = R.string.error_404_message
- }
-
429 -> {
title = R.string.error_http_429_title
message = R.string.error_http_429_message
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index f71988056..80baec0cb 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -1758,4 +1758,12 @@
Has self text.
+
+ Quarantined subreddit
+ This subreddit has been quarantined. To access it, you must opt-in on reddit.com.
+ Premium-only subreddit
+ This subreddit only allows Reddit Premium members to visit.
+ Banned subreddit
+ This subreddit has been banned.
+