GithubHelp home page GithubHelp logo

k1rakishou / kuroba-experimental Goto Github PK

View Code? Open in Web Editor NEW
626.0 13.0 37.0 105 MB

Free and open source image board browser

License: GNU General Public License v3.0

HTML 4.05% Java 12.11% Kotlin 83.41% Makefile 0.03% C++ 0.23% C 0.02% Shell 0.17%
kotlin-coroutines room-persistence-library java kotlin rxjava2 dagger2 coil jetpack-compose

kuroba-experimental's Introduction

Kuroba Experimental

Latest beta version

All beta versions

KurobaEx is a fast Android app for browsing imageboards, such as 4chan and 8chan. It's a fork of Kuroba. This fork provides lots of new features:

  • New technological stack (Kotlin, RxJava/Coroutines, Room etc).

  • On demand content loading (includes prefetching, youtube videos titles and durations fetching, inlined files size fetching etc).

  • Third-party archives support.

  • New thread navigation (tabs).

  • New in-app navigation (bottom nav bar).

  • New bookmarks (they were fully rewritten from scratch, now use way less memory, don't use wakelocks, show separate notifications per thread (and notifications can be swiped away).

  • Edge-to-edge theme support.

  • New database.

  • 4chan global search support.

  • Fully dynamic themes with Android Q Day/Night mode support.

  • Per-site proxies.

  • Ability to attach multiple media files to reply, attach media files that was shared by external apps (even by some keyboards), attach remote media files by URL, etc.

  • New image downloader. Allows downloading images while the app is in background, retrying failed to download images, resolving duplicates, etc.

  • New posting. Posting code was moved into a foreground service which now allows stuff like using automatic captcha solvers (2captcha API) seamlessly or queueing multiple replies in different threads (only one reply per thread).

  • New Media Viewer. It was rewritten from scratch and now lives in a separate activity. It now also supports stuff like viewing links to media files shared into the app.

  • Thread downloader with ability to export threads as HTML pages with all downloaded media.

  • Composite catalogs (ability to combine multiple boards of any available sites (except archives) together into a single catalog).

  • Mpv video player (downloadable).

  • Bookmark groups with ability to setup regex matchers to automatically move newly created bookmarks into them.

  • Automatic captcha solver for 4chan captcha (See https://github.com/K1rakishou/4chanCaptchaSolver)

  • Lots of other tiny improvements.

Screenshots:

Currently supported sites
  • 4Chan
  • Dvach
  • 8Kun (thanks to @jirn073-76)
  • 420Chan (thanks to @Lolzen)
  • Lainchan
  • Sushichan
  • Wired-7 (thanks to @Wired-7)
  • 370chan.info (thanks to @alcharkov)
  • Endchan
  • Kohlchan
  • Vhschan (thanks to @MrPurple666)
  • YesHoney (thanks to @SomeGuy719)
Currently supported 4chan archives
  • ArchivedMoe
  • ArchiveOfSins
  • B4k
  • DesuArchive
  • Fireden
  • 4Plebs
  • Nyafuu
  • TokyoChronos
  • Warosu
  • Wakarimasen.moe
  • RozenArcana

License

Kuroba is GPLv3, licenses of the used libraries.

kuroba-experimental's People

Contributors

absurd-shaman avatar adamantcheese avatar alcharkov avatar alexandrius avatar andyklimczak avatar astridchan avatar dashchanon avatar ekisu avatar esenzet avatar floens avatar gergesh avatar hual avatar k1rakishou avatar kosbum avatar lazpeng avatar lolzen avatar mezpahlan avatar mrpurple666 avatar nopjmp avatar rainfallmelonflysong avatar ressidell avatar rgba0 avatar scypress avatar sietsem avatar someguy719 avatar tacothedank avatar testman42 avatar vjandrea avatar wired-7 avatar yuiopmbv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kuroba-experimental's Issues

Crash report "java.lang.IllegalArgumentException: Bad threadNo: 0"

UUID: df1ad78dada4be97a1fe74dc5c601262
Build flavor: beta
Version name: v0.1.0
OS info: Android 9, sdk version: 28
Report description: No title
Logs:

=== LOGS(2020-08-29 13:08:33 UTC) ===
E/KurobaEx-beta | APP: Unhandled exception
E/KurobaEx-beta | APP: java.lang.IllegalArgumentException: Bad threadNo: 0
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.model.data.descriptor.PostDescriptor$Companion.create(PostDescriptor.kt:108)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.model.data.descriptor.PostDescriptor$Companion.create$default(PostDescriptor.kt:107)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.model.data.descriptor.PostDescriptor.create(Unknown Source:11)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.site.http.ReplyResponse.getPostDescriptorOrNull(ReplyResponse.java:55)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostedSuccessfully(ReplyPresenter.kt:552)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostComplete(ReplyPresenter.kt:499)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invokeSuspend(ReplyPresenter.kt:483)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invoke(Unknown Source:10)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:160)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1.emit(Collect.kt:133)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catchImpl$$inlined$collect$1.emit(Collect.kt:134)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.site.sites.dvach.Dvach$setup$3$post$$inlined$map$1$2.emit(Collect.kt:145)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:58)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Unknown Source:11)
E/KurobaEx-beta | APP: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | APP: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | APP: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | APP: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | APP: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | APP: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | APP: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: Called from unhandled exception handler.
E/KurobaEx-beta | UNCAUGHT: java.lang.IllegalArgumentException: Bad threadNo: 0
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.model.data.descriptor.PostDescriptor$Companion.create(PostDescriptor.kt:108)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.model.data.descriptor.PostDescriptor$Companion.create$default(PostDescriptor.kt:107)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.model.data.descriptor.PostDescriptor.create(Unknown Source:11)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.site.http.ReplyResponse.getPostDescriptorOrNull(ReplyResponse.java:55)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostedSuccessfully(ReplyPresenter.kt:552)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostComplete(ReplyPresenter.kt:499)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invokeSuspend(ReplyPresenter.kt:483)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invoke(Unknown Source:10)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:160)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1.emit(Collect.kt:133)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catchImpl$$inlined$collect$1.emit(Collect.kt:134)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.site.sites.dvach.Dvach$setup$3$post$$inlined$map$1$2.emit(Collect.kt:145)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:58)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Unknown Source:11)
E/KurobaEx-beta | UNCAUGHT: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 28
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.0
E/KurobaEx-beta | UNCAUGHT: Development Build: Release


=== SETTINGS ===
Prefetching enabled: false
Hi-res thumbnails enabled: false
Youtube titles and durations parsing enabled: true
Concurrent file loading chunks count: 2
WEBM streaming enabled: false
Saved files base dir info: Java API location: "/storage/emulated/0/KurobaEx-beta/files", SAF location: "", active: Java API
Phone layout mode: AUTO
OkHttp IPv6 support enabled: false
OkHttp HTTP/2 support enabled: true

Silent crash "android.database.sqlite.SQLiteException: too many SQL variables (code 1 SQLITE_ERROR[1]): , while compiling: SELECT"

UUID: 5f2f724e67e3afd6fbdf0d169459a0e2
Build flavor: dev
Version name: v0.1.1
OS info: Android 10, sdk version: 29
Report description: huuh
Logs:

D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() called, newView==null: false, previousView==null: false, listener==null: true, animationStyle=PUSH
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() previousAnimation onAnimationEndInternal(end==true: true), animationsCount=2, listenerCalled=false
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() newAnimation onAnimationEndInternal(end==true: true), animationsCount=1, listenerCalled=false
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() newAnimation onAnimationEnded is null
D/KurobaEx-dev | Chan: vvv App went background vvv
D/KurobaEx-dev | StartActivity: stop
D/KurobaEx-dev | ChanThreadLoader: Cleared timer
D/KurobaEx-dev | BookmarkWatcherController: Calling onBookmarksChanged() app visibility changed (applicationVisibility = Background)
D/KurobaEx-dev | BookmarksManager: persistBookmarks blocking called
D/KurobaEx-dev |  ThreadBookmarkLocalSource: [arch_disk_io_0 @coroutine#154156]: persist(5)
D/KurobaEx-dev |  ThreadBookmarkLocalSource: [arch_disk_io_0 @coroutine#154156]: persist() inserted/updated 0 bookmarks, deleted 0 bookmarks
D/KurobaEx-dev |  BookmarksRepository: [arch_disk_io_0 @coroutine#154156]: persist(5) took 1.59ms
D/KurobaEx-dev | BookmarksManager: persistBookmarks blocking finished
D/KurobaEx-dev | HistoryNavigationManager: persistNavigationStack blocking called
D/KurobaEx-dev |  HistoryNavigationRepository: [arch_disk_io_1 @coroutine#154159]: persist(33) took 11.7ms
D/KurobaEx-dev | HistoryNavigationManager: persistNavigationStack blocking finished
D/KurobaEx-dev | BookmarkWatcherController: Switching to background watcher, replaceCurrent=true
D/KurobaEx-dev | BookmarkWatcherController: cancelForegroundBookmarkWatching() called
D/KurobaEx-dev | BookmarkWatcherController: startBackgroundBookmarkWatchingWorkIfNeeded() called
D/KurobaEx-dev | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=false, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-dev | BookmarkWatcherDelegate: (isUpdatingCurrentlyOpenedThread=false, isFirstFetch=false) Skipping TD{4chan/a/208035507} because it is a currently opened thread
D/KurobaEx-dev | BookmarkWatcherDelegate: (isUpdatingCurrentlyOpenedThread=false), Skipping TD{4chan/vg/305330780} because it is not an active bookmark
D/KurobaEx-dev | LastPageNotificationsHelper: showOrUpdateNotifications(3)
D/KurobaEx-dev | LastPageNotificationsHelper: No threads to notify about last page
D/KurobaEx-dev | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(3)
D/KurobaEx-dev | FetchThreadBookmarkInfoUseCase: fetchThreadBookmarkInfo() threadJsonEndpoint = https://2ch.hk/mobi/res/1947959.json
D/KurobaEx-dev | FetchThreadBookmarkInfoUseCase: fetchThreadBookmarkInfo() threadJsonEndpoint = https://2ch.hk/mobi/res/1939927.json
D/KurobaEx-dev | FetchThreadBookmarkInfoUseCase: fetchThreadBookmarkInfo() threadJsonEndpoint = https://2ch.hk/mobi/res/1952535.json
D/KurobaEx-dev | BookmarkWatcherDelegate: FetchResult.Success: descriptor=TD{2ch.hk/mobi/1947959}, originalPost=OriginalPost(postNo=1947959, closed=false, archived=false, isBumpLimit=false, isImageLimit=false, stickyThread=NotSticky)
D/KurobaEx-dev | BookmarkWatcherDelegate: FetchResult.Success: descriptor=TD{2ch.hk/mobi/1939927}, originalPost=OriginalPost(postNo=1939927, closed=false, archived=false, isBumpLimit=false, isImageLimit=false, stickyThread=NotSticky)
D/KurobaEx-dev | BookmarkWatcherDelegate: FetchResult.Success: descriptor=TD{2ch.hk/mobi/1952535}, originalPost=OriginalPost(postNo=1952535, closed=false, archived=false, isBumpLimit=false, isImageLimit=false, stickyThread=NotSticky)
D/KurobaEx-dev | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=3, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=3
D/KurobaEx-dev | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=4
D/KurobaEx-dev | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 282ms
D/KurobaEx-dev | ReplyNotificationsHelper: showNotificationForReplies(0)
D/KurobaEx-dev | Chan: ^^^ App went foreground ^^^
D/KurobaEx-dev | StartActivity: start
D/KurobaEx-dev | ChanThreadLoader: Requested thread /a/, 208035507
D/KurobaEx-dev | BookmarkWatcherController: Calling onBookmarksChanged() app visibility changed (applicationVisibility = Foreground)
D/KurobaEx-dev | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=true
D/KurobaEx-dev | BookmarkWatcherDelegate: (isUpdatingCurrentlyOpenedThread=true) Skipping TD{2ch.hk/mobi/1947959} because it is not a currently opened thread
D/KurobaEx-dev | BookmarkWatcherDelegate: (isUpdatingCurrentlyOpenedThread=true) Skipping TD{2ch.hk/mobi/1939927} because it is not a currently opened thread
D/KurobaEx-dev | BookmarkWatcherDelegate: (isUpdatingCurrentlyOpenedThread=true) Skipping TD{4chan/vg/305330780} because it is not a currently opened thread
D/KurobaEx-dev | BookmarkWatcherDelegate: (isUpdatingCurrentlyOpenedThread=true) Skipping TD{2ch.hk/mobi/1952535} because it is not a currently opened thread
D/KurobaEx-dev | LastPageNotificationsHelper: showOrUpdateNotifications(1)
D/KurobaEx-dev | LastPageNotificationsHelper: Skipping notification for currently opened thread (TD{4chan/a/208035507})
D/KurobaEx-dev | LastPageNotificationsHelper: No threads to notify about last page
D/KurobaEx-dev | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(1)
D/KurobaEx-dev | FetchThreadBookmarkInfoUseCase: fetchThreadBookmarkInfo() threadJsonEndpoint = https://a.4cdn.org/a/thread/208035507.json
D/KurobaEx-dev | ArchivesManager: getArchiveDescriptor(threadDescriptor=TD{4chan/a/208035507}, forced=false)
D/KurobaEx-dev | ArchivesManager: getBestPossibleArchiveOrNull(threadDescriptor=TD{4chan/a/208035507}, suitableArchivesSize=1)
D/KurobaEx-dev | ArchivesManager: sortedFetchHistoryList[0]: archiveDescriptor=ArchiveDescriptor(archiveDatabaseId='9', name='Archived.Moe', domain='archived.moe'), score=5
D/KurobaEx-dev | BookmarkWatcherDelegate: FetchResult.Success: descriptor=TD{4chan/a/208035507}, originalPost=OriginalPost(postNo=208035507, closed=false, archived=false, isBumpLimit=false, isImageLimit=false, stickyThread=StickyUnlimited)
D/KurobaEx-dev | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=1, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=1
D/KurobaEx-dev | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=4
D/KurobaEx-dev | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 189ms
D/KurobaEx-dev | ReplyNotificationsHelper: bookmarksManager.listenForBookmarksChanges(), bookmarkChange=BookmarksUpdated
D/KurobaEx-dev | GetPostsFromArchiveUseCase: Got archive descriptor: ArchiveDescriptor(archiveDatabaseId='9', name='Archived.Moe', domain='archived.moe')
D/KurobaEx-dev |  ArchivesRemoteSource: [DefaultDispatcher-worker-13 @ChanThreadLoaderCoordinator#156802]: fetchThreadFromNetwork(https://archived.moe/_/api/chan/thread/?board=a&num=208035507, 208035507)
D/KurobaEx-dev | BookmarkWatcherController: Switching to foreground watcher
D/KurobaEx-dev | BookmarkWatcherController: cancelBackgroundBookmarkWatching() called
D/KurobaEx-dev | BookmarkWatcherController: bookmarkForegroundWatcher.startWatching() called
D/KurobaEx-dev | BookmarkForegroundWatcher: working == true, calling doWorkAndWaitUntilNext()
D/KurobaEx-dev | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-dev | BookmarkWatcherDelegate: (isUpdatingCurrentlyOpenedThread=false, isFirstFetch=false) Skipping TD{4chan/a/208035507} because it is a currently opened thread
D/KurobaEx-dev | BookmarkWatcherDelegate: (isUpdatingCurrentlyOpenedThread=false), Skipping TD{4chan/vg/305330780} because it is not an active bookmark
D/KurobaEx-dev | LastPageNotificationsHelper: showOrUpdateNotifications(3)
D/KurobaEx-dev | LastPageNotificationsHelper: No threads to notify about last page
D/KurobaEx-dev | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(3)
D/KurobaEx-dev | FetchThreadBookmarkInfoUseCase: fetchThreadBookmarkInfo() threadJsonEndpoint = https://2ch.hk/mobi/res/1952535.json
D/KurobaEx-dev | FetchThreadBookmarkInfoUseCase: fetchThreadBookmarkInfo() threadJsonEndpoint = https://2ch.hk/mobi/res/1947959.json
D/KurobaEx-dev | FetchThreadBookmarkInfoUseCase: fetchThreadBookmarkInfo() threadJsonEndpoint = https://2ch.hk/mobi/res/1939927.json
D/KurobaEx-dev | BookmarkWatcherDelegate: FetchResult.Success: descriptor=TD{2ch.hk/mobi/1947959}, originalPost=OriginalPost(postNo=1947959, closed=false, archived=false, isBumpLimit=false, isImageLimit=false, stickyThread=NotSticky)
D/KurobaEx-dev | BookmarkWatcherDelegate: FetchResult.Success: descriptor=TD{2ch.hk/mobi/1939927}, originalPost=OriginalPost(postNo=1939927, closed=false, archived=false, isBumpLimit=false, isImageLimit=false, stickyThread=NotSticky)
D/KurobaEx-dev | BookmarkWatcherDelegate: FetchResult.Success: descriptor=TD{2ch.hk/mobi/1952535}, originalPost=OriginalPost(postNo=1952535, closed=false, archived=false, isBumpLimit=false, isImageLimit=false, stickyThread=NotSticky)
D/KurobaEx-dev | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=3, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=3
D/KurobaEx-dev | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=4
D/KurobaEx-dev | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 145ms
D/KurobaEx-dev | BookmarkForegroundWatcher: bookmarkWatcherDelegate.doWork() completed, waiting for 30000ms + 0ms (activeBookmarksCount: 4, total wait time: 30000ms)
D/KurobaEx-dev | BookmarksManager: persistBookmarks async called
D/KurobaEx-dev |  ThreadBookmarkLocalSource: [arch_disk_io_0 @coroutine#156816]: persist(5)
D/KurobaEx-dev |  ThreadBookmarkLocalSource: [arch_disk_io_0 @coroutine#156816]: persist() inserted/updated 0 replies
D/KurobaEx-dev |  ThreadBookmarkLocalSource: [arch_disk_io_0 @coroutine#156816]: persist() inserted/updated 1 bookmarks, deleted 0 bookmarks
D/KurobaEx-dev |  BookmarksRepository: [arch_disk_io_0 @coroutine#156816]: persist(5) took 3.07ms
D/KurobaEx-dev | BookmarksManager: persistBookmarks async finished
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() called, newView==null: false, previousView==null: false, listener==null: true, animationStyle=POP
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() previousAnimation onAnimationEndInternal(end==true: true), animationsCount=2, listenerCalled=false
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() newAnimation onAnimationEndInternal(end==true: true), animationsCount=1, listenerCalled=false
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() newAnimation onAnimationEnded is null
D/KurobaEx-dev | ReplyNotificationsHelper: showNotificationForReplies(0)
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() called, newView==null: false, previousView==null: false, listener==null: true, animationStyle=PUSH
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() previousAnimation onAnimationEndInternal(end==true: true), animationsCount=2, listenerCalled=false
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() newAnimation onAnimationEndInternal(end==true: true), animationsCount=1, listenerCalled=false
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() newAnimation onAnimationEnded is null
D/KurobaEx-dev | GetPostsFromArchiveUseCase: Successfully fetched 2630 posts from archive ArchiveDescriptor(archiveDatabaseId='9', name='Archived.Moe', domain='archived.moe')
E/KurobaEx-dev | NormalPostLoader: Error while trying to get posts from archive
E/KurobaEx-dev | NormalPostLoader: android.database.sqlite.SQLiteException: too many SQL variables (code 1 SQLITE_ERROR[1]): , while compiling: SELECT 
E/KurobaEx-dev | NormalPostLoader:         	  cp_image.post_image_id as post_image_id,
E/KurobaEx-dev | NormalPostLoader:         	  cp_id.post_id as post_id, 
E/KurobaEx-dev | NormalPostLoader:         	  cp_id.post_no as post_no, 
E/KurobaEx-dev | NormalPostLoader:         	  cp_id.owner_archive_id as archive_id
E/KurobaEx-dev | NormalPostLoader:         FROM chan_post_id cp_id
E/KurobaEx-dev | NormalPostLoader:         LEFT OUTER JOIN chan_post_image cp_image
E/KurobaEx-dev | NormalPostLoader:             ON cp_image.owner_post_id = cp_id.post_id
E/KurobaEx-dev | NormalPostLoader:         WHERE 
E/KurobaEx-dev | NormalPostLoader:             cp_id.owner_thread_id = ?
E/KurobaEx-dev | NormalPostLoader:         AND
E/KurobaEx-dev | NormalPostLoader:             cp_id.owner_archive_id IN (?,?)
E/KurobaEx-dev | NormalPostLoader:         AND 
E/KurobaEx-dev | NormalPostLoader:             cp_id.post_no IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?
E/KurobaEx-dev | NormalPostLoader: ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1372)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:811)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:590)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:62)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1967)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1942)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.sqlite.db.framework.FrameworkSQLiteDatabase.query(FrameworkSQLiteDatabase.java:161)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.RoomDatabase.query(RoomDatabase.java:328)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.util.DBUtil.query(DBUtil.java:83)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.dao.ChanPostDao_Impl$16.call(ChanPostDao_Impl.java:514)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.dao.ChanPostDao_Impl$16.call(ChanPostDao_Impl.java:511)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.CoroutinesRoom$Companion.execute(CoroutinesRoom.kt:46)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.CoroutinesRoom.execute(Unknown Source:2)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.dao.ChanPostDao_Impl.selectManyGrouped(ChanPostDao_Impl.java:511)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.dao.ChanPostDao.selectMany(ChanPostDao.kt:77)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.source.local.ChanPostLocalSource.getThreadPosts(ChanPostLocalSource.kt:394)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.repository.ChanPostRepository$getThreadPosts$3$1.invokeSuspend(ChanPostRepository.kt:236)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.repository.ChanPostRepository$getThreadPosts$3$1.invoke(Unknown Source:10)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.RoomDatabaseKt$withTransaction$2.invokeSuspend(RoomDatabase.kt:58)
E/KurobaEx-dev | NormalPostLoader: 	at ๏ฟฝ๏ฟฝ๏ฟฝ(Coroutine boundary.๏ฟฝ(๏ฟฝ)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.RoomDatabaseKt.withTransaction(RoomDatabase.kt:51)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.repository.AbstractRepository.tryWithTransaction(AbstractRepository.kt:16)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.repository.ChanPostRepository$getThreadPosts$3.invokeSuspend(ChanPostRepository.kt:226)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.common.KotlinExtensionsKt$myAsync$2$1.invokeSuspend(KotlinExtensions.kt:73)
E/KurobaEx-dev | NormalPostLoader: Caused by: android.database.sqlite.SQLiteException: too many SQL variables (code 1 SQLITE_ERROR[1]): , while compiling: SELECT 
E/KurobaEx-dev | NormalPostLoader:         	  cp_image.post_image_id as post_image_id,
E/KurobaEx-dev | NormalPostLoader:         	  cp_id.post_id as post_id, 
E/KurobaEx-dev | NormalPostLoader:         	  cp_id.post_no as post_no, 
E/KurobaEx-dev | NormalPostLoader:         	  cp_id.owner_archive_id as archive_id
E/KurobaEx-dev | NormalPostLoader:         FROM chan_post_id cp_id
E/KurobaEx-dev | NormalPostLoader:         LEFT OUTER JOIN chan_post_image cp_image
E/KurobaEx-dev | NormalPostLoader:             ON cp_image.owner_post_id = cp_id.post_id
E/KurobaEx-dev | NormalPostLoader:         WHERE 
E/KurobaEx-dev | NormalPostLoader:             cp_id.owner_thread_id = ?
E/KurobaEx-dev | NormalPostLoader:         AND
E/KurobaEx-dev | NormalPostLoader:             cp_id.owner_archive_id IN (?,?)
E/KurobaEx-dev | NormalPostLoader:         AND 
E/KurobaEx-dev | NormalPostLoader:             cp_id.post_no IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?
E/KurobaEx-dev | NormalPostLoader: ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1372)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:811)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:590)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:62)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1967)
E/KurobaEx-dev | NormalPostLoader: 	at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1942)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.sqlite.db.framework.FrameworkSQLiteDatabase.query(FrameworkSQLiteDatabase.java:161)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.RoomDatabase.query(RoomDatabase.java:328)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.util.DBUtil.query(DBUtil.java:83)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.dao.ChanPostDao_Impl$16.call(ChanPostDao_Impl.java:514)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.dao.ChanPostDao_Impl$16.call(ChanPostDao_Impl.java:511)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.CoroutinesRoom$Companion.execute(CoroutinesRoom.kt:46)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.CoroutinesRoom.execute(Unknown Source:2)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.dao.ChanPostDao_Impl.selectManyGrouped(ChanPostDao_Impl.java:511)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.dao.ChanPostDao.selectMany(ChanPostDao.kt:77)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.source.local.ChanPostLocalSource.getThreadPosts(ChanPostLocalSource.kt:394)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.repository.ChanPostRepository$getThreadPosts$3$1.invokeSuspend(ChanPostRepository.kt:236)
E/KurobaEx-dev | NormalPostLoader: 	at com.github.adamantcheese.model.repository.ChanPostRepository$getThreadPosts$3$1.invoke(Unknown Source:10)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.RoomDatabaseKt$withTransaction$2.invokeSuspend(RoomDatabase.kt:58)
E/KurobaEx-dev | NormalPostLoader: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-dev | NormalPostLoader: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-dev | NormalPostLoader: 	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
E/KurobaEx-dev | NormalPostLoader: 	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:84)
E/KurobaEx-dev | NormalPostLoader: 	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
E/KurobaEx-dev | NormalPostLoader: 	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
E/KurobaEx-dev | NormalPostLoader: 	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
E/KurobaEx-dev | NormalPostLoader: 	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.RoomDatabaseKt$acquireTransactionThread$$inlined$suspendCancellableCoroutine$lambda$2.run(RoomDatabase.kt:121)
E/KurobaEx-dev | NormalPostLoader: 	at androidx.room.TransactionExecutor$1.run(TransactionExecutor.java:45)
E/KurobaEx-dev | NormalPostLoader: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/KurobaEx-dev | NormalPostLoader: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/KurobaEx-dev | NormalPostLoader: 	at java.lang.Thread.run(Thread.java:919)
D/KurobaEx-dev | ParsePostsUseCase: parseNewPostsPosts(chanDescriptor=TD{4chan/a/208035507}, postsToParseSize=2619, maxCount=2147483647)
D/KurobaEx-dev | StoreNewPostsUseCase: storePosts(postsCount=2619, isCatalog=false)
D/KurobaEx-dev |  ChanPostRepository: [DefaultDispatcher-worker-1 @ChanThreadLoaderCoordinator#154172]: getThreadPosts(descriptor=TD{4chan/a/208035507}, archiveIds=[9, 0], maxCount=2147483647)
D/KurobaEx-dev | NormalPostLoader: ChanReaderRequest.readJson() stats: url = https://a.4cdn.org/a/thread/208035507.json.
D/KurobaEx-dev | NormalPostLoader: Store new posts took 441ms (stored 2618 posts).
D/KurobaEx-dev | NormalPostLoader: Reload posts took 187ms, (reloaded 2621 posts, from cache: 0).
D/KurobaEx-dev | NormalPostLoader: Parse posts took = 616ms, (parsed 2619 posts).
D/KurobaEx-dev | NormalPostLoader: Archive fetch took 5.60s, (fetched 0 deleted posts).
D/KurobaEx-dev | NormalPostLoader: Total in-memory cached posts count = (0/26214).
D/KurobaEx-dev | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-dev | ChanThreadLoader: Scheduled reload in 15s
D/KurobaEx-dev | ImageLoaderV2: loadFromNetwork(url=https://i.4cdn.org/a/1598871268387s.jpg, width=213, height=213)
D/KurobaEx-dev |  ChanThreadViewableInfoLocalSource: [arch_disk_io_2 @coroutine#159472]: Updating ChanThreadViewableInfo for TD{4chan/a/208035507}
D/KurobaEx-dev | BookmarksManager: delayedBookmarksChanged(BookmarksUpdated)
D/KurobaEx-dev | ReplyNotificationsHelper: bookmarksManager.listenForBookmarksChanges(), bookmarkChange=BookmarksUpdated
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() called, newView==null: false, previousView==null: false, listener==null: true, animationStyle=POP
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() previousAnimation onAnimationEndInternal(end==true: true), animationsCount=2, listenerCalled=false
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() newAnimation onAnimationEndInternal(end==true: true), animationsCount=1, listenerCalled=false
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() newAnimation onAnimationEnded is null
D/KurobaEx-dev | BookmarksManager: persistBookmarks async called
D/KurobaEx-dev | ReplyNotificationsHelper: showNotificationForReplies(0)
D/KurobaEx-dev |  ThreadBookmarkLocalSource: [arch_disk_io_3 @coroutine#159476]: persist(5)
D/KurobaEx-dev |  ThreadBookmarkLocalSource: [arch_disk_io_3 @coroutine#159476]: persist() inserted/updated 0 replies
D/KurobaEx-dev |  ThreadBookmarkLocalSource: [arch_disk_io_3 @coroutine#159476]: persist() inserted/updated 1 bookmarks, deleted 0 bookmarks
D/KurobaEx-dev |  BookmarksRepository: [arch_disk_io_3 @coroutine#159476]: persist(5) took 5.12ms
D/KurobaEx-dev | BookmarksManager: persistBookmarks async finished
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() called, newView==null: false, previousView==null: false, listener==null: true, animationStyle=PUSH
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() previousAnimation onAnimationEndInternal(end==true: true), animationsCount=2, listenerCalled=false
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() newAnimation onAnimationEndInternal(end==true: true), animationsCount=1, listenerCalled=false
D/KurobaEx-dev | ToolbarContainer: setPushPopAnimation() newAnimation onAnimationEnded is null
D/KurobaEx-dev | AndroidUtils: Build Signature: DC5195CC40E42B95267D500B6E93E46EC51028C67BDD3D09BBB9C208BF20C8FE
D/KurobaEx-dev | AndroidUtils: Build Signature: DC5195CC40E42B95267D500B6E93E46EC51028C67BDD3D09BBB9C208BF20C8FE
D/KurobaEx-dev | AndroidUtils: waitForLayout requested a re-layout by returning false
D/KurobaEx-dev | AndroidUtils: Build Signature: DC5195CC40E42B95267D500B6E93E46EC51028C67BDD3D09BBB9C208BF20C8FE
D/KurobaEx-dev | AndroidUtils: Build Signature: DC5195CC40E42B95267D500B6E93E46EC51028C67BDD3D09BBB9C208BF20C8FE

Crash report " android.os.NetworkOnMainThreadException"

Sushichan silicon
UUID: 24c4828d0d23856add21dd7460a8caed
Build flavor: beta
Version name: v0.1.0
OS info: Android 10, sdk version: 29
Report description: ร๏ฟฝรยต รยพร‘โ€šรยฟร‘โ‚ฌรยฐรยฒรยปร‘๏ฟฝรยตร‘โ€š รยฑรยปร‘๏ฟฝร‘โ€šร‘โ€šร‘โ€šร‘โ€šร‘โ€šร‘โ€š
Logs:

E/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Error while trying to download, class = CancellationException, message = CancellationException for request with url = https://sushigirl.us/silicon/src/1599067084XXX.jpg, state = Canceled
E/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Error while trying to download, class = CancellationException, message = CancellationException for request with url = https://sushigirl.us/silicon/src/1599067084XXX.jpg, state = Canceled
E/KurobaEx-beta | ReplyPresenter: onPostError
E/KurobaEx-beta | ReplyPresenter: android.os.NetworkOnMainThreadException
E/KurobaEx-beta | ReplyPresenter: 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1565)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.InetAddress.getAllByName(InetAddress.java:1152)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.net.DnsSelector.lookup(DnsSelector.java:25)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:164)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:129)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanAntispam.get(VichanAntispam.java:81)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanActions.prepare$suspendImpl(VichanActions.kt:97)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanActions.prepare(Unknown Source:0)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.CommonSite$CommonActions$post$2.invokeSuspend(CommonSite.kt:411)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.CommonSite$CommonActions$post$2.invoke(Unknown Source:10)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.SafeFlow.collectSafely(Builders.kt:60)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.AbstractFlow.collect(Flow.kt:210)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt.catchImpl(Errors.kt:230)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt.catchImpl(Unknown Source:1)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:113)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1.invokeSuspend(ReplyPresenter.kt:810)
E/KurobaEx-beta | ReplyPresenter: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Handler.handleCallback(Handler.java:888)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Looper.loop(Looper.java:213)
E/KurobaEx-beta | ReplyPresenter: 	at android.app.ActivityThread.main(ActivityThread.java:8178)
E/KurobaEx-beta | ReplyPresenter: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | ReplyPresenter: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/KurobaEx-beta | ReplyPresenter: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
E/KurobaEx-beta | ReplyPresenter: onPostError
E/KurobaEx-beta | ReplyPresenter: android.os.NetworkOnMainThreadException
E/KurobaEx-beta | ReplyPresenter: 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1565)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.InetAddress.getAllByName(InetAddress.java:1152)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.net.DnsSelector.lookup(DnsSelector.java:25)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:164)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:129)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanAntispam.get(VichanAntispam.java:81)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanActions.prepare$suspendImpl(VichanActions.kt:97)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanActions.prepare(Unknown Source:0)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.CommonSite$CommonActions$post$2.invokeSuspend(CommonSite.kt:411)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.CommonSite$CommonActions$post$2.invoke(Unknown Source:10)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.SafeFlow.collectSafely(Builders.kt:60)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.AbstractFlow.collect(Flow.kt:210)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt.catchImpl(Errors.kt:230)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt.catchImpl(Unknown Source:1)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:113)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1.invokeSuspend(ReplyPresenter.kt:810)
E/KurobaEx-beta | ReplyPresenter: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Handler.handleCallback(Handler.java:888)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Looper.loop(Looper.java:213)
E/KurobaEx-beta | ReplyPresenter: 	at android.app.ActivityThread.main(ActivityThread.java:8178)
E/KurobaEx-beta | ReplyPresenter: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | ReplyPresenter: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/KurobaEx-beta | ReplyPresenter: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
E/KurobaEx-beta | ReplyPresenter: onPostError
E/KurobaEx-beta | ReplyPresenter: android.os.NetworkOnMainThreadException
E/KurobaEx-beta | ReplyPresenter: 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1565)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.InetAddress.getAllByName(InetAddress.java:1152)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.net.DnsSelector.lookup(DnsSelector.java:25)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:164)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:129)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanAntispam.get(VichanAntispam.java:81)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanActions.prepare$suspendImpl(VichanActions.kt:97)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanActions.prepare(Unknown Source:0)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.CommonSite$CommonActions$post$2.invokeSuspend(CommonSite.kt:411)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.CommonSite$CommonActions$post$2.invoke(Unknown Source:10)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.SafeFlow.collectSafely(Builders.kt:60)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.AbstractFlow.collect(Flow.kt:210)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt.catchImpl(Errors.kt:230)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt.catchImpl(Unknown Source:1)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:113)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1.invokeSuspend(ReplyPresenter.kt:810)
E/KurobaEx-beta | ReplyPresenter: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Handler.handleCallback(Handler.java:888)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Looper.loop(Looper.java:213)
E/KurobaEx-beta | ReplyPresenter: 	at android.app.ActivityThread.main(ActivityThread.java:8178)
E/KurobaEx-beta | ReplyPresenter: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | ReplyPresenter: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/KurobaEx-beta | ReplyPresenter: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
E/KurobaEx-beta | ReplyPresenter: onPostError
E/KurobaEx-beta | ReplyPresenter: android.os.NetworkOnMainThreadException
E/KurobaEx-beta | ReplyPresenter: 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1565)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.InetAddress.getAllByName(InetAddress.java:1152)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.net.DnsSelector.lookup(DnsSelector.java:25)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:164)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:129)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanAntispam.get(VichanAntispam.java:81)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanActions.prepare$suspendImpl(VichanActions.kt:97)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanActions.prepare(Unknown Source:0)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.CommonSite$CommonActions$post$2.invokeSuspend(CommonSite.kt:411)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.CommonSite$CommonActions$post$2.invoke(Unknown Source:10)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.SafeFlow.collectSafely(Builders.kt:60)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.AbstractFlow.collect(Flow.kt:210)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt.catchImpl(Errors.kt:230)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt.catchImpl(Unknown Source:1)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:113)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1.invokeSuspend(ReplyPresenter.kt:810)
E/KurobaEx-beta | ReplyPresenter: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Handler.handleCallback(Handler.java:888)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Looper.loop(Looper.java:213)
E/KurobaEx-beta | ReplyPresenter: 	at android.app.ActivityThread.main(ActivityThread.java:8178)
E/KurobaEx-beta | ReplyPresenter: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | ReplyPresenter: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/KurobaEx-beta | ReplyPresenter: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
E/KurobaEx-beta | ReplyPresenter: onPostError
E/KurobaEx-beta | ReplyPresenter: android.os.NetworkOnMainThreadException
E/KurobaEx-beta | ReplyPresenter: 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1565)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
E/KurobaEx-beta | ReplyPresenter: 	at java.net.InetAddress.getAllByName(InetAddress.java:1152)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.kt:49)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.net.DnsSelector.lookup(DnsSelector.java:25)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.kt:164)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.kt:129)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RouteSelector.next(RouteSelector.kt:71)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
E/KurobaEx-beta | ReplyPresenter: 	at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanAntispam.get(VichanAntispam.java:81)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanActions.prepare$suspendImpl(VichanActions.kt:97)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.vichan.VichanActions.prepare(Unknown Source:0)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.CommonSite$CommonActions$post$2.invokeSuspend(CommonSite.kt:411)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.site.common.CommonSite$CommonActions$post$2.invoke(Unknown Source:10)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.SafeFlow.collectSafely(Builders.kt:60)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.AbstractFlow.collect(Flow.kt:210)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt.catchImpl(Errors.kt:230)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt.catchImpl(Unknown Source:1)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:113)
E/KurobaEx-beta | ReplyPresenter: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1.invokeSuspend(ReplyPresenter.kt:810)
E/KurobaEx-beta | ReplyPresenter: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | ReplyPresenter: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Handler.handleCallback(Handler.java:888)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | ReplyPresenter: 	at android.os.Looper.loop(Looper.java:213)
E/KurobaEx-beta | ReplyPresenter: 	at android.app.ActivityThread.main(ActivityThread.java:8178)
E/KurobaEx-beta | ReplyPresenter: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | ReplyPresenter: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/KurobaEx-beta | ReplyPresenter: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)

Crash report "PostExtraContentLoader: java.util.concurrent.TimeoutException: The source did not signal an event for 3 seconds and has been terminated."

Crash report
UUID: d1454ad54211851c0d11e688735e13e1
Build flavor: beta
Version name: v0.1.1
OS info: Android 10, sdk version: 29
Report description: No title
Logs:

FI, downloads = 1) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598836661XXX.jpg, outputFileName = 426ba34fe5ffe704c0eca2753241d466.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Completed downloading (https://i.4cdn.org/g/1598836661XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598831497XXX.png, outputFileName = 207e5e6f6cde78f300aa353fe356aacd.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 2
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Starting downloading (https://i.4cdn.org/g/1598831497XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598833483XXX.jpg, outputFileName = 9952a819c5ec7950f8aa4888dc1ed935.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 2
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/g/1598833483XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598839920XXX.jpg, outputFileName = 1c94f77b9b8fa45e0b2c8a2b99b5c92b.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 3
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/g/1598839920XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598831497XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 57,5 kB (57503 B), total = 57,5 kB (57503 B), took 208ms, network class = WIFI, downloads = 3) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598831497XXX.png, outputFileName = 207e5e6f6cde78f300aa353fe356aacd.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Completed downloading (https://i.4cdn.org/g/1598831497XXX.png)
D/KurobaEx-beta | OnDemandContentLoaderManager: cancelAllForLoadable called for TD{4chan/g/76759434}
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1594686838XXX.png, outputFileName = 9c0d5781dea4bb295eebb85f4bf0ef27.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1594686838XXX.png
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1594686828XXX.gif, outputFileName = 1a7d3c64ba23227befc78569694f7a97.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1594686828XXX.gif
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1594686818XXX.png, outputFileName = 0be2b0b0e725040e3803af11f29ffd2f.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1594686818XXX.png
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=0), url = https://i.4cdn.org/g/1594686780XXX.png
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598833483XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 122,4 kB (122405 B), total = 122,4 kB (122405 B), took 258ms, network class = WIFI, downloads = 2) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598833483XXX.jpg, outputFileName = 9952a819c5ec7950f8aa4888dc1ed935.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Completed downloading (https://i.4cdn.org/g/1598833483XXX.jpg)
D/KurobaEx-beta | ThreadPresenter:  chanLoaderManager.obtain()
D/KurobaEx-beta | ChanThreadLoader: Requested thread /g/, 77479XXX
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598839920XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 213,7 kB (213746 B), total = 213,7 kB (213746 B), took 540ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598839920XXX.jpg, outputFileName = 1c94f77b9b8fa45e0b2c8a2b99b5c92b.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Completed downloading (https://i.4cdn.org/g/1598839920XXX.jpg)
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=13, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 37.2ms (stored 12 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 39.1ms, (reloaded 13 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 27.7ms, (parsed 13 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 143us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 15s
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598839608XXX.jpg, outputFileName = <null>]
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=0), url = https://i.4cdn.org/g/1598839608XXX.jpg
D/KurobaEx-beta | ChanThreadLoader: Requested thread /g/, 77479XXX
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=13, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 92.5ms (stored 12 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 40.1ms, (reloaded 13 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 33.4ms, (parsed 13 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 162us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 20s
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(6)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(6)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=6, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.12s
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598822801XXX.png, outputFileName = 940b638e92be18a24f5773196f367cf3.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598822801XXX.png
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598842279XXX.png, outputFileName = b2e09097a5aa29fdf98798db4dc6b13c.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1598842279XXX.png
D/KurobaEx-beta | ReplyNotificationsHelper: showNotificationForReplies(0)
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: handleErrors(0) (https://i.4cdn.org/g/1598842727XXX.jpg) fail for chunk 0..9223372036854775806
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Retrying chunk (Chunk(start=0, end=9223372036854775806)) for url https://i.4cdn.org/g/1598842727XXX.jpg, error = SocketTimeoutException, msg = timeout
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598842727XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 210,4 kB (210372 B), total = 113,4 kB (113407 B), took 31800ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598842727XXX.jpg, outputFileName = 395ba0d1e10605144d78ee557a2c9e94.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Completed downloading (https://i.4cdn.org/g/1598842727XXX.jpg)
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598827898XXX.jpg, outputFileName = 8fcab13517edd832cac0581982212f2a.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598827898XXX.jpg
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598815206XXX.png, outputFileName = 43a2a97759aed984b9595a6f5e1916f7.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598815206XXX.png
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598842192XXX.jpg, outputFileName = 801e1716bab106ecc2e4d5e7b5d0bedc.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598842192XXX.jpg
D/KurobaEx-beta | OnDemandContentLoaderManager: cancelAllForLoadable called for TD{4chan/g/77479532}
D/KurobaEx-beta | ChanThreadLoader: Cleared timer
D/KurobaEx-beta | ThreadPresenter:  chanLoaderManager.obtain()
D/KurobaEx-beta | ChanThreadLoader: Requested thread /g/, 77474XXX
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598839897XXX.png, outputFileName = 4855b71a83a178d79ffe8e9a52d1d685.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 0
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/g/1598839897XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598833195XXX.jpg, outputFileName = 918a171280b25b82164ace9d4cadb9e7.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 2
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://i.4cdn.org/g/1598833195XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598837414XXX.jpg, outputFileName = 6b62c8b8f067f904849d26ef41f75921.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 2
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Starting downloading (https://i.4cdn.org/g/1598837414XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598837791XXX.png, outputFileName = 9fde6a81aa95b241ca3fc0ed8bee72df.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 3
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/g/1598837791XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598825784XXX.jpg, outputFileName = 41df108db62908830b99360a389f94a8.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 4
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://i.4cdn.org/g/1598825784XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598831924XXX.png, outputFileName = 6c3da5099f3676fbc400e885d0f39711.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 5
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Starting downloading (https://i.4cdn.org/g/1598831924XXX.png)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598833195XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 56,2 kB (56174 B), total = 56,2 kB (56174 B), took 244ms, network class = WIFI, downloads = 5) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598833195XXX.jpg, outputFileName = 918a171280b25b82164ace9d4cadb9e7.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Completed downloading (https://i.4cdn.org/g/1598833195XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598839897XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598837414XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598825784XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=15, isCatalog=false)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 45,0 kB (44972 B), total = 45,0 kB (44972 B), took 334ms, network class = WIFI, downloads = 4) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598839897XXX.png, outputFileName = 4855b71a83a178d79ffe8e9a52d1d685.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://i.4cdn.org/g/1598839897XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 40,0 kB (39989 B), total = 40,0 kB (39989 B), took 316ms, network class = WIFI, downloads = 3) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598837414XXX.jpg, outputFileName = 6b62c8b8f067f904849d26ef41f75921.cache]
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 44,4 kB (44445 B), total = 44,4 kB (44445 B), took 236ms, network class = WIFI, downloads = 3) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598825784XXX.jpg, outputFileName = 41df108db62908830b99360a389f94a8.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Completed downloading (https://i.4cdn.org/g/1598837414XXX.jpg)
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Completed downloading (https://i.4cdn.org/g/1598825784XXX.jpg)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 34.9ms (stored 14 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 49.7ms, (reloaded 15 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 78.5ms, (parsed 15 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 114us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 15s
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 2) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598814358XXX.jpg, outputFileName = <null>]
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598837791XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 302,4 kB (302420 B), total = 302,4 kB (302420 B), took 565ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598837791XXX.png, outputFileName = 9fde6a81aa95b241ca3fc0ed8bee72df.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Completed downloading (https://i.4cdn.org/g/1598837791XXX.png)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598831924XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 845,7 kB (845709 B), total = 845,7 kB (845709 B), took 1342ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598831924XXX.png, outputFileName = 6c3da5099f3676fbc400e885d0f39711.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://i.4cdn.org/g/1598831924XXX.png)
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=0), url = https://i.4cdn.org/g/1598814358XXX.jpg
D/KurobaEx-beta | ChanThreadLoader: Requested thread /g/, 77474XXX
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=15, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 36.8ms (stored 14 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 45.7ms, (reloaded 15 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 46.0ms, (parsed 15 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 130us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 20s
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598842518XXX.jpg, outputFileName = 5606c681ce46f7d4dd2385bfb5727793.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 2ms, funcsCount=1), url = https://i.4cdn.org/g/1598842518XXX.jpg
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598842775XXX.png, outputFileName = ccb40074cc2c2053e0bf85ed6747dc2a.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598842775XXX.png
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598825699XXX.jpg, outputFileName = ccb33b4a47f99a3ddb200023c241e965.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1598825699XXX.jpg
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(6)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(6)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=6, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.26s
D/KurobaEx-beta | ReplyNotificationsHelper: showNotificationForReplies(0)
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598839608XXX.jpg, outputFileName = 75c4dfbce67b4231e02f7a131b25b484.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598839608XXX.jpg
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598842727XXX.jpg, outputFileName = 395ba0d1e10605144d78ee557a2c9e94.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598842727XXX.jpg, outputFileName = 395ba0d1e10605144d78ee557a2c9e94.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=2), url = https://i.4cdn.org/g/1598842727XXX.jpg
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598836661XXX.jpg, outputFileName = 426ba34fe5ffe704c0eca2753241d466.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1598836661XXX.jpg
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598831709XXX.jpg, outputFileName = e0ca74820895c7692e0c81242c52cec6.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 1
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/g/1598831709XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598834298XXX.jpg, outputFileName = adf17da639c66859449aca2223eed61b.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 2
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/g/1598834298XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598828340XXX.jpg, outputFileName = c17a3c7a2aa8711f1711e5ef317b1115.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 2
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://i.4cdn.org/g/1598828340XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598831709XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 25,9 kB (25870 B), total = 25,9 kB (25870 B), took 243ms, network class = WIFI, downloads = 3) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598831709XXX.jpg, outputFileName = e0ca74820895c7692e0c81242c52cec6.cache]
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598803268XXX.jpg, outputFileName = 3cbed0ada51b8b969ec2dc9c0746b105.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 3
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/g/1598803268XXX.jpg)
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Completed downloading (https://i.4cdn.org/g/1598831709XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598835070XXX.jpg, outputFileName = 8b6420d0f7773a1502083372601ac0c5.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 3
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://i.4cdn.org/g/1598835070XXX.jpg)
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598842055XXX.jpg, outputFileName = fd5978e1e5e7c8da7bc4c3b18cd9a03a.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1598842055XXX.jpg
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598839363XXX.jpg, outputFileName = f89fe200b10bc065da16b7053e6454e7.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1598839363XXX.jpg
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598814358XXX.jpg, outputFileName = 6333c34d2ac74066991f498eb4cd8199.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1598814358XXX.jpg
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598824366XXX.jpg, outputFileName = bcf26f8b56b68d004868571eca2bd8ef.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 4
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://i.4cdn.org/g/1598824366XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598828340XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 36,6 kB (36603 B), total = 36,6 kB (36603 B), took 345ms, network class = WIFI, downloads = 4) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598828340XXX.jpg, outputFileName = c17a3c7a2aa8711f1711e5ef317b1115.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Completed downloading (https://i.4cdn.org/g/1598828340XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598834298XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 97,7 kB (97691 B), total = 97,7 kB (97691 B), took 445ms, network class = WIFI, downloads = 3) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598834298XXX.jpg, outputFileName = adf17da639c66859449aca2223eed61b.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://i.4cdn.org/g/1598834298XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598824366XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 13,9 kB (13948 B), total = 13,9 kB (13948 B), took 232ms, network class = WIFI, downloads = 2) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598824366XXX.jpg, outputFileName = bcf26f8b56b68d004868571eca2bd8ef.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Completed downloading (https://i.4cdn.org/g/1598824366XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598803268XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598835070XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 57,9 kB (57908 B), total = 57,9 kB (57908 B), took 312ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598803268XXX.jpg, outputFileName = 3cbed0ada51b8b969ec2dc9c0746b105.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Completed downloading (https://i.4cdn.org/g/1598803268XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 39,8 kB (39778 B), total = 39,8 kB (39778 B), took 306ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598835070XXX.jpg, outputFileName = 8b6420d0f7773a1502083372601ac0c5.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://i.4cdn.org/g/1598835070XXX.jpg)
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598839832XXX.png, outputFileName = f025d1c6edd764da017898ff253bfa67.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1598839832XXX.png
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598839920XXX.jpg, outputFileName = 1c94f77b9b8fa45e0b2c8a2b99b5c92b.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598839920XXX.jpg
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598833483XXX.jpg, outputFileName = 9952a819c5ec7950f8aa4888dc1ed935.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598833483XXX.jpg
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598831497XXX.png, outputFileName = 207e5e6f6cde78f300aa353fe356aacd.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598831497XXX.png
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598837414XXX.jpg, outputFileName = 6b62c8b8f067f904849d26ef41f75921.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1598837414XXX.jpg
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598818299XXX.png, outputFileName = 230ee9e6f51a4a1dab33c3111fbe51c1.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 0
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/g/1598818299XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598833088XXX.png, outputFileName = 518fcf01999adb3a030527df78edd0a6.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 1
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/g/1598833088XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://i.4cdn.org/g/1598811017XXX.png, outputFileName = 40fb538d17b7e958fa32b5e67e730e5f.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 2
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://i.4cdn.org/g/1598811017XXX.png)
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598833195XXX.jpg, outputFileName = 918a171280b25b82164ace9d4cadb9e7.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1598833195XXX.jpg
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598818299XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 59,9 kB (59861 B), total = 59,9 kB (59861 B), took 213ms, network class = WIFI, downloads = 2) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598818299XXX.png, outputFileName = 230ee9e6f51a4a1dab33c3111fbe51c1.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Completed downloading (https://i.4cdn.org/g/1598818299XXX.png)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598811017XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 5,2 kB (5244 B), total = 5,2 kB (5244 B), took 239ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598811017XXX.png, outputFileName = 40fb538d17b7e958fa32b5e67e730e5f.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://i.4cdn.org/g/1598811017XXX.png)
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598811017XXX.png, outputFileName = 40fb538d17b7e958fa32b5e67e730e5f.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598811017XXX.png
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://i.4cdn.org/g/1598833088XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 148,5 kB (148513 B), total = 148,5 kB (148513 B), took 480ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/g/1598833088XXX.png, outputFileName = 518fcf01999adb3a030527df78edd0a6.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Completed downloading (https://i.4cdn.org/g/1598833088XXX.png)
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598833088XXX.png, outputFileName = 518fcf01999adb3a030527df78edd0a6.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/g/1598833088XXX.png
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/g/1598818299XXX.png, outputFileName = 230ee9e6f51a4a1dab33c3111fbe51c1.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/g/1598818299XXX.png
D/KurobaEx-beta | ChanThreadLoader: Requested thread /g/, 77474XXX
D/KurobaEx-beta | ThreadPresenter:  chanLoaderManager.obtain()
D/KurobaEx-beta | ChanThreadLoader: Requested catalog /pol/
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=15, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 214ms (stored 14 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 41.4ms, (reloaded 15 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 63.1ms, (parsed 15 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 123us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 30s
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=202, isCatalog=true)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 877ms (stored 202 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 641ms, (reloaded 202 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 207ms, (parsed 202 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 162us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | PageRequestManager: Requesting new board pages for /pol/
D/KurobaEx-beta | JsonReaderRequest: Request "Chan4Pages" to "https://a.4cdn.org/pol/threads.json" took 841.528615ms
D/KurobaEx-beta | PageRequestManager: Got pages for 4chan/pol/
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598814432XXX.jpg, outputFileName = 4cab3912e805c367ccfc88df777f2312.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 1
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/pol/1598814432XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598841216XXX.png, outputFileName = 5085695f61c41ab725ed5cca719d40ef.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 5
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://i.4cdn.org/pol/1598841216XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598836672XXX.jpg, outputFileName = bcdab3a1de618db749d71f632e2b99a4.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 5
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Starting downloading (https://i.4cdn.org/pol/1598836672XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598839335XXX.jpg, outputFileName = 8293ea980e7bef0caff4801595ae48ea.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 7
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Starting downloading (https://i.4cdn.org/pol/1598839335XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598818058XXX.jpg, outputFileName = ca13352989057b6207d2a5d9b54eb0f0.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 11
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598836639XXX.webm, outputFileName = b935e423d535cd724611178fe9e94513.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 11
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Starting downloading (https://i.4cdn.org/pol/1598818058XXX.jpg)
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Starting downloading (https://i.4cdn.org/pol/1598836639XXX.webm)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598832971XXX.jpg, outputFileName = d22fcb38dfa08300e8a0f6db99721591.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 11
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598829690XXX.jpg, outputFileName = c43aa039a40eeee21eeb20ee1a721deb.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 11
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598832811XXX.jpg, outputFileName = 4ccf6ecd7d24e0557d3ac3c6c00c8152.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 11
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Starting downloading (https://i.4cdn.org/pol/1598832971XXX.jpg)
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Starting downloading (https://i.4cdn.org/pol/1598829690XXX.jpg)
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Starting downloading (https://i.4cdn.org/pol/1598832811XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598837727XXX.jpg, outputFileName = ca3a33a2ed065ebf25a7b959269a09c6.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 11
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://i.4cdn.org/pol/1598837727XXX.jpg)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598819432XXX.png, outputFileName = 684eb292477ca17aecb51e56b4651ec4.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 11
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/pol/1598819432XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://i.4cdn.org/pol/1598827338XXX.jpg, outputFileName = 9de0bcea5174ae51abb0e3317f2c9762.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 11
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Starting downloading (https://i.4cdn.org/pol/1598827338XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(0) success, url = https://i.4cdn.org/pol/1598836672XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 15,0 kB (14987 B), total = 15,0 kB (14987 B), took 606ms, network class = WIFI, downloads = 11) for request [FileDownloadRequest: url = https://i.4cdn.org/pol/1598836672XXX.jpg, outputFileName = bcdab3a1de618db749d71f632e2b99a4.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Completed downloading (https://i.4cdn.org/pol/1598836672XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(0) success, url = https://i.4cdn.org/pol/1598839335XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 96,1 kB (96088 B), total = 96,1 kB (96088 B), took 661ms, network class = WIFI, downloads = 10) for request [FileDownloadRequest: url = https://i.4cdn.org/pol/1598839335XXX.jpg, outputFileName = 8293ea980e7bef0caff4801595ae48ea.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Completed downloading (https://i.4cdn.org/pol/1598839335XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://i.4cdn.org/pol/1598814432XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 325,4 kB (325405 B), total = 325,4 kB (325405 B), took 851ms, network class = WIFI, downloads = 9) for request [FileDownloadRequest: url = https://i.4cdn.org/pol/1598814432XXX.jpg, outputFileName = 4cab3912e805c367ccfc88df777f2312.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://i.4cdn.org/pol/1598814432XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://i.4cdn.org/pol/1598818058XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 244,7 kB (244700 B), total = 244,7 kB (244700 B), took 619ms, network class = WIFI, downloads = 8) for request [FileDownloadRequest: url = https://i.4cdn.org/pol/1598818058XXX.jpg, outputFileName = ca13352989057b6207d2a5d9b54eb0f0.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Completed downloading (https://i.4cdn.org/pol/1598818058XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://i.4cdn.org/pol/1598841216XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 807,8 kB (807755 B), total = 807,8 kB (807755 B), took 1632ms, network class = WIFI, downloads = 7) for request [FileDownloadRequest: url = https://i.4cdn.org/pol/1598841216XXX.png, outputFileName = 5085695f61c41ab725ed5cca719d40ef.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://i.4cdn.org/pol/1598841216XXX.png)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(0) success, url = https://i.4cdn.org/pol/1598829690XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(0) success, url = https://i.4cdn.org/pol/1598837727XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 36,8 kB (36790 B), total = 36,8 kB (36790 B), took 1440ms, network class = WIFI, downloads = 6) for request [FileDownloadRequest: url = https://i.4cdn.org/pol/1598829690XXX.jpg, outputFileName = c43aa039a40eeee21eeb20ee1a721deb.cache]
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 306,2 kB (306245 B), total = 306,2 kB (306245 B), took 1425ms, network class = WIFI, downloads = 6) for request [FileDownloadRequest: url = https://i.4cdn.org/pol/1598837727XXX.jpg, outputFileName = ca3a33a2ed065ebf25a7b959269a09c6.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Completed downloading (https://i.4cdn.org/pol/1598829690XXX.jpg)
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Completed downloading (https://i.4cdn.org/pol/1598837727XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://i.4cdn.org/pol/1598827338XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 6,0 kB (5978 B), total = 6,0 kB (5978 B), took 1684ms, network class = WIFI, downloads = 4) for request [FileDownloadRequest: url = https://i.4cdn.org/pol/1598827338XXX.jpg, outputFileName = 9de0bcea5174ae51abb0e3317f2c9762.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Completed downloading (https://i.4cdn.org/pol/1598827338XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(0) success, url = https://i.4cdn.org/pol/1598832971XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 128,2 kB (128161 B), total = 128,2 kB (128161 B), took 1735ms, network class = WIFI, downloads = 3) for request [FileDownloadRequest: url = https://i.4cdn.org/pol/1598832971XXX.jpg, outputFileName = d22fcb38dfa08300e8a0f6db99721591.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Completed downloading (https://i.4cdn.org/pol/1598832971XXX.jpg)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://i.4cdn.org/pol/1598819432XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 890,1 kB (890117 B), total = 890,1 kB (890117 B), took 2470ms, network class = WIFI, downloads = 2) for request [FileDownloadRequest: url = https://i.4cdn.org/pol/1598819432XXX.png, outputFileName = 684eb292477ca17aecb51e56b4651ec4.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://i.4cdn.org/pol/1598819432XXX.png)
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-10]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-10]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled
E/KurobaEx-beta | APP: RxJava undeliverable exception
E/KurobaEx-beta | APP: java.util.concurrent.TimeoutException: The source did not signal an event for 3 seconds and has been terminated.
E/KurobaEx-beta | APP: 	at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123)
E/KurobaEx-beta | APP: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
E/KurobaEx-beta | APP: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
E/KurobaEx-beta | APP: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/KurobaEx-beta | APP: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
E/KurobaEx-beta | APP: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/KurobaEx-beta | APP: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/KurobaEx-beta | APP: 	at java.lang.Thread.run(Thread.java:919)
E/KurobaEx-beta | PostExtraContentLoader: Unhandled error
E/KurobaEx-beta | PostExtraContentLoader: java.util.concurrent.TimeoutException: The source did not signal an event for 3 seconds and has been terminated.
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123)
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.lang.Thread.run(Thread.java:919)
E/KurobaEx-beta | UNCAUGHT: Called from RxJava onError handler.
E/KurobaEx-beta | UNCAUGHT: java.util.concurrent.TimeoutException: The source did not signal an event for 3 seconds and has been terminated.
E/KurobaEx-beta | UNCAUGHT: 	at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123)
E/KurobaEx-beta | UNCAUGHT: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
E/KurobaEx-beta | UNCAUGHT: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
E/KurobaEx-beta | UNCAUGHT: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/KurobaEx-beta | UNCAUGHT: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
E/KurobaEx-beta | UNCAUGHT: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/KurobaEx-beta | UNCAUGHT: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.Thread.run(Thread.java:919)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 29
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.1.772
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-10]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-12]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled
E/KurobaEx-beta | UNCAUGHT: Phone Model: samsung SM-J600GT
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-1]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-10]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled
E/KurobaEx-beta | PostExtraContentLoader: Unhandled error
E/KurobaEx-beta | PostExtraContentLoader: java.util.concurrent.TimeoutException: The source did not signal an event for 3 seconds and has been terminated.
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123)
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.lang.Thread.run(Thread.java:919)
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-10]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-10]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-6]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled
E/KurobaEx-beta | PostExtraContentLoader: Unhandled error
E/KurobaEx-beta | PostExtraContentLoader: java.util.concurrent.TimeoutException: The source did not signal an event for 3 seconds and has been terminated.
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123)
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.lang.Thread.run(Thread.java:919)
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-1]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled
E/KurobaEx-beta | PostExtraContentLoader: Unhandled error
E/KurobaEx-beta | PostExtraContentLoader: java.util.concurrent.TimeoutException: The source did not signal an event for 3 seconds and has been terminated.
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123)
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.lang.Thread.run(Thread.java:919)
E/KurobaEx-beta | APP: RxJava undeliverable exception
E/KurobaEx-beta | APP: java.util.concurrent.TimeoutException: The source did not signal an event for 3 seconds and has been terminated.
E/KurobaEx-beta | APP: 	at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123)
E/KurobaEx-beta | APP: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
E/KurobaEx-beta | APP: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
E/KurobaEx-beta | APP: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/KurobaEx-beta | APP: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
E/KurobaEx-beta | APP: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/KurobaEx-beta | APP: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/KurobaEx-beta | APP: 	at java.lang.Thread.run(Thread.java:919)
E/KurobaEx-beta | UNCAUGHT: Called from RxJava onError handler.
E/KurobaEx-beta | UNCAUGHT: java.util.concurrent.TimeoutException: The source did not signal an event for 3 seconds and has been terminated.
E/KurobaEx-beta | UNCAUGHT: 	at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123)
E/KurobaEx-beta | UNCAUGHT: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
E/KurobaEx-beta | UNCAUGHT: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
E/KurobaEx-beta | UNCAUGHT: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/KurobaEx-beta | UNCAUGHT: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
E/KurobaEx-beta | UNCAUGHT: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/KurobaEx-beta | UNCAUGHT: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.Thread.run(Thread.java:919)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 29
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.1.772
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release
E/KurobaEx-beta | UNCAUGHT: Phone Model: samsung SM-J600GT
E/KurobaEx-beta | PostExtraContentLoader: Unhandled error
E/KurobaEx-beta | PostExtraContentLoader: java.util.concurrent.TimeoutException: The source did not signal an event for 3 seconds and has been terminated.
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.operators.single.SingleTimeout$TimeoutMainObserver.run(SingleTimeout.java:123)
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
E/KurobaEx-beta | PostExtraContentLoader: 	at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/KurobaEx-beta | PostExtraContentLoader: 	at java.lang.Thread.run(Thread.java:919)
E/KurobaEx-beta |  MediaServiceLinkExtraContentRepository: [DefaultDispatcher-worker-4]: Error while trying to fetch MediaServiceLinkExtraContent from remote source: error = RxSingleCoroutine was cancelled


=== SETTINGS ===
Prefetching enabled: true
Hi-res thumbnails enabled: true
Youtube titles and durations parsing enabled: true
Concurrent file loading chunks count: 4
WEBM streaming enabled: false
Saved files base dir info: Java API location: "/storage/emulated/0/KurobaEx-beta/files", SAF location: "", active: Java API
Phone layout mode: SLIDE
OkHttp IPv6 support enabled: false
OkHttp HTTP/2 support enabled: false

Bring back ChanPostCache

To avoid constantly inserting/reloading posts into/from the database an in-memory cache should be used.
Also, all post should use a "post_hash" field to check whether a post has changed or not. Currently implementation checks whether any of the post fields has changed, but I think having "post_hash" should be better. It will, at least, be more obvious when something goes wrong because there will be hashes to compare.

BottomNavView twitches every time an image is opened or snackbar shown

This is most likely happens because whenever window insets change a reactive event is sent via rxjava subjects and those events have some delay due to thread scheduling and stuff. So instead of using rxjava I should use callbacks which will be called immediately instead of after some time (like a frame)

Crash report "java.lang.RuntimeException: Attempt to destroy without creating first"

UUID: 9817dfdddeca980bc90206cd882feba5
Build flavor: beta
Version name: v0.1.1
OS info: Android 9, sdk version: 28
Report description: No title
Logs:

=== LOGS(2020-09-03 08:37:34 UTC) ===
D/KurobaEx-beta | Dependency Injection: YoutubeMediaServiceExtraInfoFetcher
D/KurobaEx-beta | Dependency Injection: PostExtraContentLoader
D/KurobaEx-beta | Dependency Injection: InlinedFileInfoLoader
D/KurobaEx-beta | Dependency Injection: OnDemandContentLoaderManager
D/KurobaEx-beta | OnDemandContentLoaderManager: Loaders count = 3
D/KurobaEx-beta | Dependency Injection: SeenPostsManager
D/KurobaEx-beta | JsonReaderRequest: Request "Chan4Boards" to "https://a.4cdn.org/boards.json" took 837.791616ms
D/KurobaEx-beta | Dependency Injection: Last reply repository
D/KurobaEx-beta | Dependency Injection: Captcha holder
D/KurobaEx-beta | JsonReaderRequest: Request "DvachBoards" to "https://2ch.hk/boards.json" took 978.533615ms
D/KurobaEx-beta | SiteBase: Got the boards for site 4chan, boards count = 76
D/KurobaEx-beta | SiteBase: Got the boards for site 2ch.hk, boards count = 160
D/KurobaEx-beta | Dependency Injection: ExtractPostMapInfoHolderUseCase
D/KurobaEx-beta | StartActivity: createUi took 2.07s
D/KurobaEx-beta | UpdateManager: Updater is disabled for beta/dev builds!
D/KurobaEx-beta | StartActivity: initializeDependencies took 8.41ms
D/KurobaEx-beta | ChanFilterManager: loadFilters() took 17.3ms
D/KurobaEx-beta | Chan: ^^^ App went foreground ^^^
D/KurobaEx-beta | StartActivity: start
D/KurobaEx-beta | BookmarksManager: BookmarksManager is not ready yet, waiting...
D/KurobaEx-beta | BookmarksManager: BookmarksManager initialized! Loaded 8 total bookmarks and 8 active bookmarks
D/KurobaEx-beta | HistoryNavigationManager: HistoryNavigationManager initialized!
D/KurobaEx-beta | AndroidUtils: waitForLayout requested a re-layout by returning false
D/KurobaEx-beta | BookmarksManager: BookmarksManager initialization completed, took 516ms
D/KurobaEx-beta | StartActivity: restoreFresh()
D/KurobaEx-beta | StartActivity: restoreFresh() topNavElement is Catalog, showBoard()
D/KurobaEx-beta | ThreadPresenter:  chanLoaderManager.obtain()
D/KurobaEx-beta | Dependency Injection: Filter engine
D/KurobaEx-beta | ChanThreadLoader: Requested catalog /b/
D/KurobaEx-beta | ChanLoaderRequestExecutor: Thread count: 4
D/KurobaEx-beta | BookmarkWatcherController: Switching to foreground watcher
D/KurobaEx-beta | BookmarkWatcherController: cancelBackgroundBookmarkWatching() called
D/KurobaEx-beta | BookmarkWatcherController: bookmarkForegroundWatcher.startWatching() called
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(8)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(8)
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | BookmarkWatcherController: Switching to foreground watcher
D/KurobaEx-beta | BookmarkWatcherController: cancelBackgroundBookmarkWatching() called
D/KurobaEx-beta | BookmarkWatcherController: bookmarkForegroundWatcher.startWatching() called
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=8, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=8
D/KurobaEx-beta | ThreadPresenter:  chanLoaderManager.obtain()
D/KurobaEx-beta | ChanThreadLoader: Requested catalog /s/
D/KurobaEx-beta | ChanThreadLoader: Request canceled
D/KurobaEx-beta | ChanThreadLoader: Request canceled
D/KurobaEx-beta | ChanThreadLoader: Requested catalog /s/
E/KurobaEx-beta | APP: Unhandled exception
E/KurobaEx-beta | APP: java.lang.RuntimeException: Attempt to destroy without creating first
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.base.BasePresenter.onDestroy(BasePresenter.kt:28)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.features.setup.BoardSelectionController.onDestroy(BoardSelectionController.kt:91)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.controller.Controller.finishPresenting(Controller.kt:306)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.controller.Controller.access$finishPresenting(Controller.kt:48)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.controller.Controller$stopPresenting$1.onControllerTransitionCompleted(Controller.kt:283)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.controller.ControllerTransition.onCompleted(ControllerTransition.java:29)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.controller.transition.FadeOutTransition$1.onAnimationEnd(FadeOutTransition.java:39)
E/KurobaEx-beta | APP: 	at android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:552)
E/KurobaEx-beta | APP: 	at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1232)
E/KurobaEx-beta | APP: 	at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1474)
E/KurobaEx-beta | APP: 	at android.animation.ValueAnimator.pulseAnimationFrame(ValueAnimator.java:1490)
E/KurobaEx-beta | APP: 	at android.animation.AnimatorSet.pulseFrame(AnimatorSet.java:1163)
E/KurobaEx-beta | APP: 	at android.animation.AnimatorSet.handleAnimationEvents(AnimatorSet.java:1146)
E/KurobaEx-beta | APP: 	at android.animation.AnimatorSet.doAnimationFrame(AnimatorSet.java:1046)
E/KurobaEx-beta | APP: 	at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
E/KurobaEx-beta | APP: 	at android.animation.AnimationHandler.access$100(AnimationHandler.java:37)
E/KurobaEx-beta | APP: 	at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
E/KurobaEx-beta | APP: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:963)
E/KurobaEx-beta | APP: 	at android.view.Choreographer.doCallbacks(Choreographer.java:777)
E/KurobaEx-beta | APP: 	at android.view.Choreographer.doFrame(Choreographer.java:706)
E/KurobaEx-beta | APP: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
E/KurobaEx-beta | APP: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | APP: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | APP: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | APP: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | APP: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | APP: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: Called from unhandled exception handler.
E/KurobaEx-beta | UNCAUGHT: java.lang.RuntimeException: Attempt to destroy without creating first
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.base.BasePresenter.onDestroy(BasePresenter.kt:28)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.features.setup.BoardSelectionController.onDestroy(BoardSelectionController.kt:91)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.controller.Controller.finishPresenting(Controller.kt:306)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.controller.Controller.access$finishPresenting(Controller.kt:48)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.controller.Controller$stopPresenting$1.onControllerTransitionCompleted(Controller.kt:283)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.controller.ControllerTransition.onCompleted(ControllerTransition.java:29)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.controller.transition.FadeOutTransition$1.onAnimationEnd(FadeOutTransition.java:39)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:552)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1232)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1474)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.ValueAnimator.pulseAnimationFrame(ValueAnimator.java:1490)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimatorSet.pulseFrame(AnimatorSet.java:1163)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimatorSet.handleAnimationEvents(AnimatorSet.java:1146)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimatorSet.doAnimationFrame(AnimatorSet.java:1046)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimationHandler.access$100(AnimationHandler.java:37)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:963)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer.doCallbacks(Choreographer.java:777)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer.doFrame(Choreographer.java:706)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 28
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.1.772
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release
E/KurobaEx-beta | UNCAUGHT: Phone Model: HMD Global TA-1032
D/KurobaEx-beta | ReportManager: Stored new crash log, path = /storage/emulated/0/Android/data/com.github.k1rakishou.chan.beta/cache/crashlogs/crashlog_1599122237400.txt
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
D/KurobaEx-beta | APP: maxPostsCountInPostsCache = 16384
D/KurobaEx-beta | Dependency Injection: Using DnsSelector.Mode.IPV4_ONLY
D/KurobaEx-beta | Dependency Injection: Using HTTP_2 and HTTP_1_1
D/KurobaEx-beta | Dependency Injection: App CoroutineScope
D/KurobaEx-beta | Dependency Injection: Board manager
D/KurobaEx-beta | Dependency Injection: ApplicationVisibilityManager
D/KurobaEx-beta | Dependency Injection: Site manager
D/KurobaEx-beta | Dependency Injection: ProxiedOkHTTP client
D/KurobaEx-beta | Dependency Injection: Gson module
D/KurobaEx-beta | Dependency Injection: Report manager
D/KurobaEx-beta | Dependency Injection: Available space for cache dir: 4315541504 bytes, cacheDirPath = /storage/emulated/0/Android/data/com.github.k1rakishou.chan.beta/cache
D/KurobaEx-beta | SiteManager: loadSites() start
D/KurobaEx-beta | BoardManager: loadBoards() start
D/KurobaEx-beta | SettingsNotificationManager: Added CrashLog notification
D/KurobaEx-beta | Chan: Application initialization took 386ms
D/KurobaEx-beta | Dependency Injection: Theme helper
D/KurobaEx-beta | Dependency Injection: PostFilterManager
D/KurobaEx-beta | Dependency Injection: ChanFilterManager
D/KurobaEx-beta | Dependency Injection: BookmarksManager
D/KurobaEx-beta | Dependency Injection: HistoryNavigationManager
D/KurobaEx-beta | Dependency Injection: App Context
D/KurobaEx-beta | Dependency Injection: Archives manager
D/KurobaEx-beta | Dependency Injection: ControllerNavigationManager
D/KurobaEx-beta | Dependency Injection: ReplyViewStateManager
D/KurobaEx-beta | Dependency Injection: GlobalWindowInsetsManager
D/KurobaEx-beta | Dependency Injection: Site resolver
D/KurobaEx-beta | Dependency Injection: LastViewedPostNoInfoHolder
D/KurobaEx-beta | Dependency Injection: FetchThreadBookmarkInfoUseCase
D/KurobaEx-beta | Dependency Injection: Mock reply manager
D/KurobaEx-beta | Dependency Injection: ParserRepository
D/KurobaEx-beta | Dependency Injection: ReplyParser
D/KurobaEx-beta | Dependency Injection: SavedReplyManager
D/KurobaEx-beta | Dependency Injection: ParsePostRepliesUseCase
D/KurobaEx-beta | Dependency Injection: Coil Image loader
D/KurobaEx-beta | Dependency Injection: Image loader v2
D/KurobaEx-beta | Dependency Injection: ReplyNotificationsHelper
D/KurobaEx-beta | Dependency Injection: Page request manager
D/KurobaEx-beta | Dependency Injection: LastPageNotificationsHelper
D/KurobaEx-beta | Dependency Injection: BookmarkWatcherDelegate
D/KurobaEx-beta | Dependency Injection: BookmarkForegroundWatcher
D/KurobaEx-beta | Dependency Injection: BookmarkWatcherController
D/KurobaEx-beta | Dependency Injection: ChanThreadViewableInfoManager
D/KurobaEx-beta | StartActivity: inject took 88.7ms
D/KurobaEx-beta | Dependency Injection: Reply manager
D/KurobaEx-beta | Dependency Injection: Connectivity Manager
D/KurobaEx-beta | Dependency Injection: Cache handler
D/KurobaEx-beta | Dependency Injection: Available space for cache dir: 4315541504 bytes, cacheDirPath = /storage/emulated/0/Android/data/com.github.k1rakishou.chan.beta/cache
D/KurobaEx-beta | Dependency Injection: DownloaderOkHttp client
D/KurobaEx-beta | Dependency Injection: File cache V2
D/KurobaEx-beta | FileCacheV2: [main]: chunksCount = 2
D/KurobaEx-beta | BoardManager: BoardManager is not ready yet, waiting...
D/KurobaEx-beta | BoardManager: BoardManager is not ready yet, waiting...
D/KurobaEx-beta | SiteManager: loadSites() took 234ms
D/KurobaEx-beta | BoardManager: BoardManager initialization completed, took 254ms
D/KurobaEx-beta | SiteBase: Requesting boards for site 2ch.hk
D/KurobaEx-beta | BoardManager: BoardManager initialization completed, took 221ms
D/KurobaEx-beta | SiteBase: Requesting boards for site 4chan
D/KurobaEx-beta | BoardManager: loadBoards() took 451ms
D/KurobaEx-beta | Dependency Injection: Android10GesturesExclusionZonesHolder
D/KurobaEx-beta | Android10GesturesExclusionZonesHolder: Json setting string is empty, reset.
D/KurobaEx-beta | Dependency Injection: PostHideManager
D/KurobaEx-beta | Dependency Injection: Chan loader factory
D/KurobaEx-beta | Dependency Injection: PrefetchIndicatorAnimationManager
D/KurobaEx-beta | Dependency Injection: OnDemandContentLoaderExecutor
D/KurobaEx-beta | Dependency Injection: PrefetchLoader
D/KurobaEx-beta | JsonReaderRequest: Request "Chan4Boards" to "https://a.4cdn.org/boards.json" took 793.265615ms
D/KurobaEx-beta | Dependency Injection: YoutubeMediaServiceExtraInfoFetcher
D/KurobaEx-beta | Dependency Injection: PostExtraContentLoader
D/KurobaEx-beta | Dependency Injection: InlinedFileInfoLoader
D/KurobaEx-beta | Dependency Injection: OnDemandContentLoaderManager
D/KurobaEx-beta | OnDemandContentLoaderManager: Loaders count = 3
D/KurobaEx-beta | Dependency Injection: SeenPostsManager
D/KurobaEx-beta | Dependency Injection: Last reply repository
D/KurobaEx-beta | Dependency Injection: Captcha holder
D/KurobaEx-beta | SiteBase: Got the boards for site 4chan, boards count = 76
D/KurobaEx-beta | Dependency Injection: ExtractPostMapInfoHolderUseCase
D/KurobaEx-beta | StartActivity: createUi took 2.00s
D/KurobaEx-beta | UpdateManager: Updater is disabled for beta/dev builds!
D/KurobaEx-beta | StartActivity: initializeDependencies took 7.96ms
D/KurobaEx-beta | ChanFilterManager: loadFilters() took 19.7ms
D/KurobaEx-beta | Chan: ^^^ App went foreground ^^^
D/KurobaEx-beta | StartActivity: start
D/KurobaEx-beta | BookmarksManager: BookmarksManager is not ready yet, waiting...
D/KurobaEx-beta | JsonReaderRequest: Request "DvachBoards" to "https://2ch.hk/boards.json" took 1753.419616ms
D/KurobaEx-beta | BookmarksManager: BookmarksManager initialized! Loaded 8 total bookmarks and 8 active bookmarks
D/KurobaEx-beta | SiteBase: Got the boards for site 2ch.hk, boards count = 160
D/KurobaEx-beta | HistoryNavigationManager: HistoryNavigationManager initialized!
D/KurobaEx-beta | AndroidUtils: waitForLayout requested a re-layout by returning false
D/KurobaEx-beta | BookmarksManager: BookmarksManager initialization completed, took 532ms
D/KurobaEx-beta | StartActivity: restoreFresh()
D/KurobaEx-beta | StartActivity: restoreFresh() topNavElement is Catalog, showBoard()
D/KurobaEx-beta | ThreadPresenter:  chanLoaderManager.obtain()
D/KurobaEx-beta | Dependency Injection: Filter engine
D/KurobaEx-beta | ChanThreadLoader: Requested catalog /b/
D/KurobaEx-beta | ChanLoaderRequestExecutor: Thread count: 4
D/KurobaEx-beta | BookmarkWatcherController: Switching to foreground watcher
D/KurobaEx-beta | BookmarkWatcherController: cancelBackgroundBookmarkWatching() called
D/KurobaEx-beta | BookmarkWatcherController: bookmarkForegroundWatcher.startWatching() called
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(8)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(8)
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | BookmarkWatcherController: Switching to foreground watcher
D/KurobaEx-beta | BookmarkWatcherController: cancelBackgroundBookmarkWatching() called
D/KurobaEx-beta | BookmarkWatcherController: bookmarkForegroundWatcher.startWatching() called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=8, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=8
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=8
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 3.10s
D/KurobaEx-beta | ReplyNotificationsHelper: showOrUpdateNotificationsInternal() ChanSettings.replyNotifications == false
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=210, isCatalog=true)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 2.36s (stored 210 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 1.86s, (reloaded 210 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 1.28s, (parsed 210 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 440us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | Dependency Injection: PostHideHelper
D/KurobaEx-beta | PageRequestManager: Requesting new board pages for /b/
D/KurobaEx-beta | PageRequestManager: Got pages for 2ch.hk/b/
D/KurobaEx-beta | ThreadPresenter:  chanLoaderManager.obtain()
D/KurobaEx-beta | ChanThreadLoader: Requested catalog /mobi/
D/KurobaEx-beta | ChanThreadLoader: Requested catalog /mobi/
D/KurobaEx-beta | ChanThreadLoader: Request canceled
E/KurobaEx-beta | APP: Unhandled exception
E/KurobaEx-beta | APP: java.lang.RuntimeException: Attempt to destroy without creating first
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.base.BasePresenter.onDestroy(BasePresenter.kt:28)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.features.setup.BoardSelectionController.onDestroy(BoardSelectionController.kt:91)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.controller.Controller.finishPresenting(Controller.kt:306)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.controller.Controller.access$finishPresenting(Controller.kt:48)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.controller.Controller$stopPresenting$1.onControllerTransitionCompleted(Controller.kt:283)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.controller.ControllerTransition.onCompleted(ControllerTransition.java:29)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.controller.transition.FadeOutTransition$1.onAnimationEnd(FadeOutTransition.java:39)
E/KurobaEx-beta | APP: 	at android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:552)
E/KurobaEx-beta | APP: 	at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1232)
E/KurobaEx-beta | APP: 	at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1474)
E/KurobaEx-beta | APP: 	at android.animation.ValueAnimator.pulseAnimationFrame(ValueAnimator.java:1490)
E/KurobaEx-beta | APP: 	at android.animation.AnimatorSet.pulseFrame(AnimatorSet.java:1163)
E/KurobaEx-beta | APP: 	at android.animation.AnimatorSet.handleAnimationEvents(AnimatorSet.java:1146)
E/KurobaEx-beta | APP: 	at android.animation.AnimatorSet.doAnimationFrame(AnimatorSet.java:1046)
E/KurobaEx-beta | APP: 	at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
E/KurobaEx-beta | APP: 	at android.animation.AnimationHandler.access$100(AnimationHandler.java:37)
E/KurobaEx-beta | APP: 	at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
E/KurobaEx-beta | APP: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:963)
E/KurobaEx-beta | APP: 	at android.view.Choreographer.doCallbacks(Choreographer.java:777)
E/KurobaEx-beta | APP: 	at android.view.Choreographer.doFrame(Choreographer.java:706)
E/KurobaEx-beta | APP: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
E/KurobaEx-beta | APP: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | APP: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | APP: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | APP: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | APP: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | APP: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: Called from unhandled exception handler.
E/KurobaEx-beta | UNCAUGHT: java.lang.RuntimeException: Attempt to destroy without creating first
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.base.BasePresenter.onDestroy(BasePresenter.kt:28)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.features.setup.BoardSelectionController.onDestroy(BoardSelectionController.kt:91)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.controller.Controller.finishPresenting(Controller.kt:306)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.controller.Controller.access$finishPresenting(Controller.kt:48)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.controller.Controller$stopPresenting$1.onControllerTransitionCompleted(Controller.kt:283)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.controller.ControllerTransition.onCompleted(ControllerTransition.java:29)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.controller.transition.FadeOutTransition$1.onAnimationEnd(FadeOutTransition.java:39)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:552)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1232)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1474)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.ValueAnimator.pulseAnimationFrame(ValueAnimator.java:1490)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimatorSet.pulseFrame(AnimatorSet.java:1163)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimatorSet.handleAnimationEvents(AnimatorSet.java:1146)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimatorSet.doAnimationFrame(AnimatorSet.java:1046)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimationHandler.access$100(AnimationHandler.java:37)
E/KurobaEx-beta | UNCAUGHT: 	at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:963)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer.doCallbacks(Choreographer.java:777)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer.doFrame(Choreographer.java:706)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 28
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.1.772
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release


=== SETTINGS ===
Prefetching enabled: false
Hi-res thumbnails enabled: false
Youtube titles and durations parsing enabled: true
Concurrent file loading chunks count: 2
WEBM streaming enabled: true
Saved files base dir info: Java API location: "/storage/emulated/0/KurobaEx-beta/files", SAF location: "", active: Java API
Phone layout mode: AUTO
OkHttp IPv6 support enabled: false
OkHttp HTTP/2 support enabled: true

[4chan] When viewing images, an image can stop loading at ~80% and after 5-10 seconds of waiting it will successfully complete loading

This is most likely something server-side because 1) this doesn't happen on other sites, 2) this doesn't happen when loading an image that is cached by Cloudflare. There is probably nothing can be done here except:

  • Try to change the user agent and see if this continues to happen (the server may do this intentionally and we use custom user agent).
  • Make sure that we don't send "Range: x=y" header when the chunked downloading feature is disabled.

Crash report "java.lang.IllegalArgumentException: Bookmark already exists (TD{2ch.hk/mobi/1952535})"

UUID: b755a8271f234c195674d16e94e73df7
Build flavor: beta
Version name: v0.1.1
OS info: Android 9, sdk version: 28
Report description: No title
Logs:

=== LOGS(2020-09-01 01:26:39 UTC) ===
D/KurobaEx-beta | ReplyNotificationsHelper: bookmarksManager.listenForBookmarksChanges(), bookmarkChange=BookmarksUpdated
D/KurobaEx-beta | BookmarksManager: persistBookmarks async called
D/KurobaEx-beta | BookmarksManager: persistBookmarks async finished
D/KurobaEx-beta | ReplyNotificationsHelper: showOrUpdateNotificationsInternal() ChanSettings.replyNotifications == false
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 2.56s (stored 209 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 2.78s, (reloaded 209 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 2.02s, (parsed 209 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 184us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | PageRequestManager: Requesting new board pages for /b/
D/KurobaEx-beta | PageRequestManager: Got pages for 2ch.hk/b/
D/KurobaEx-beta | ChanThreadLoader: Requested thread /mobi/, 1952XXX
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=true
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(1)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(1)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=1, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=1
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.06s
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=66, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 342ms (stored 65 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 337ms, (reloaded 66 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 776ms, (parsed 66 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 292us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 20s
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(5)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(5)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=5, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=5
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.39s
D/KurobaEx-beta | ReplyNotificationsHelper: showOrUpdateNotificationsInternal() ChanSettings.replyNotifications == false
D/KurobaEx-beta | ChanThreadLoader: Requested thread /mobi/, 1952XXX
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=true
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(1)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(1)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=1, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=1
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 400ms
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=66, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 390ms (stored 65 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 330ms, (reloaded 66 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 626ms, (parsed 66 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 202us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 30s
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(5)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(5)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=5, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=5
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.50s
D/KurobaEx-beta | ReplyNotificationsHelper: showOrUpdateNotificationsInternal() ChanSettings.replyNotifications == false
D/KurobaEx-beta | ChanThreadLoader: Requested thread /mobi/, 1952XXX
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=true
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(1)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(1)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=1, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=1
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 485ms
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=66, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 260ms (stored 65 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 219ms, (reloaded 66 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 299ms, (parsed 66 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 164us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 45s
D/KurobaEx-beta | ReplyLayout: Switching to page AUTHENTICATION
D/KurobaEx-beta | CaptchaNoJsPresenterV2: Got new challenge
D/KurobaEx-beta | CaptchaNoJsPresenterV2: Verify called
D/KurobaEx-beta | CaptchaNoJsPresenterV2: Got the verification token
D/KurobaEx-beta | CaptchaHolder: A new token has been added, validCount = 1, token = 03AGdBq...dzEEhtqE
D/KurobaEx-beta | CaptchaHolder: Timer started
D/KurobaEx-beta | CaptchaHolder: getToken() token = 03AGdBq...dzEEhtqE
D/KurobaEx-beta | ReplyLayout: Switching to page LOADING
D/KurobaEx-beta | Dependency Injection: Http call manager
E/KurobaEx-beta | APP: Unhandled exception
E/KurobaEx-beta | APP: java.lang.IllegalArgumentException: Bookmark already exists (TD{2ch.hk/mobi/1952535})
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.manager.BookmarksManager.createBookmark(BookmarksManager.kt:175)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.bookmarkThread(ReplyPresenter.kt:594)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostedSuccessfully(ReplyPresenter.kt:549)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostComplete(ReplyPresenter.kt:499)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invokeSuspend(ReplyPresenter.kt:483)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invoke(Unknown Source:10)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:160)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1.emit(Collect.kt:133)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catchImpl$$inlined$collect$1.emit(Collect.kt:134)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.site.sites.dvach.Dvach$setup$3$post$$inlined$map$1$2.emit(Collect.kt:145)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:58)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Unknown Source:11)
E/KurobaEx-beta | APP: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | APP: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | APP: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | APP: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | APP: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | APP: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | APP: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: Called from unhandled exception handler.
E/KurobaEx-beta | UNCAUGHT: java.lang.IllegalArgumentException: Bookmark already exists (TD{2ch.hk/mobi/1952535})
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.manager.BookmarksManager.createBookmark(BookmarksManager.kt:175)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.bookmarkThread(ReplyPresenter.kt:594)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostedSuccessfully(ReplyPresenter.kt:549)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostComplete(ReplyPresenter.kt:499)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invokeSuspend(ReplyPresenter.kt:483)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invoke(Unknown Source:10)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:160)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1.emit(Collect.kt:133)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catchImpl$$inlined$collect$1.emit(Collect.kt:134)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.site.sites.dvach.Dvach$setup$3$post$$inlined$map$1$2.emit(Collect.kt:145)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:58)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Unknown Source:11)
E/KurobaEx-beta | UNCAUGHT: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 28
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.1.772
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release


=== SETTINGS ===
Prefetching enabled: false
Hi-res thumbnails enabled: false
Youtube titles and durations parsing enabled: true
Concurrent file loading chunks count: 2
WEBM streaming enabled: true
Saved files base dir info: Java API location: "/storage/emulated/0/KurobaEx-beta/files", SAF location: "", active: Java API
Phone layout mode: AUTO
OkHttp IPv6 support enabled: false
OkHttp HTTP/2 support enabled: true

Crash report " java.lang.RuntimeException: Unable to destroy activity {com.github.k1rakishou.chan.beta/com.github.adamantcheese.chan.StartActivity}: kotlin.UninitializedPropertyAccessException: lateinit property updateManager has not been initialized"

UUID: a89ae5f8c29fa29111270384c8826016
Build flavor: beta
Version name: v0.1.1
OS info: Android 9, sdk version: 28
Report description: No title
Logs:

=== LOGS(2020-09-02 01:39:30 UTC) ===
W/KurobaEx-beta | StartActivity: Workaround for intent mismatch.
D/KurobaEx-beta | Chan: ^^^ App went foreground ^^^
D/KurobaEx-beta | StartActivity: start
D/KurobaEx-beta | ChanThreadLoader: Requested thread /s/, 2849XXX
D/KurobaEx-beta | PageRequestManager: Requesting existing board pages for /s/, timeout
D/KurobaEx-beta | PageRequestManager: Got pages for 2ch.hk/s/
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=true
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(1)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(1)
E/KurobaEx-beta | APP: Unhandled exception
E/KurobaEx-beta | APP: java.lang.RuntimeException: Unable to destroy activity {com.github.k1rakishou.chan.beta/com.github.adamantcheese.chan.StartActivity}: kotlin.UninitializedPropertyAccessException: lateinit property updateManager has not been initialized
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4489)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4507)
E/KurobaEx-beta | APP: 	at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:39)
E/KurobaEx-beta | APP: 	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
E/KurobaEx-beta | APP: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1836)
E/KurobaEx-beta | APP: 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/KurobaEx-beta | APP: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | APP: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | APP: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | APP: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | APP: Caused by: kotlin.UninitializedPropertyAccessException: lateinit property updateManager has not been initialized
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.StartActivity.onDestroy(StartActivity.kt:149)
E/KurobaEx-beta | APP: 	at android.app.Activity.performDestroy(Activity.java:7395)
E/KurobaEx-beta | APP: 	at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1306)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4474)
E/KurobaEx-beta | APP: 	... 11 more
E/KurobaEx-beta | UNCAUGHT: Called from unhandled exception handler.
E/KurobaEx-beta | UNCAUGHT: java.lang.RuntimeException: Unable to destroy activity {com.github.k1rakishou.chan.beta/com.github.adamantcheese.chan.StartActivity}: kotlin.UninitializedPropertyAccessException: lateinit property updateManager has not been initialized
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4489)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4507)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:39)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1836)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: Caused by: kotlin.UninitializedPropertyAccessException: lateinit property updateManager has not been initialized
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.StartActivity.onDestroy(StartActivity.kt:149)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.Activity.performDestroy(Activity.java:7395)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1306)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4474)
E/KurobaEx-beta | UNCAUGHT: 	... 11 more
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 28
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.1.772
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release


=== SETTINGS ===
Prefetching enabled: false
Hi-res thumbnails enabled: false
Youtube titles and durations parsing enabled: true
Concurrent file loading chunks count: 2
WEBM streaming enabled: true
Saved files base dir info: Java API location: "/storage/emulated/0/KurobaEx-beta/files", SAF location: "", active: Java API
Phone layout mode: AUTO
OkHttp IPv6 support enabled: false
OkHttp HTTP/2 support enabled: true

Crash report "java.lang.IllegalArgumentException: Bad threadId: 0"

Crash report
UUID: ffd529f8cc5a68e5e0ef24a168b0da78
Build flavor: beta
Version name: v0.1.6
OS info: Android 9, sdk version: 28
Report description: No title
Logs:

=== LOGS(2020-09-07 09:46:13 UTC) ===
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(9)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, currentThreadDescriptor=TD{2ch.hk/b/228459666}
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(9)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=9, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=9
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=10
D/KurobaEx-beta | Chan: vvv App went background vvv
D/KurobaEx-beta | BookmarksManager: persistBookmarks blocking called
D/KurobaEx-beta | BookmarksManager: persistBookmarks blocking finished
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack blocking called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack blocking finished
D/KurobaEx-beta | ApplicationVisibilityManager: onEnteredBackground() callback execution took 103ms, callbacks count: 3
D/KurobaEx-beta | StartActivity: stop
D/KurobaEx-beta | ChanThreadLoader: Cleared timer
D/KurobaEx-beta | BookmarkWatcherController: Switching to background watcher, replaceCurrent=true
D/KurobaEx-beta | BookmarkWatcherController: cancelForegroundBookmarkWatching() called
D/KurobaEx-beta | BookmarkWatcherController: Can't start background watching because watchBackground setting is disabled
D/KurobaEx-beta | BookmarkWatcherController: cancelBackgroundBookmarkWatching() called
D/KurobaEx-beta | Chan: ^^^ App went foreground ^^^
D/KurobaEx-beta | ApplicationVisibilityManager: onEnteredForeground() callback execution took 105us, callbacks count: 3
D/KurobaEx-beta | StartActivity: start
D/KurobaEx-beta | ChanThreadLoader: Requested thread /b/, 228459XXX
D/KurobaEx-beta | BookmarkForegroundWatcher: updateBookmarkForOpenedThread(TD{2ch.hk/b/228459666}) called
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(1)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, currentThreadDescriptor=TD{2ch.hk/b/228459666}
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(1)
D/KurobaEx-beta | ArchivesManager: getArchiveDescriptor(threadDescriptor=TD{2ch.hk/b/228459666}, forced=false)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=1, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=1
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=10
D/KurobaEx-beta | ReplyNotificationsHelper: bookmarksManager.listenForBookmarksChanges(), bookmarkChange=BookmarksUpdated
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=23, isCatalog=false)
D/KurobaEx-beta | BookmarkWatcherController: Switching to foreground watcher
D/KurobaEx-beta | BookmarkWatcherController: cancelBackgroundBookmarkWatching() called
D/KurobaEx-beta | BookmarkWatcherController: bookmarkForegroundWatcher.startWatching() called
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(9)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, currentThreadDescriptor=TD{2ch.hk/b/228459666}
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(9)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 104ms (stored 22 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 44.4ms, (reloaded 23 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 117ms, (parsed 23 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 48.4us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 15s
D/KurobaEx-beta | BookmarksManager: persistBookmarks async called
D/KurobaEx-beta | BookmarksManager: persistBookmarks async finished
D/KurobaEx-beta | ReplyNotificationsHelper: showOrUpdateNotificationsInternal() ChanSettings.replyNotifications == false
D/KurobaEx-beta | PageRequestManager: Requesting existing board pages for /b/, timeout
D/KurobaEx-beta | PageRequestManager: Requesting existing board pages for /s/, timeout
D/KurobaEx-beta | PageRequestManager: Got pages for 2ch.hk/b/
D/KurobaEx-beta | PageRequestManager: Requesting existing board pages for /b/, timeout
D/KurobaEx-beta | PageRequestManager: Got pages for 2ch.hk/s/
D/KurobaEx-beta | PageRequestManager: Got pages for 2ch.hk/b/
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=9, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=9
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=10
D/KurobaEx-beta | ChanThreadLoader: Requested thread /b/, 228459XXX
D/KurobaEx-beta | BookmarkForegroundWatcher: updateBookmarkForOpenedThread(TD{2ch.hk/b/228459666}) called
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(1)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, currentThreadDescriptor=TD{2ch.hk/b/228459666}
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(1)
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=23, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 69.8ms (stored 22 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 50.6ms, (reloaded 23 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 44.8ms, (parsed 23 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 55.8us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 20s
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=1, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=1
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=10
D/KurobaEx-beta | ChanThreadLoader: Requested thread /b/, 228459XXX
D/KurobaEx-beta | BookmarkForegroundWatcher: updateBookmarkForOpenedThread(TD{2ch.hk/b/228459666}) called
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(1)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, currentThreadDescriptor=TD{2ch.hk/b/228459666}
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(1)
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(9)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, currentThreadDescriptor=TD{2ch.hk/b/228459666}
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(9)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=1, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=1
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=10
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=23, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 70.5ms (stored 22 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 40.9ms, (reloaded 23 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 36.8ms, (parsed 23 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 32.0us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 30s
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=9, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=9
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=10
D/KurobaEx-beta | ChanThreadLoader: Requested thread /b/, 228459XXX
D/KurobaEx-beta | BookmarkForegroundWatcher: updateBookmarkForOpenedThread(TD{2ch.hk/b/228459666}) called
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(1)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, currentThreadDescriptor=TD{2ch.hk/b/228459666}
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(1)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=1, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=1
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=10
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=23, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 55.1ms (stored 22 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 55.8ms, (reloaded 23 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 53.1ms, (parsed 23 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 69.1us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 45s
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(9)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, currentThreadDescriptor=TD{2ch.hk/b/228459666}
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(9)
D/KurobaEx-beta | ReplyLayout: Switching to page AUTHENTICATION
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=9, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=9
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=10
D/KurobaEx-beta | CaptchaNoJsPresenterV2: Got new challenge
D/KurobaEx-beta | CaptchaNoJsPresenterV2: Verify called
D/KurobaEx-beta | CaptchaNoJsPresenterV2: Got the verification token
D/KurobaEx-beta | CaptchaHolder: A new token has been added, validCount = 1, token = 03AGdBq...NmQlHzf4
D/KurobaEx-beta | CaptchaHolder: Timer started
D/KurobaEx-beta | CaptchaHolder: getToken() token = 03AGdBq...NmQlHzf4
D/KurobaEx-beta | ReplyLayout: Switching to page LOADING
E/KurobaEx-beta | DvachReplyCall: Couldn't handle server response! response = "<!DOCTYPE html>
E/KurobaEx-beta | DvachReplyCall: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
E/KurobaEx-beta | DvachReplyCall: <head>
E/KurobaEx-beta | DvachReplyCall: 	<title>
E/KurobaEx-beta | DvachReplyCall: 		Makaba Engine
E/KurobaEx-beta | DvachReplyCall: 	</title>
E/KurobaEx-beta | DvachReplyCall: 	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
E/KurobaEx-beta | DvachReplyCall: 	<link href="/newtest/resources/images/makaba.ico" rel="shortcut icon" >
E/KurobaEx-beta | DvachReplyCall: 	<link href="/makaba/templates/css/normalize.css" type="text/css" rel="stylesheet">
E/KurobaEx-beta | DvachReplyCall: 	<link href="/makaba/templates/css/melchizedek.css" type="text/css" rel="stylesheet">
E/KurobaEx-beta | DvachReplyCall: 	<link href="/makaba/templates/css/404.css" type="text/css" rel="stylesheet">
E/KurobaEx-beta | DvachReplyCall: </head>
E/KurobaEx-beta | DvachReplyCall: <body>
E/KurobaEx-beta | DvachReplyCall: 	<!-- รโ€บรยพรยณรยพ -->
E/KurobaEx-beta | DvachReplyCall: 	<header class="header">
E/KurobaEx-beta | DvachReplyCall: 		<a class="logo" href="/">รโ€รยฒรยฐ.ร‘โ€ก</a>
E/KurobaEx-beta | DvachReplyCall: 	</header>
E/KurobaEx-beta | DvachReplyCall: 	<!-- /รโ€บรยพรยณรยพ -->
E/KurobaEx-beta | DvachReplyCall: 	<div class="box messages">
E/KurobaEx-beta | DvachReplyCall: 		<div class="box-data">
E/KurobaEx-beta | DvachReplyCall: 			<img src="/makaba/templates/img/makaka.gif" alt="tsok tsok tsok tsok tsok tsok...">
E/KurobaEx-beta | DvachReplyCall: 		</div>
E/KurobaEx-beta | DvachReplyCall: 		<div class="box-header"><span class="message-title">รยขรโ€ขรยฅร ร๏ฟฝรโ€˜รลพรยขรยซ</span><br> รลธรยปรยฐรยฝรยพรยฒร‘โ€นรยต ร‘โ€šรยตร‘โ€ฆร‘โ‚ฌรยฐรยฑรยพร‘โ€šร‘โ€น</div>
E/KurobaEx-beta | DvachReplyCall: 	</div>
E/KurobaEx-beta | DvachReplyCall: 	<footer>
E/KurobaEx-beta | DvachReplyCall: 		<!-- <ADD_include file="templates/includes/FooterLinks.include" > -->
E/KurobaEx-beta | DvachReplyCall: 		<div class="foot">
E/KurobaEx-beta | DvachReplyCall: 			<a href="/">รยณรยปรยฐรยฒรยฝรยฐร‘๏ฟฝ</a> / <a href="/faq.html">FAQ</a> / <a href="/contacts.html">รยบรยพรยฝร‘โ€šรยฐรยบร‘โ€šร‘โ€น</a> / <a href="/d">รยธรยดรยตรยธ รยธ รยฟร‘โ‚ฌรยตรยดรยปรยพรยถรยตรยฝรยธร‘๏ฟฝ</a> / <a href="http://www.so-slow.com/">so slow</a> / <a href="https://twitter.com/#!/abusomalia/">twitter</a> / <a href="http://www.formspring.me/2chabu">formsping</a> / <a href="/index_frame.html">รยฒรยตร‘โ‚ฌร‘๏ฟฝรยธร‘๏ฟฝ ร‘๏ฟฝ ร‘โ€žร‘โ‚ฌรยตรยนรยผรยพรยผ</a>
E/KurobaEx-beta | DvachReplyCall: 		</div>
E/KurobaEx-beta | DvachReplyCall: 	</footer>
E/KurobaEx-beta | DvachReplyCall: 
E/KurobaEx-beta | DvachReplyCall: </body>
E/KurobaEx-beta | DvachReplyCall: </html>
E/KurobaEx-beta | DvachReplyCall: "
E/KurobaEx-beta | APP: Unhandled exception
E/KurobaEx-beta | APP: java.lang.IllegalArgumentException: Bad threadId: 0
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.model.data.descriptor.ChanDescriptor$ThreadDescriptor$Companion.create(ChanDescriptor.kt:75)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostedSuccessfully(ReplyPresenter.kt:538)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostComplete(ReplyPresenter.kt:501)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invokeSuspend(ReplyPresenter.kt:485)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invoke(Unknown Source:10)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:160)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1.emit(Collect.kt:133)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catchImpl$$inlined$collect$1.emit(Collect.kt:134)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.site.sites.dvach.Dvach$setup$3$post$$inlined$map$1$2.emit(Collect.kt:145)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:58)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Unknown Source:11)
E/KurobaEx-beta | APP: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | APP: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | APP: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | APP: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | APP: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | APP: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | APP: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: Called from unhandled exception handler.
E/KurobaEx-beta | UNCAUGHT: java.lang.IllegalArgumentException: Bad threadId: 0
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.model.data.descriptor.ChanDescriptor$ThreadDescriptor$Companion.create(ChanDescriptor.kt:75)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostedSuccessfully(ReplyPresenter.kt:538)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter.onPostComplete(ReplyPresenter.kt:501)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invokeSuspend(ReplyPresenter.kt:485)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1$lambda$1.invoke(Unknown Source:10)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:160)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ReplyPresenter$makeSubmitCall$1$invokeSuspend$$inlined$collect$1.emit(Collect.kt:133)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catchImpl$$inlined$collect$1.emit(Collect.kt:134)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.site.sites.dvach.Dvach$setup$3$post$$inlined$map$1$2.emit(Collect.kt:145)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:58)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Unknown Source:11)
E/KurobaEx-beta | UNCAUGHT: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 28
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.6.1087
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release


=== SETTINGS ===
Prefetching enabled: false
Hi-res thumbnails enabled: false
Youtube titles and durations parsing enabled: true
Concurrent file loading chunks count: 2
WEBM streaming enabled: true
Saved files base dir info: Java API location: "/storage/emulated/0/KurobaEx-beta/files", SAF location: "", active: Java API
Phone layout mode: AUTO
OkHttp IPv6 support enabled: false
OkHttp HTTP/2 support enabled: true

Crash report "java.lang.NullPointerException at com.github.adamantcheese.chan.ui.controller.ThreadController.getPreviewImageTransitionView(ThreadController.kt:190)"

Crash report
UUID: 894630985c24a53af9a14d46fbb7df05
Build flavor: beta
Version name: v0.1.1
OS info: Android 9, sdk version: 28
Report description: No title
Logs:

=== LOGS(2020-09-01 01:19:13 UTC) ===
D/KurobaEx-beta | FileCacheV2: [pool-12-thread-1]: Downloading a file, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988914915XXX.jpg
D/KurobaEx-beta | FileCacheV2: [main]: Downloading a file, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png
D/KurobaEx-beta | PartialContentSupportChecker: Sending HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988914915XXX.jpg, outputFileName = <null>]
D/KurobaEx-beta | PartialContentSupportChecker: [OkHttp https://2ch.hk/...]: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, fileSize = 443385, cfCacheStatusHeader = null, took = 178ms
D/KurobaEx-beta | PartialContentSupportChecker: HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png) has succeeded, time = 180ms
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, outputFileName = ca6603f65fb55decac50b77bca758627.cache]) has started. Chunks count = 2. Network class = WIFI. Downloads = 0
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png)
D/KurobaEx-beta | CustomScaleImageView: onReady
D/KurobaEx-beta | CustomScaleImageView: onImageLoaded
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, chunk 0..221691
D/KurobaEx-beta | PartialContentSupportChecker: [pool-7-thread-1]: Disposing of HEAD request for url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png)
D/KurobaEx-beta | ChunkDownloader: [pool-7-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, outputFileName = ca6603f65fb55decac50b77bca758627.cache] via manual canceling (0..221691)
D/KurobaEx-beta | ChunkDownloader: [pool-7-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, outputFileName = ca6603f65fb55decac50b77bca758627.cache] via manual canceling (221692..443384)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 3ms, funcsCount=3), url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: handleErrors(1) (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png) cancel for chunk 221692..443384
E/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Error while trying to download, class = CancellationException, message = CancellationException for request with url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, state = Canceled
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Deleted chunk file /data/user/0/com.github.k1rakishou.chan.beta/cache/file_chunks_cache/ca6603f65fb55decac50b77bca758627_0_221691.chunk
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Purging https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, file = /data/user/0/com.github.k1rakishou.chan.beta/cache/filecache/ca6603f65fb55decac50b77bca758627.cache
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, outputFileName = ca6603f65fb55decac50b77bca758627.cache] canceled, downloaded = 401564, total = 443385, network class = WIFI, downloads = 0
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(5)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(5)
D/KurobaEx-beta | FileCacheV2: [pool-12-thread-1]: Downloading a file, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png
D/KurobaEx-beta | FileCacheV2: [main]: Downloading a file, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988949887XXX.png
D/KurobaEx-beta | PartialContentSupportChecker: Sending HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988949887XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Download ([FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, outputFileName = ca6603f65fb55decac50b77bca758627.cache]) has started. Chunks count = 2. Network class = WIFI. Downloads = 1
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png)
D/KurobaEx-beta | PartialContentSupportChecker: [OkHttp https://2ch.hk/...]: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988949887XXX.png, fileSize = 23659, cfCacheStatusHeader = null, took = 163ms
D/KurobaEx-beta | PartialContentSupportChecker: HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988949887XXX.png) has succeeded, time = 164ms
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988949887XXX.png, outputFileName = f387ad795da6e02eae9fd0f1e5d06a18.cache]) has started. Chunks count = 2. Network class = WIFI. Downloads = 1
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Starting downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988949887XXX.png)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988949887XXX.png, chunk 0..11828
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=5, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=5
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=5
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.55s
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(0) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, chunk 0..221691
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(1) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, chunk 221692..443384
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 443.4 kB (443385 B), total = 443.4 kB (443385 B), took 1411ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png, outputFileName = ca6603f65fb55decac50b77bca758627.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Completed downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988919451XXX.png)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(1) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988949887XXX.png, chunk 11829..23658
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 23.7 kB (23659 B), total = 23.7 kB (23659 B), took 1299ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988949887XXX.png, outputFileName = f387ad795da6e02eae9fd0f1e5d06a18.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15988949887XXX.png)
D/KurobaEx-beta | CustomScaleImageView: onReady
D/KurobaEx-beta | CustomScaleImageView: onImageLoaded
D/KurobaEx-beta | ReplyNotificationsHelper: showOrUpdateNotificationsInternal() ChanSettings.replyNotifications == false
D/KurobaEx-beta | ChanThreadLoader: Requested thread /b/, 228019XXX
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=134, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 365ms (stored 133 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 168ms, (reloaded 134 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 303ms, (parsed 134 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 145us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 60s
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(5)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(5)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=5, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=5
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=5
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.45s
D/KurobaEx-beta | ReplyNotificationsHelper: showOrUpdateNotificationsInternal() ChanSettings.replyNotifications == false
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | FileCacheV2: [pool-12-thread-1]: Downloading a file, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989018822XXX.png
D/KurobaEx-beta | FileCacheV2: [main]: Downloading a file, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png
D/KurobaEx-beta | PartialContentSupportChecker: Sending HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989018822XXX.png)
D/KurobaEx-beta | PartialContentSupportChecker: Sending HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png)
D/KurobaEx-beta | PartialContentSupportChecker: [OkHttp https://2ch.hk/...]: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png, fileSize = 51276, cfCacheStatusHeader = null, took = 624ms
D/KurobaEx-beta | PartialContentSupportChecker: HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png) has succeeded, time = 626ms
D/KurobaEx-beta | PartialContentSupportChecker: [OkHttp https://2ch.hk/...]: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989018822XXX.png, fileSize = 31550, cfCacheStatusHeader = null, took = 640ms
D/KurobaEx-beta | PartialContentSupportChecker: HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989018822XXX.png) has succeeded, time = 642ms
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png, outputFileName = b18f9dbd7aa5f19833e4fb2f6f93de58.cache]) has started. Chunks count = 2. Network class = WIFI. Downloads = 1
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989018822XXX.png, outputFileName = c3116412f46b70eb8c89314d323aa8c8.cache]) has started. Chunks count = 2. Network class = WIFI. Downloads = 1
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989018822XXX.png)
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(1) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989018822XXX.png, chunk 15775..31549
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(0) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989018822XXX.png, chunk 0..15774
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 31.6 kB (31550 B), total = 31.6 kB (31550 B), took 322ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989018822XXX.png, outputFileName = c3116412f46b70eb8c89314d323aa8c8.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Completed downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989018822XXX.png)
D/KurobaEx-beta | CustomScaleImageView: onReady
D/KurobaEx-beta | CustomScaleImageView: onImageLoaded
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(0) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png, chunk 0..25637
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(1) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png, chunk 25638..51275
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 51.3 kB (51276 B), total = 51.3 kB (51276 B), took 754ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png, outputFileName = b18f9dbd7aa5f19833e4fb2f6f93de58.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Completed downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png)
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(5)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(5)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=5, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=5
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=5
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.49s
D/KurobaEx-beta | ReplyNotificationsHelper: showOrUpdateNotificationsInternal() ChanSettings.replyNotifications == false
D/KurobaEx-beta | FileCacheV2: [pool-12-thread-1]: Downloading a file, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png
D/KurobaEx-beta | FileCacheV2: [main]: Downloading a file, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035970XXX.png
D/KurobaEx-beta | PartialContentSupportChecker: Sending HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035970XXX.png)
D/KurobaEx-beta | PartialContentSupportChecker: Sending HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png)
D/KurobaEx-beta | PartialContentSupportChecker: [OkHttp https://2ch.hk/...]: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035970XXX.png, fileSize = 69136, cfCacheStatusHeader = null, took = 174ms
D/KurobaEx-beta | PartialContentSupportChecker: HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035970XXX.png) has succeeded, time = 176ms
D/KurobaEx-beta | PartialContentSupportChecker: [OkHttp https://2ch.hk/...]: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png, fileSize = 20565, cfCacheStatusHeader = null, took = 171ms
D/KurobaEx-beta | PartialContentSupportChecker: HEAD request to url (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png) has succeeded, time = 172ms
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035970XXX.png, outputFileName = 89ca6a6468b70b2c4d4f70c55432c8a8.cache]) has started. Chunks count = 2. Network class = WIFI. Downloads = 1
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Download ([FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png, outputFileName = f4f239ad016e484941881c2b9844fe6c.cache]) has started. Chunks count = 2. Network class = WIFI. Downloads = 1
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png)
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035970XXX.png)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(1) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png, chunk 10282..20564
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-3]: storeChunkInFile(1) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035970XXX.png, chunk 34568..69135
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(0) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png, chunk 0..10281
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035970XXX.png, chunk 0..34567
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 20.6 kB (20565 B), total = 20.6 kB (20565 B), took 329ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png, outputFileName = f4f239ad016e484941881c2b9844fe6c.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Completed downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 69.1 kB (69136 B), total = 69.1 kB (69136 B), took 332ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035970XXX.png, outputFileName = 89ca6a6468b70b2c4d4f70c55432c8a8.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035970XXX.png)
D/KurobaEx-beta | CustomScaleImageView: onReady
D/KurobaEx-beta | CustomScaleImageView: onImageLoaded
D/KurobaEx-beta | ChanThreadLoader: Requested thread /b/, 228019XXX
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=134, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 234ms (stored 133 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 150ms, (reloaded 134 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 195ms, (parsed 134 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 266us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 90s
D/KurobaEx-beta | FileCacheV2: [pool-12-thread-1]: Downloading a file, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png
D/KurobaEx-beta | FileCacheV2: [main]: Downloading a file, url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989035188XXX.png, outputFileName = <null>]
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://2ch.hk/%2Fb%2Fsrc%2F228019621%2F15989034767XXX.png, outputFileName = <null>]
D/KurobaEx-beta | CustomScaleImageView: onReady
D/KurobaEx-beta | CustomScaleImageView: onImageLoaded
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(5)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(5)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=5, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=5
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=5
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.19s
D/KurobaEx-beta | ReplyNotificationsHelper: showOrUpdateNotificationsInternal() ChanSettings.replyNotifications == false
E/KurobaEx-beta | AndroidUtils: Exception in onMeasured
E/KurobaEx-beta | AndroidUtils: java.lang.NullPointerException
E/KurobaEx-beta | AndroidUtils: 	at com.github.adamantcheese.chan.ui.controller.ThreadController.getPreviewImageTransitionView(ThreadController.kt:190)
E/KurobaEx-beta | AndroidUtils: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.getTransitionImageView(ImageViewerController.java:800)
E/KurobaEx-beta | AndroidUtils: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.doPreviewOutAnimation(ImageViewerController.java:725)
E/KurobaEx-beta | AndroidUtils: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.startPreviewOutTransition(ImageViewerController.java:703)
E/KurobaEx-beta | AndroidUtils: 	at com.github.adamantcheese.chan.core.presenter.ImageViewerPresenter.onExit(ImageViewerPresenter.java:177)
E/KurobaEx-beta | AndroidUtils: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.lambda$goPostClicked$2$ImageViewerController(ImageViewerController.java:282)
E/KurobaEx-beta | AndroidUtils: 	at com.github.adamantcheese.chan.ui.controller.-$$Lambda$ImageViewerController$LlQ3fbYY1QL2vRAujYAVAivaIro.onMeasured(Unknown Source:2)
E/KurobaEx-beta | AndroidUtils: 	at com.github.adamantcheese.chan.utils.AndroidUtils$3.onPreDraw(AndroidUtils.java:486)
E/KurobaEx-beta | AndroidUtils: 	at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:977)
E/KurobaEx-beta | AndroidUtils: 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2588)
E/KurobaEx-beta | AndroidUtils: 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1521)
E/KurobaEx-beta | AndroidUtils: 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7437)
E/KurobaEx-beta | AndroidUtils: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:965)
E/KurobaEx-beta | AndroidUtils: 	at android.view.Choreographer.doCallbacks(Choreographer.java:777)
E/KurobaEx-beta | AndroidUtils: 	at android.view.Choreographer.doFrame(Choreographer.java:709)
E/KurobaEx-beta | AndroidUtils: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
E/KurobaEx-beta | AndroidUtils: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | AndroidUtils: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | AndroidUtils: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | AndroidUtils: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | AndroidUtils: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | AndroidUtils: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | AndroidUtils: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | APP: Unhandled exception
E/KurobaEx-beta | APP: java.lang.NullPointerException
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.controller.ThreadController.getPreviewImageTransitionView(ThreadController.kt:190)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.getTransitionImageView(ImageViewerController.java:800)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.doPreviewOutAnimation(ImageViewerController.java:725)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.startPreviewOutTransition(ImageViewerController.java:703)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.core.presenter.ImageViewerPresenter.onExit(ImageViewerPresenter.java:177)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.lambda$goPostClicked$2$ImageViewerController(ImageViewerController.java:282)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.controller.-$$Lambda$ImageViewerController$LlQ3fbYY1QL2vRAujYAVAivaIro.onMeasured(Unknown Source:2)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.utils.AndroidUtils$3.onPreDraw(AndroidUtils.java:486)
E/KurobaEx-beta | APP: 	at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:977)
E/KurobaEx-beta | APP: 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2588)
E/KurobaEx-beta | APP: 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1521)
E/KurobaEx-beta | APP: 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7437)
E/KurobaEx-beta | APP: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:965)
E/KurobaEx-beta | APP: 	at android.view.Choreographer.doCallbacks(Choreographer.java:777)
E/KurobaEx-beta | APP: 	at android.view.Choreographer.doFrame(Choreographer.java:709)
E/KurobaEx-beta | APP: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
E/KurobaEx-beta | APP: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | APP: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | APP: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | APP: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | APP: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | APP: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: Called from unhandled exception handler.
E/KurobaEx-beta | UNCAUGHT: java.lang.NullPointerException
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.controller.ThreadController.getPreviewImageTransitionView(ThreadController.kt:190)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.getTransitionImageView(ImageViewerController.java:800)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.doPreviewOutAnimation(ImageViewerController.java:725)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.startPreviewOutTransition(ImageViewerController.java:703)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.core.presenter.ImageViewerPresenter.onExit(ImageViewerPresenter.java:177)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.lambda$goPostClicked$2$ImageViewerController(ImageViewerController.java:282)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.controller.-$$Lambda$ImageViewerController$LlQ3fbYY1QL2vRAujYAVAivaIro.onMeasured(Unknown Source:2)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.utils.AndroidUtils$3.onPreDraw(AndroidUtils.java:486)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:977)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2588)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1521)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7437)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:965)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer.doCallbacks(Choreographer.java:777)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer.doFrame(Choreographer.java:709)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.handleCallback(Handler.java:873)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Looper.loop(Looper.java:193)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.main(ActivityThread.java:6702)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 28
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.1.772
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release
E/KurobaEx-beta | UNCAUGHT: Phone Model: HMD Global TA-1032


=== STACKTRACE ===
Called from unhandled exception handler.
java.lang.NullPointerException
	at com.github.adamantcheese.chan.ui.controller.ThreadController.getPreviewImageTransitionView(ThreadController.kt:190)
	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.getTransitionImageView(ImageViewerController.java:800)
	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.doPreviewOutAnimation(ImageViewerController.java:725)
	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.startPreviewOutTransition(ImageViewerController.java:703)
	at com.github.adamantcheese.chan.core.presenter.ImageViewerPresenter.onExit(ImageViewerPresenter.java:177)
	at com.github.adamantcheese.chan.ui.controller.ImageViewerController.lambda$goPostClicked$2$ImageViewerController(ImageViewerController.java:282)
	at com.github.adamantcheese.chan.ui.controller.-$$Lambda$ImageViewerController$LlQ3fbYY1QL2vRAujYAVAivaIro.onMeasured(Unknown Source:2)
	at com.github.adamantcheese.chan.utils.AndroidUtils$3.onPreDraw(AndroidUtils.java:486)
	at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:977)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2588)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1521)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7437)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:965)
	at android.view.Choreographer.doCallbacks(Choreographer.java:777)
	at android.view.Choreographer.doFrame(Choreographer.java:709)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
	at android.os.Handler.handleCallback(Handler.java:873)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:193)
	at android.app.ActivityThread.main(ActivityThread.java:6702)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)


=== SETTINGS ===
Prefetching enabled: false
Hi-res thumbnails enabled: false
Youtube titles and durations parsing enabled: true
Concurrent file loading chunks count: 2
WEBM streaming enabled: true
Saved files base dir info: Java API location: "/storage/emulated/0/KurobaEx-beta/files", SAF location: "", active: Java API
Phone layout mode: AUTO
OkHttp IPv6 support enabled: false
OkHttp HTTP/2 support enabled: true

Crash report "java.lang.IllegalStateException: The child controller of a DrawerController must either be StyledToolbarNavigationController or an DoubleNavigationController that has a ToolbarNavigationController."

Crash report
UUID: 5ed5de8e0cbf22e7734f513dc0ad8b29
Build flavor: beta
Version name: v0.1.1
OS info: Android 10, sdk version: 29
Report description: No title
Logs:

=== LOGS(2020-08-31 03:13:49 UTC) ===
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 60s
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(6)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(6)
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/v/1598835017XXX.png, outputFileName = 0b53b92f8f3ba850c88f373129d0d153.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/v/1598835017XXX.png
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/v/1598832703XXX.jpg, outputFileName = fd1b0cf15b9e3b8295e96fc86033d619.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=1), url = https://i.4cdn.org/v/1598832703XXX.jpg
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=6, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 2.02s
D/KurobaEx-beta | ReplyNotificationsHelper: showNotificationForReplies(0)
D/KurobaEx-beta | ArchivesManager: hasEnabledArchives(threadDescriptor=TD{4chan/v/522924625})
D/KurobaEx-beta | ArchivesManager: getArchiveDescriptor(threadDescriptor=TD{4chan/v/522924625}, forced=false)
D/KurobaEx-beta | ArchivesManager: getBestPossibleArchiveOrNull(threadDescriptor=TD{4chan/v/522924625}, suitableArchivesSize=1)
D/KurobaEx-beta | ChanThreadLoader: Cleared timer
D/KurobaEx-beta | ChanThreadLoader: Requested thread /v/, 522924XXX
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/v/1598830568XXX.png, outputFileName = a0fcd8532bdc50b1700ca862a7baceb5.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/v/1598830568XXX.png
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=0), url = https://i.4cdn.org/v/1598830421XXX.jpg
D/KurobaEx-beta | ArchivesManager: getArchiveDescriptor(threadDescriptor=TD{4chan/v/522924625}, forced=false)
D/KurobaEx-beta | ArchivesManager: getBestPossibleArchiveOrNull(threadDescriptor=TD{4chan/v/522924625}, suitableArchivesSize=1)
D/KurobaEx-beta | GetPostsFromArchiveUseCase: Successfully fetched 153 posts from archive ArchiveDescriptor(archiveDatabaseId='7', name='arch.b4k.co', domain='arch.b4k.co')
D/KurobaEx-beta | GetPostsFromArchiveUseCase: thirdPartyArchiveInfoRepository.fetchThreadFromNetwork fetched 153 posts in total and 16 deleted (or updated) posts
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=153, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 150ms (stored 152 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 186ms, (reloaded 153 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 173ms, (parsed 153 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 2.03s, (fetched 16 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 15s
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598830421XXX.jpg, outputFileName = <null>]
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598830568XXX.png, outputFileName = <null>]
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://arch-img.b4k.co/v/1598830695XXX.png, outputFileName = dffda4e675f38245a4c58d64879f9db7.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 0
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://arch-img.b4k.co/v/1598830695XXX.png)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(0) success, url = https://arch-img.b4k.co/v/1598830695XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 2,3 MB (2276984 B), total = -1 B (-1 B), took 5123ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://arch-img.b4k.co/v/1598830695XXX.png, outputFileName = dffda4e675f38245a4c58d64879f9db7.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Completed downloading (https://arch-img.b4k.co/v/1598830695XXX.png)
D/KurobaEx-beta | FileCacheV2: [pool-11-thread-1]: Downloading a file, url = https://arch-img.b4k.co/v/1598830695XXX.png
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://arch-img.b4k.co/v/1598830695XXX.png, outputFileName = <null>]
D/KurobaEx-beta | CustomScaleImageView: onReady
D/KurobaEx-beta | CustomScaleImageView: onImageLoaded
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598831391XXX.jpg, outputFileName = <null>]
D/KurobaEx-beta | ChanThreadLoader: Requested thread /v/, 522924XXX
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Download ([FileDownloadRequest: url = https://arch-img.b4k.co/v/1598835585XXX.jpg, outputFileName = 1cbfa407d8a72b0a84dcf0422c8eae10.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 0
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-3]: Starting downloading (https://arch-img.b4k.co/v/1598835585XXX.jpg)
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=137, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 237ms (stored 136 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 151ms, (reloaded 153 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 262ms, (parsed 137 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 52.2us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 20s
D/KurobaEx-beta | FileCacheV2: [pool-11-thread-1]: Downloading a file, url = https://i.4cdn.org/v/1598831391XXX.jpg
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 1) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598831391XXX.jpg, outputFileName = <null>]
D/KurobaEx-beta | CustomScaleImageView: onReady
D/KurobaEx-beta | CustomScaleImageView: onImageLoaded
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: storeChunkInFile(0) success, url = https://arch-img.b4k.co/v/1598835585XXX.jpg, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 198,5 kB (198523 B), total = -1 B (-1 B), took 3896ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://arch-img.b4k.co/v/1598835585XXX.jpg, outputFileName = 1cbfa407d8a72b0a84dcf0422c8eae10.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Completed downloading (https://arch-img.b4k.co/v/1598835585XXX.jpg)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=0), url = https://i.4cdn.org/v/1598830421XXX.jpg
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=0), url = https://i.4cdn.org/v/1598830568XXX.png
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://arch-img.b4k.co/v/1598830695XXX.png, outputFileName = dffda4e675f38245a4c58d64879f9db7.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://arch-img.b4k.co/v/1598830695XXX.png
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598832703XXX.jpg, outputFileName = <null>]
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(6)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(6)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://i.4cdn.org/v/1598831710XXX.png, outputFileName = b3b93e452907e6bf9f02a4481626a87b.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 0
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://i.4cdn.org/v/1598831710XXX.png)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=6, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.00s
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(0) success, url = https://i.4cdn.org/v/1598831710XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 117,7 kB (117698 B), total = 117,7 kB (117698 B), took 343ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598831710XXX.png, outputFileName = b3b93e452907e6bf9f02a4481626a87b.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Completed downloading (https://i.4cdn.org/v/1598831710XXX.png)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=0), url = https://i.4cdn.org/v/1598832703XXX.jpg
D/KurobaEx-beta | ReplyNotificationsHelper: showNotificationForReplies(0)
D/KurobaEx-beta | FileCacheV2: [pool-11-thread-1]: Downloading a file, url = https://i.4cdn.org/v/1598831710XXX.png
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598831710XXX.png, outputFileName = <null>]
D/KurobaEx-beta | CustomScaleImageView: onReady
D/KurobaEx-beta | CustomScaleImageView: onImageLoaded
D/KurobaEx-beta | ChanThreadLoader: Requested thread /v/, 522924XXX
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=137, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 160ms (stored 136 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 163ms, (reloaded 153 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 211ms, (parsed 137 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 132us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 30s
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Download ([FileDownloadRequest: url = https://i.4cdn.org/v/1598837703XXX.gif, outputFileName = f9fa7c71de7b3ebf1409268b69d76167.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 0
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/v/1598837703XXX.gif)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: storeChunkInFile(0) success, url = https://i.4cdn.org/v/1598837703XXX.gif, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 1,0 MB (1041746 B), total = 1,0 MB (1041746 B), took 554ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598837703XXX.gif, outputFileName = f9fa7c71de7b3ebf1409268b69d76167.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Completed downloading (https://i.4cdn.org/v/1598837703XXX.gif)
D/KurobaEx-beta | FileCacheV2: [pool-11-thread-1]: Downloading a file, url = https://i.4cdn.org/v/1598832703XXX.jpg
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598832703XXX.jpg, outputFileName = <null>]
D/KurobaEx-beta | CustomScaleImageView: onReady
D/KurobaEx-beta | CustomScaleImageView: onImageLoaded
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Download ([FileDownloadRequest: url = https://i.4cdn.org/v/1598832976XXX.png, outputFileName = 24cc343ef4d578c4ff153047554e3ac0.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 0
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Starting downloading (https://i.4cdn.org/v/1598832976XXX.png)
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: storeChunkInFile(0) success, url = https://i.4cdn.org/v/1598832976XXX.png, chunk 0..9223372036854775806
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 208,8 kB (208842 B), total = 208,8 kB (208842 B), took 374ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598832976XXX.png, outputFileName = 24cc343ef4d578c4ff153047554e3ac0.cache]
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Completed downloading (https://i.4cdn.org/v/1598832976XXX.png)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 0ms, funcsCount=0), url = https://i.4cdn.org/v/1598831391XXX.jpg
D/KurobaEx-beta | BookmarksManager: Bookmark created (TD{4chan/v/522924625})
D/KurobaEx-beta | PageRequestManager: Requesting existing board pages for /a/, timeout
D/KurobaEx-beta | PageRequestManager: Requesting existing board pages for /fit/, timeout
D/KurobaEx-beta | PageRequestManager: Requesting existing board pages for /fit/, timeout
D/KurobaEx-beta | BookmarksManager: persistBookmarks async called
D/KurobaEx-beta | BookmarksManager: persistBookmarks async finished
D/KurobaEx-beta | BookmarkWatcherController: Switching to foreground watcher
D/KurobaEx-beta | BookmarkWatcherController: cancelBackgroundBookmarkWatching() called
D/KurobaEx-beta | BookmarkWatcherController: bookmarkForegroundWatcher.startWatching() called
D/KurobaEx-beta | JsonReaderRequest: Request "Chan4Pages" to "https://a.4cdn.org/fit/threads.json" took 1533.237152ms
D/KurobaEx-beta | JsonReaderRequest: Request "Chan4Pages" to "https://a.4cdn.org/a/threads.json" took 1535.490038ms
D/KurobaEx-beta | PageRequestManager: Got pages for 4chan/fit/
D/KurobaEx-beta | PageRequestManager: Got pages for 4chan/a/
D/KurobaEx-beta | AndroidUtils: waitForLayout requested a re-layout by returning false
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(7)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(7)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=7, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=7
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=7
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.85s
D/KurobaEx-beta | ReplyNotificationsHelper: showNotificationForReplies(0)
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
E/KurobaEx-beta | APP: Unhandled exception
E/KurobaEx-beta | APP: java.lang.IllegalStateException: The child controller of a DrawerController must either be StyledToolbarNavigationController or an DoubleNavigationController that has a ToolbarNavigationController.
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.getMainToolbarNavigationController(DrawerController.kt:124)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.getTopThreadController(DrawerController.kt:90)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.access$getTopThreadController$p(DrawerController.kt:66)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.features.drawer.DrawerController$onHistoryEntryViewClicked$1.invokeSuspend(DrawerController.kt:522)
E/KurobaEx-beta | APP: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | APP: 	at android.os.Handler.handleCallback(Handler.java:883)
E/KurobaEx-beta | APP: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | APP: 	at android.os.Looper.loop(Looper.java:237)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.main(ActivityThread.java:7860)
E/KurobaEx-beta | APP: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | APP: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | APP: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
E/KurobaEx-beta | UNCAUGHT: Called from unhandled exception handler.
E/KurobaEx-beta | UNCAUGHT: java.lang.IllegalStateException: The child controller of a DrawerController must either be StyledToolbarNavigationController or an DoubleNavigationController that has a ToolbarNavigationController.
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.getMainToolbarNavigationController(DrawerController.kt:124)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.getTopThreadController(DrawerController.kt:90)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.access$getTopThreadController$p(DrawerController.kt:66)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.features.drawer.DrawerController$onHistoryEntryViewClicked$1.invokeSuspend(DrawerController.kt:522)
E/KurobaEx-beta | UNCAUGHT: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.handleCallback(Handler.java:883)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Looper.loop(Looper.java:237)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.main(ActivityThread.java:7860)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 29
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.1.772
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release
E/KurobaEx-beta | UNCAUGHT: Phone Model: samsung SM-J600GT
D/KurobaEx-beta | ReportManager: Stored new crash log, path = /data/user/0/com.github.k1rakishou.chan.beta/cache/crashlogs/crashlog_1598843611926.txt
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
D/KurobaEx-beta | APP: maxPostsCountInPostsCache = 16384
D/KurobaEx-beta | Dependency Injection: Using DnsSelector.Mode.IPV4_ONLY
D/KurobaEx-beta | Dependency Injection: Using HTTP_1_1
D/KurobaEx-beta | Dependency Injection: App CoroutineScope
D/KurobaEx-beta | Dependency Injection: Board manager
D/KurobaEx-beta | Dependency Injection: ApplicationVisibilityManager
D/KurobaEx-beta | Dependency Injection: Site manager
D/KurobaEx-beta | Dependency Injection: ProxiedOkHTTP client
D/KurobaEx-beta | Dependency Injection: Gson module
D/KurobaEx-beta | Dependency Injection: Report manager
D/KurobaEx-beta | Dependency Injection: Available space for cache dir: 2725752832 bytes, cacheDirPath = /data/user/0/com.github.k1rakishou.chan.beta/cache
D/KurobaEx-beta | SiteManager: loadSites() start
D/KurobaEx-beta | SettingsNotificationManager: Added CrashLog notification
D/KurobaEx-beta | BoardManager: loadBoards() start
D/KurobaEx-beta | Chan: Application initialization took 741ms
D/KurobaEx-beta | Dependency Injection: App Context
D/KurobaEx-beta | Dependency Injection: Coil Image loader
D/KurobaEx-beta | BoardManager: loadBoards() took 152ms
D/KurobaEx-beta | Dependency Injection: Theme helper
D/KurobaEx-beta | Dependency Injection: Image loader v2
D/KurobaEx-beta | Dependency Injection: PostFilterManager
D/KurobaEx-beta | Dependency Injection: ChanFilterManager
D/KurobaEx-beta | Dependency Injection: BookmarksManager
D/KurobaEx-beta | Dependency Injection: Mock reply manager
D/KurobaEx-beta | Dependency Injection: HistoryNavigationManager
D/KurobaEx-beta | Dependency Injection: Archives manager
D/KurobaEx-beta | Dependency Injection: ControllerNavigationManager
D/KurobaEx-beta | Dependency Injection: ReplyViewStateManager
D/KurobaEx-beta | Dependency Injection: GlobalWindowInsetsManager
D/KurobaEx-beta | Dependency Injection: Site resolver
D/KurobaEx-beta | Dependency Injection: LastViewedPostNoInfoHolder
D/KurobaEx-beta | Dependency Injection: FetchThreadBookmarkInfoUseCase
D/KurobaEx-beta | SiteBase: Requesting boards for site 4chan
D/KurobaEx-beta | Dependency Injection: ParserRepository
D/KurobaEx-beta | SiteManager: loadSites() took 342ms
D/KurobaEx-beta | Dependency Injection: ReplyParser
D/KurobaEx-beta | Dependency Injection: SavedReplyManager
D/KurobaEx-beta | Dependency Injection: ParsePostRepliesUseCase
D/KurobaEx-beta | Dependency Injection: ReplyNotificationsHelper
D/KurobaEx-beta | Dependency Injection: Page request manager
D/KurobaEx-beta | Dependency Injection: LastPageNotificationsHelper
D/KurobaEx-beta | Dependency Injection: BookmarkWatcherDelegate
D/KurobaEx-beta | Dependency Injection: BookmarkForegroundWatcher
D/KurobaEx-beta | Dependency Injection: BookmarkWatcherController
D/KurobaEx-beta | Dependency Injection: ChanThreadViewableInfoManager
D/KurobaEx-beta | StartActivity: inject took 208ms
D/KurobaEx-beta | Dependency Injection: Reply manager
D/KurobaEx-beta | Dependency Injection: Connectivity Manager
D/KurobaEx-beta | Dependency Injection: Cache handler
D/KurobaEx-beta | Dependency Injection: Available space for cache dir: 2725855232 bytes, cacheDirPath = /data/user/0/com.github.k1rakishou.chan.beta/cache
D/KurobaEx-beta | Dependency Injection: DownloaderOkHttp client
D/KurobaEx-beta | Dependency Injection: File cache V2
D/KurobaEx-beta | FileCacheV2: [main]: chunksCount = 4
D/KurobaEx-beta | Dependency Injection: Android10GesturesExclusionZonesHolder
D/KurobaEx-beta | Android10GesturesExclusionZonesHolder: Json setting string is empty, reset.
D/KurobaEx-beta | Dependency Injection: PostHideManager
D/KurobaEx-beta | Dependency Injection: Chan loader factory
D/KurobaEx-beta | Dependency Injection: PrefetchIndicatorAnimationManager
D/KurobaEx-beta | Dependency Injection: OnDemandContentLoaderExecutor
D/KurobaEx-beta | Dependency Injection: PrefetchLoader
D/KurobaEx-beta | Dependency Injection: YoutubeMediaServiceExtraInfoFetcher
D/KurobaEx-beta | Dependency Injection: PostExtraContentLoader
D/KurobaEx-beta | Dependency Injection: InlinedFileInfoLoader
D/KurobaEx-beta | Dependency Injection: OnDemandContentLoaderManager
D/KurobaEx-beta | OnDemandContentLoaderManager: Loaders count = 3
D/KurobaEx-beta | Dependency Injection: SeenPostsManager
D/KurobaEx-beta | JsonReaderRequest: Request "Chan4Boards" to "https://a.4cdn.org/boards.json" took 1729.109345ms
D/KurobaEx-beta | Dependency Injection: Last reply repository
D/KurobaEx-beta | Dependency Injection: Captcha holder
D/KurobaEx-beta | SiteBase: Got the boards for site 4chan, boards count = 76
D/KurobaEx-beta | Dependency Injection: ExtractPostMapInfoHolderUseCase
D/KurobaEx-beta | StartActivity: createUi took 2.44s
D/KurobaEx-beta | UpdateManager: Updater is disabled for beta/dev builds!
D/KurobaEx-beta | StartActivity: initializeDependencies took 7.84ms
D/KurobaEx-beta | Chan: ^^^ App went foreground ^^^
D/KurobaEx-beta | StartActivity: start
D/KurobaEx-beta | ChanFilterManager: loadFilters() took 21.7ms
D/KurobaEx-beta | BookmarksManager: BookmarksManager is not ready yet, waiting...
D/KurobaEx-beta | BookmarksManager: BookmarksManager initialized! Loaded 7 total bookmarks and 7 active bookmarks
D/KurobaEx-beta | HistoryNavigationManager: HistoryNavigationManager initialized!
D/KurobaEx-beta | AndroidUtils: waitForLayout requested a re-layout by returning false
D/KurobaEx-beta | BookmarksManager: BookmarksManager initialization completed, took 489ms
D/KurobaEx-beta | StartActivity: restoreFresh()
D/KurobaEx-beta | StartActivity: restoreFresh() topNavElement is Thread, loadThread()
D/KurobaEx-beta | BookmarkWatcherController: Switching to foreground watcher
D/KurobaEx-beta | BookmarkWatcherController: cancelBackgroundBookmarkWatching() called
D/KurobaEx-beta | BookmarkWatcherController: bookmarkForegroundWatcher.startWatching() called
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(6)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(6)
D/KurobaEx-beta | ThreadPresenter:  chanLoaderManager.obtain()
D/KurobaEx-beta | Dependency Injection: Filter engine
D/KurobaEx-beta | ChanThreadLoader: Requested thread /v/, 522924XXX
D/KurobaEx-beta | ChanLoaderRequestExecutor: Thread count: 8
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=true
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(1)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(1)
D/KurobaEx-beta | BookmarkWatcherController: Switching to foreground watcher
D/KurobaEx-beta | BookmarkWatcherController: cancelBackgroundBookmarkWatching() called
D/KurobaEx-beta | BookmarkWatcherController: bookmarkForegroundWatcher.startWatching() called
D/KurobaEx-beta | PageRequestManager: Requesting new board pages for /v/
D/KurobaEx-beta | PageRequestManager: Requesting new board pages for /a/
D/KurobaEx-beta | PageRequestManager: Requesting new board pages for /fit/
D/KurobaEx-beta | PageRequestManager: Requesting new board pages for /fit/
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=1, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=1
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=7
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.01s
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=6, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=6
D/KurobaEx-beta | ReplyNotificationsHelper: bookmarksManager.listenForBookmarksChanges(), bookmarkChange=BookmarksUpdated
D/KurobaEx-beta | JsonReaderRequest: Request "Chan4Pages" to "https://a.4cdn.org/a/threads.json" took 425.708923ms
D/KurobaEx-beta | JsonReaderRequest: Request "Chan4Pages" to "https://a.4cdn.org/fit/threads.json" took 431.421385ms
D/KurobaEx-beta | PageRequestManager: Got pages for 4chan/a/
D/KurobaEx-beta | PageRequestManager: Got pages for 4chan/fit/
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=7
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.51s
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async called
D/KurobaEx-beta | HistoryNavigationManager: persistNavigationStack async finished
D/KurobaEx-beta | JsonReaderRequest: Request "Chan4Pages" to "https://a.4cdn.org/v/threads.json" took 934.915884ms
D/KurobaEx-beta | PageRequestManager: Got pages for 4chan/v/
D/KurobaEx-beta | BookmarksManager: persistBookmarks async called
D/KurobaEx-beta | BookmarksManager: persistBookmarks async finished
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=137, isCatalog=false)
D/KurobaEx-beta | ReplyNotificationsHelper: showNotificationForReplies(0)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 445ms (stored 136 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 408ms, (reloaded 153 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 674ms, (parsed 137 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 334us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 15s
D/KurobaEx-beta | Dependency Injection: PostHideHelper
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598831710XXX.png, outputFileName = <null>]
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598832703XXX.jpg, outputFileName = <null>]
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Success (downloaded = 0 B (0 B), total = 0 B (0 B), took 0ms, network class = WIFI, downloads = 0) for request [FileDownloadRequest: url = https://i.4cdn.org/v/1598832976XXX.png, outputFileName = <null>]
E/KurobaEx-beta | APP: Unhandled exception
E/KurobaEx-beta | APP: java.lang.IllegalStateException: The child controller of a DrawerController must either be StyledToolbarNavigationController or an DoubleNavigationController that has a ToolbarNavigationController.
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.getMainToolbarNavigationController(DrawerController.kt:124)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.getTopThreadController(DrawerController.kt:90)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.access$getTopThreadController$p(DrawerController.kt:66)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.features.drawer.DrawerController$onHistoryEntryViewClicked$1.invokeSuspend(DrawerController.kt:522)
E/KurobaEx-beta | APP: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | APP: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | APP: 	at android.os.Handler.handleCallback(Handler.java:883)
E/KurobaEx-beta | APP: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | APP: 	at android.os.Looper.loop(Looper.java:237)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.main(ActivityThread.java:7860)
E/KurobaEx-beta | APP: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | APP: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | APP: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
E/KurobaEx-beta | UNCAUGHT: Called from unhandled exception handler.
E/KurobaEx-beta | UNCAUGHT: java.lang.IllegalStateException: The child controller of a DrawerController must either be StyledToolbarNavigationController or an DoubleNavigationController that has a ToolbarNavigationController.
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.getMainToolbarNavigationController(DrawerController.kt:124)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.getTopThreadController(DrawerController.kt:90)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.features.drawer.DrawerController.access$getTopThreadController$p(DrawerController.kt:66)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.features.drawer.DrawerController$onHistoryEntryViewClicked$1.invokeSuspend(DrawerController.kt:522)
E/KurobaEx-beta | UNCAUGHT: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
E/KurobaEx-beta | UNCAUGHT: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.handleCallback(Handler.java:883)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Looper.loop(Looper.java:237)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.main(ActivityThread.java:7860)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 29
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.1.772
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release
E/KurobaEx-beta | UNCAUGHT: Phone Model: samsung SM-J600GT


=== SETTINGS ===
Prefetching enabled: true
Hi-res thumbnails enabled: true
Youtube titles and durations parsing enabled: true
Concurrent file loading chunks count: 4
WEBM streaming enabled: false
Saved files base dir info: Java API location: "/storage/emulated/0/KurobaEx-beta/files", SAF location: "", active: Java API
Phone layout mode: SLIDE
OkHttp IPv6 support enabled: false
OkHttp HTTP/2 support enabled: false

Crash report "java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter convertView"

Crash report
UUID: b681bb773c8f99b896c854b3fab48c92
Build flavor: beta
Version name: v0.1.1
OS info: Android 10, sdk version: 29
Report description: No title
Logs:

=== LOGS(2020-08-31 02:55:42 UTC) ===
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/wsg/1596216640XXX.webm, outputFileName = 5f774b47def11f13b6bff55f866281f2.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/wsg/1596216640XXX.webm
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://i.4cdn.org/wsg/1597668936XXX.webm, outputFileName = 09584ab9cc8b2a51b72b633670e3441a.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 1
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Starting downloading (https://i.4cdn.org/wsg/1597668936XXX.webm)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Download ([FileDownloadRequest: url = https://i.4cdn.org/wsg/1594442538XXX.webm, outputFileName = 37856108060776e39f9d9ea3257f88ce.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 2
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Starting downloading (https://i.4cdn.org/wsg/1594442538XXX.webm)
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-3]: Download ([FileDownloadRequest: url = https://i.4cdn.org/wsg/1597636232XXX.webm, outputFileName = 6fdd5fd174d2498d2f3afd5a53cfe0fd.cache]) has started. Chunks count = 1. Network class = WIFI. Downloads = 2
D/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Starting downloading (https://i.4cdn.org/wsg/1597636232XXX.webm)
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/wsg/1597636232XXX.webm, outputFileName = 6fdd5fd174d2498d2f3afd5a53cfe0fd.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/wsg/1597636232XXX.webm
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-0]: handleErrors(0) (https://i.4cdn.org/wsg/1597636232XXX.webm) cancel for chunk 0..9223372036854775806
E/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-0]: Error while trying to download, class = CancellationException, message = CancellationException for request with url = https://i.4cdn.org/wsg/1597636232XXX.webm, state = Canceled
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Purging https://i.4cdn.org/wsg/1597636232XXX.webm, file = /data/user/0/com.github.k1rakishou.chan.beta/cache/filecache/6fdd5fd174d2498d2f3afd5a53cfe0fd.cache
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-0]: Request [FileDownloadRequest: url = https://i.4cdn.org/wsg/1597636232XXX.webm, outputFileName = 6fdd5fd174d2498d2f3afd5a53cfe0fd.cache] canceled, downloaded = 522444, total = 3852822, network class = WIFI, downloads = 2
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/wsg/1594442538XXX.webm, outputFileName = 37856108060776e39f9d9ea3257f88ce.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/wsg/1594442538XXX.webm
D/KurobaEx-beta | ChunkDownloader: [pool-8-thread-1]: Disposing OkHttp Call for CHUNKED request [FileDownloadRequest: url = https://i.4cdn.org/wsg/1597668936XXX.webm, outputFileName = 09584ab9cc8b2a51b72b633670e3441a.cache] via manual canceling (0..9223372036854775806)
D/KurobaEx-beta | CancelableDownload: Cancelling file download request (cleanup took: 1ms, funcsCount=1), url = https://i.4cdn.org/wsg/1597668936XXX.webm
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-1]: handleErrors(0) (https://i.4cdn.org/wsg/1594442538XXX.webm) cancel for chunk 0..9223372036854775806
E/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-1]: Error while trying to download, class = CancellationException, message = CancellationException for request with url = https://i.4cdn.org/wsg/1594442538XXX.webm, state = Canceled
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Purging https://i.4cdn.org/wsg/1594442538XXX.webm, file = /data/user/0/com.github.k1rakishou.chan.beta/cache/filecache/37856108060776e39f9d9ea3257f88ce.cache
D/KurobaEx-beta | ChunkReader: [NormalFileCacheV2Thread-2]: handleErrors(0) (https://i.4cdn.org/wsg/1597668936XXX.webm) cancel for chunk 0..9223372036854775806
E/KurobaEx-beta | ConcurrentChunkedFileDownloader: [NormalFileCacheV2Thread-2]: Error while trying to download, class = CancellationException, message = CancellationException for request with url = https://i.4cdn.org/wsg/1597668936XXX.webm, state = Canceled
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-1]: Request [FileDownloadRequest: url = https://i.4cdn.org/wsg/1594442538XXX.webm, outputFileName = 37856108060776e39f9d9ea3257f88ce.cache] canceled, downloaded = 751825, total = 6097425, network class = WIFI, downloads = 1
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Purging https://i.4cdn.org/wsg/1597668936XXX.webm, file = /data/user/0/com.github.k1rakishou.chan.beta/cache/filecache/09584ab9cc8b2a51b72b633670e3441a.cache
D/KurobaEx-beta | FileCacheV2: [NormalFileCacheV2Thread-2]: Request [FileDownloadRequest: url = https://i.4cdn.org/wsg/1597668936XXX.webm, outputFileName = 09584ab9cc8b2a51b72b633670e3441a.cache] canceled, downloaded = 604371, total = 624701, network class = WIFI, downloads = 0
D/KurobaEx-beta | PageRequestManager: Requesting existing board pages for /a/, timeout
D/KurobaEx-beta | JsonReaderRequest: Request "Chan4Pages" to "https://a.4cdn.org/a/threads.json" took 1849.939114ms
D/KurobaEx-beta | PageRequestManager: Got pages for 4chan/a/
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
D/KurobaEx-beta | AndroidUtils: waitForLayout requested a re-layout by returning false
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(6)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(6)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=6, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 1.13s
D/KurobaEx-beta | ReplyNotificationsHelper: showNotificationForReplies(0)
D/KurobaEx-beta | ChanThreadLoader: Requested thread /wsg/, 3566XXX
D/KurobaEx-beta | StoreNewPostsUseCase: storePosts(postsCount=222, isCatalog=false)
D/KurobaEx-beta | NormalPostLoader: ChanReaderRequest.readJson() stats: url = <url hidden>.
D/KurobaEx-beta | NormalPostLoader: Store new posts took 173ms (stored 221 posts).
D/KurobaEx-beta | NormalPostLoader: Reload posts took 341ms, (reloaded 222 posts, from cache: 0).
D/KurobaEx-beta | NormalPostLoader: Parse posts took = 79.5ms, (parsed 222 posts).
D/KurobaEx-beta | NormalPostLoader: Archive fetch took 55.5us, (fetched 0 deleted posts).
D/KurobaEx-beta | NormalPostLoader: Total in-memory cached posts count = (0/16384).
D/KurobaEx-beta | ThreadPresenter: onChanLoaderData() called
D/KurobaEx-beta | ChanThreadLoader: Scheduled reload in 60s
D/KurobaEx-beta | AndroidUtils: waitForLayout requested a re-layout by returning false
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() called, isCalledFromForeground=true, isUpdatingCurrentlyOpenedThread=false
D/KurobaEx-beta | LastPageNotificationsHelper: showOrUpdateNotifications(6)
D/KurobaEx-beta | LastPageNotificationsHelper: ChanSettings.watchLastPageNotify is disabled
D/KurobaEx-beta | FetchThreadBookmarkInfoUseCase: FetchThreadBookmarkInfoUseCase.execute(6)
D/KurobaEx-beta | BookmarkWatcherDelegate: fetchThreadBookmarkInfo stats: total results=6, errorsCount=0, alreadyDeletedCount=0, notFoundOnServerCount=0, badStatusCount=0, successCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() success, activeBookmarksCount=6
D/KurobaEx-beta | BookmarkWatcherDelegate: BookmarkWatcherDelegate.doWork() took 406ms
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
D/KurobaEx-beta | ReplyNotificationsHelper: showNotificationForReplies(0)
E/KurobaEx-beta | APP: Unhandled exception
E/KurobaEx-beta | APP: java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter convertView
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.controller.settings.ThemeSettingsController$ColorsAdapter.getView(Unknown Source:2)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.view.FloatingMenu.measureContentWidth(FloatingMenu.java:253)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.view.FloatingMenu.show(FloatingMenu.java:172)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.controller.settings.ThemeSettingsController$Adapter$getView$colorClick$1.onClick(ThemeSettingsController.kt:377)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.controller.settings.ThemeSettingsController$Adapter$getView$1.onMenuOrBackClicked(ThemeSettingsController.kt:382)
E/KurobaEx-beta | APP: 	at com.github.adamantcheese.chan.ui.toolbar.Toolbar.onClick(Toolbar.java:416)
E/KurobaEx-beta | APP: 	at android.view.View.performClick(View.java:7870)
E/KurobaEx-beta | APP: 	at android.view.View.performClickInternal(View.java:7839)
E/KurobaEx-beta | APP: 	at android.view.View.access$3600(View.java:886)
E/KurobaEx-beta | APP: 	at android.view.View$PerformClick.run(View.java:29363)
E/KurobaEx-beta | APP: 	at android.os.Handler.handleCallback(Handler.java:883)
E/KurobaEx-beta | APP: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | APP: 	at android.os.Looper.loop(Looper.java:237)
E/KurobaEx-beta | APP: 	at android.app.ActivityThread.main(ActivityThread.java:7860)
E/KurobaEx-beta | APP: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | APP: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | APP: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
E/KurobaEx-beta | UNCAUGHT: Called from unhandled exception handler.
E/KurobaEx-beta | UNCAUGHT: java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter convertView
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.controller.settings.ThemeSettingsController$ColorsAdapter.getView(Unknown Source:2)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.view.FloatingMenu.measureContentWidth(FloatingMenu.java:253)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.view.FloatingMenu.show(FloatingMenu.java:172)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.controller.settings.ThemeSettingsController$Adapter$getView$colorClick$1.onClick(ThemeSettingsController.kt:377)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.controller.settings.ThemeSettingsController$Adapter$getView$1.onMenuOrBackClicked(ThemeSettingsController.kt:382)
E/KurobaEx-beta | UNCAUGHT: 	at com.github.adamantcheese.chan.ui.toolbar.Toolbar.onClick(Toolbar.java:416)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.View.performClick(View.java:7870)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.View.performClickInternal(View.java:7839)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.View.access$3600(View.java:886)
E/KurobaEx-beta | UNCAUGHT: 	at android.view.View$PerformClick.run(View.java:29363)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.handleCallback(Handler.java:883)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E/KurobaEx-beta | UNCAUGHT: 	at android.os.Looper.loop(Looper.java:237)
E/KurobaEx-beta | UNCAUGHT: 	at android.app.ActivityThread.main(ActivityThread.java:7860)
E/KurobaEx-beta | UNCAUGHT: 	at java.lang.reflect.Method.invoke(Native Method)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/KurobaEx-beta | UNCAUGHT: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: END OF CURRENT RUNTIME MESSAGES
E/KurobaEx-beta | UNCAUGHT: ------------------------------
E/KurobaEx-beta | UNCAUGHT: Android API Level: 29
E/KurobaEx-beta | UNCAUGHT: App Version: v0.1.1.772
D/KurobaEx-beta | AndroidUtils: Build Signature: 86242978CF53C34361A8C962D0A57107AEB70E10631AE13EB5B006C0CF673FA9
E/KurobaEx-beta | UNCAUGHT: Development Build: Release
E/KurobaEx-beta | UNCAUGHT: Phone Model: samsung SM-J600GT


=== SETTINGS ===
Prefetching enabled: true
Hi-res thumbnails enabled: true
Youtube titles and durations parsing enabled: true
Concurrent file loading chunks count: 4
WEBM streaming enabled: false
Saved files base dir info: Java API location: "/storage/emulated/0/KurobaEx-beta/files", SAF location: "", active: Java API
Phone layout mode: SLIDE
OkHttp IPv6 support enabled: false
OkHttp HTTP/2 support enabled: false

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.