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
>