diff --git a/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java b/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java index 2e63a7df..50f81e72 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java +++ b/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java @@ -25,6 +25,7 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.PowerManager; +import android.support.annotation.Nullable; import org.floens.chan.Chan; import org.floens.chan.core.database.DatabaseManager; @@ -161,12 +162,18 @@ public class WatchManager { updateState(); } - public boolean createPin(Loadable loadable, Post opPost) { + public boolean createPin(Loadable loadable) { + return createPin(loadable, null); + } + + public boolean createPin(Loadable loadable, @Nullable Post opPost) { Pin pin = new Pin(); pin.loadable = loadable; pin.loadable.title = PostHelper.getTitle(opPost, loadable); - PostImage image = opPost.image; - pin.thumbnailUrl = image == null ? "" : image.getThumbnailUrl().toString(); + if (opPost != null) { + PostImage image = opPost.image; + pin.thumbnailUrl = image == null ? "" : image.getThumbnailUrl().toString(); + } return createPin(pin); } 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 c40881ac..103c66cb 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 @@ -205,10 +205,18 @@ public class ReplyPresenter implements AuthenticationLayoutCallback, ImagePickDe @Override public void onPostComplete(HttpCall httpCall, ReplyResponse replyResponse) { if (replyResponse.posted) { - if (ChanSettings.postPinThread.get() && loadable.isThreadMode()) { - ChanThread thread = callback.getThread(); - if (thread != null) { - watchManager.createPin(loadable, thread.op); + if (ChanSettings.postPinThread.get()) { + if (loadable.isThreadMode()) { + ChanThread thread = callback.getThread(); + if (thread != null) { + watchManager.createPin(loadable, thread.op); + } + } else { + Loadable postedLoadable = databaseManager.getDatabaseLoadableManager() + .get(Loadable.forThread(loadable.site, loadable.board, + replyResponse.postNo)); + + watchManager.createPin(postedLoadable); } } diff --git a/Clover/app/src/main/java/org/floens/chan/core/site/sites/vichan/ViChanReplyHttpCall.java b/Clover/app/src/main/java/org/floens/chan/core/site/sites/vichan/ViChanReplyHttpCall.java index 955dd990..8fbcaa81 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/site/sites/vichan/ViChanReplyHttpCall.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/sites/vichan/ViChanReplyHttpCall.java @@ -37,6 +37,8 @@ import okhttp3.RequestBody; import okhttp3.Response; public class ViChanReplyHttpCall extends CommonReplyHttpCall { + private static final String TAG = "ViChanReplyHttpCall"; + private static final Pattern REQUIRE_AUTHENTICATION = Pattern.compile(".*\"captcha\": ?true.*"); private static final Pattern ERROR_MESSAGE = Pattern.compile(".*