diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java index fd3629c0..cd6e70b0 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java @@ -227,14 +227,6 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt */ @Override public void onChanLoaderData(ChanThread result) { - Pin pin = watchManager.findPinByLoadable(loadable); - if (pin != null) { - if (pin.archived != result.archived) { - pin.archived = result.archived; - watchManager.updatePin(pin); - } - } - if (isWatching()) { chanLoader.setTimer(); } diff --git a/Clover/app/src/main/java/org/floens/chan/core/watch/PinWatcher.java b/Clover/app/src/main/java/org/floens/chan/core/watch/PinWatcher.java index 1b763d8e..d0a32074 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/watch/PinWatcher.java +++ b/Clover/app/src/main/java/org/floens/chan/core/watch/PinWatcher.java @@ -25,7 +25,6 @@ import org.floens.chan.core.model.ChanThread; import org.floens.chan.core.model.Pin; import org.floens.chan.core.model.Post; import org.floens.chan.core.pool.LoaderPool; -import org.floens.chan.utils.AndroidUtils; import org.floens.chan.utils.Logger; import java.util.ArrayList; @@ -119,12 +118,8 @@ public class PinWatcher implements ChanLoader.ChanLoaderCallback { Logger.e(TAG, "PinWatcher onError"); pin.isError = true; - AndroidUtils.runOnUiThread(new Runnable() { - @Override - public void run() { - Chan.getWatchManager().onPinsChanged(); - } - }); + pin.watching = false; + Chan.getWatchManager().pinWatcherUpdated(pin); } @Override @@ -192,11 +187,11 @@ public class PinWatcher implements ChanLoader.ChanLoaderCallback { pin.watchLastCount, pin.watchNewCount, wereNewPosts, pin.quoteLastCount, pin.quoteNewCount, wereNewQuotes)); } - AndroidUtils.runOnUiThread(new Runnable() { - @Override - public void run() { - Chan.getWatchManager().pinWatcherUpdated(pin); - } - }); + if (thread.archived || thread.closed) { + pin.archived = true; + pin.watching = false; + } + + Chan.getWatchManager().pinWatcherUpdated(pin); } }