From 38ec9086147dabb70c69bc53dac3003023c1a923 Mon Sep 17 00:00:00 2001 From: Floens Date: Wed, 14 Feb 2018 16:11:39 +0100 Subject: [PATCH] show what error caused a posting error --- .../chan/core/presenter/ReplyPresenter.java | 29 +++++++++++++++---- .../floens/chan/core/site/SiteActions.java | 2 +- .../chan/core/site/common/CommonSite.java | 2 +- .../chan/core/site/sites/chan4/Chan4.java | 2 +- Clover/app/src/main/res/values/strings.xml | 1 + 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ReplyPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ReplyPresenter.java index 109443e2..1d20e1de 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ReplyPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ReplyPresenter.java @@ -29,15 +29,16 @@ import org.floens.chan.core.model.orm.Board; import org.floens.chan.core.model.orm.Loadable; import org.floens.chan.core.model.orm.SavedReply; import org.floens.chan.core.settings.ChanSettings; -import org.floens.chan.core.site.SiteAuthentication; import org.floens.chan.core.site.Site; import org.floens.chan.core.site.SiteActions; +import org.floens.chan.core.site.SiteAuthentication; import org.floens.chan.core.site.http.HttpCall; import org.floens.chan.core.site.http.Reply; import org.floens.chan.core.site.http.ReplyResponse; import org.floens.chan.ui.captcha.AuthenticationLayoutCallback; import org.floens.chan.ui.captcha.AuthenticationLayoutInterface; import org.floens.chan.ui.helper.ImagePickDelegate; +import org.floens.chan.utils.Logger; import java.io.File; import java.nio.charset.Charset; @@ -46,6 +47,7 @@ import java.util.regex.Pattern; import javax.inject.Inject; +import static org.floens.chan.utils.AndroidUtils.getAppContext; import static org.floens.chan.utils.AndroidUtils.getReadableFileSize; import static org.floens.chan.utils.AndroidUtils.getRes; import static org.floens.chan.utils.AndroidUtils.getString; @@ -57,6 +59,7 @@ public class ReplyPresenter implements AuthenticationLayoutCallback, ImagePickDe LOADING } + private static final String TAG = "ReplyPresenter"; private static final Pattern QUOTE_PATTERN = Pattern.compile(">>\\d+"); private static final Charset UTF_8 = Charset.forName("UTF-8"); @@ -243,19 +246,33 @@ public class ReplyPresenter implements AuthenticationLayoutCallback, ImagePickDe } else if (replyResponse.requireAuthentication) { switchPage(Page.AUTHENTICATION, true); } else { - if (replyResponse.errorMessage == null) { - replyResponse.errorMessage = getString(R.string.reply_error); + String errorMessage = getString(R.string.reply_error); + if (replyResponse.errorMessage != null) { + errorMessage = getAppContext().getString( + R.string.reply_error_message, replyResponse.errorMessage); } + Logger.e(TAG, "onPostComplete error", errorMessage); switchPage(Page.INPUT, true); - callback.openMessage(true, false, replyResponse.errorMessage, true); + callback.openMessage(true, false, errorMessage, true); } } @Override - public void onPostError(HttpCall httpCall) { + public void onPostError(HttpCall httpCall, Exception exception) { + Logger.e(TAG, "onPostError", exception); + switchPage(Page.INPUT, true); - callback.openMessage(true, false, getString(R.string.reply_error), true); + + String errorMessage = getString(R.string.reply_error); + if (exception != null) { + String message = exception.getMessage(); + if (message != null) { + errorMessage = getAppContext().getString(R.string.reply_error_message, message); + } + } + + callback.openMessage(true, false, errorMessage, true); } @Override diff --git a/Clover/app/src/main/java/org/floens/chan/core/site/SiteActions.java b/Clover/app/src/main/java/org/floens/chan/core/site/SiteActions.java index 8306c9b6..a740ed05 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/site/SiteActions.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/SiteActions.java @@ -40,7 +40,7 @@ public interface SiteActions { void onPostComplete(HttpCall httpCall, ReplyResponse replyResponse); - void onPostError(HttpCall httpCall); + void onPostError(HttpCall httpCall, Exception exception); } boolean postRequiresAuthentication(); diff --git a/Clover/app/src/main/java/org/floens/chan/core/site/common/CommonSite.java b/Clover/app/src/main/java/org/floens/chan/core/site/common/CommonSite.java index 3a810501..c3357473 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/site/common/CommonSite.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/common/CommonSite.java @@ -476,7 +476,7 @@ public abstract class CommonSite extends SiteBase { @Override public void onHttpFail(HttpCall httpCall, Exception e) { - postListener.onPostError(httpCall); + postListener.onPostError(httpCall, e); } }); } diff --git a/Clover/app/src/main/java/org/floens/chan/core/site/sites/chan4/Chan4.java b/Clover/app/src/main/java/org/floens/chan/core/site/sites/chan4/Chan4.java index bbdd1dbf..03108107 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/site/sites/chan4/Chan4.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/sites/chan4/Chan4.java @@ -362,7 +362,7 @@ public class Chan4 extends SiteBase { @Override public void onHttpFail(CommonReplyHttpCall httpPost, Exception e) { - postListener.onPostError(httpPost); + postListener.onPostError(httpPost, e); } }); } diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index d54f98d2..f5976a9f 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -315,6 +315,7 @@ Re-enable this permission in the app settings if you permanently disabled it."No preview Submit Error posting + Error posting: %s Post successful Type the text >