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.
+