Git Product home page Git Product logo

joyreactor's Introduction

JoyReactor

Poster

Макет приложения

Screenshots

Screenshots

Screenshots


Screenshots

Screenshots

Screenshots

Описание

Мультиплатформенный (Android / iOS) [1] клиент для сайта http://joyreactor.cc

Проект задумывается как “open source” с лицензией GPL v2. Так же НЕ планируется вставка рекламы и весь функционал будет доступен без дополнительных платежей.

Интерфейс у разных версий будет родной для системы. Общим же будет логика UI, код загрузки, сохранения и обработки данных (постов, картинок и тп)

План работ по проекту:

  • Профессиональный макет (Android)
  • Просмотр списка постов в лентах по разным тегам
  • Подробный просмотр поста: картинка + информация по посту + комментарии
  • Навигация по комментариям
  • Уведомления о получение сообщений от пользователей
  • Галерея картинок поста

[1] В связи с отказом Microsoft поддерживать Android приложения, версия для Windows Phone 10 пока в подвешенном состояние.

Powered by

joyreactor's People

Contributors

y2k 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

Watchers

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

joyreactor's Issues

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NoClassDefFoundError: java.util.concurrent.ConcurrentHashMap$KeySetView
    at y2k.joyreactor.common.PersistentMap.flush(PersistentMap.kt:25)
    at y2k.joyreactor.http.CookieStorage.grab(CookieStorage.kt:31)
    at y2k.joyreactor.http.HttpClient.getDocument(HttpClient.kt:80)
    at y2k.joyreactor.services.requests.PostsForTagRequest$requestAsync$1.call(PostsForTagRequest.kt:22)
    at y2k.joyreactor.services.requests.PostsForTagRequest$requestAsync$1.call(PostsForTagRequest.kt:16)
    at rx.internal.operators.OnSubscribeFromCallable.call(OnSubscribeFromCallable.java:32)
    at rx.internal.operators.OnSubscribeFromCallable.call(OnSubscribeFromCallable.java:17)
    at rx.Observable.unsafeSubscribe(Observable.java:8098)
    at rx.internal.operators.OperatorSubscribeOn$1$1.call(OperatorSubscribeOn.java:62)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 7 more

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.
	at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:60)
	at rx.internal.schedulers.ExecutorScheduler$ExecutorSchedulerWorker.run(ExecutorScheduler.java:104)
	at android.os.Handler.handleCallback(Handler.java:751)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6239)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:895)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:785)
Caused by: rx.exceptions.OnErrorNotImplementedException
	at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386)
	at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383)
	at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44)
	at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:157)
	at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
	at rx.internal.operators.OperatorFilter$FilterSubscriber.onError(OperatorFilter.java:87)
	at rx.observers.SerializedObserver.onError(SerializedObserver.java:158)
	at rx.observers.SerializedSubscriber.onError(SerializedSubscriber.java:79)
	at rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.innerError(OnSubscribeConcatMap.java:192)
	at rx.internal.operators.OnSubscribeConcatMap$ConcatMapInnerSubscriber.onError(OnSubscribeConcatMap.java:340)
	at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:276)
	at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:219)
	at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
	... 8 more
Caused by: kotlin.KotlinNullPointerException
	at y2k.joyreactor.services.ImageService$replaceToCache$1.call(ImageService.kt:46)
	at rx.internal.operators.OperatorMap$MapSubscriber.onNext(OperatorMap.java:66)
	at rx.internal.operators.OperatorMap$MapSubscriber.onNext(OperatorMap.java:74)
	at rx.internal.producers.SingleDelayedProducer.emit(SingleDelayedProducer.java:102)
	at rx.internal.producers.SingleDelayedProducer.setValue(SingleDelayedProducer.java:85)
	at rx.Single$1$1.onSuccess(Single.java:84)
	at y2k.joyreactor.common.ObservableExtensionsKt$ioSingle$1$1.call(ObservableExtensions.kt:82)
	at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
	at rx.internal.schedulers.ExecutorScheduler$ExecutorSchedulerWorker.run(ExecutorScheduler.java:104)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
	at java.lang.Thread.run(Thread.java:761)
Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: null
	at rx.internal.operators.OperatorMap$MapSubscriber.onNext(OperatorMap.java:70)
	... 10 more

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    at java.lang.Thread.run(Thread.java:838)
Caused by: java.lang.OutOfMemoryError
    at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:94)
    at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:145)
    at java.lang.StringBuffer.append(StringBuffer.java:219)
    at com.splunk.mint.network.io.InputStreamMonitor.updateBody(InputStreamMonitor.java:118)
    at com.splunk.mint.network.io.InputStreamMonitor.read(InputStreamMonitor.java:78)
    at kotlin.io.ByteStreamsKt.copyTo(IOStreams.kt:111)
    at kotlin.io.ByteStreamsKt.copyTo$default(IOStreams.kt:104)
    at y2k.joyreactor.platform.UpdateService$update$1.invoke(UpdateService.kt:44)
    at y2k.joyreactor.platform.UpdateService$update$1.invoke(UpdateService.kt:18)
    at y2k.joyreactor.common.ObservableExtensionsKt$ioObservable$1$1.call(ObservableExtensions.kt:26)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 7 more

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.
	at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:60)
	at rx.internal.schedulers.ExecutorScheduler$ExecutorSchedulerWorker.run(ExecutorScheduler.java:104)
	at android.os.Handler.handleCallback(Handler.java:743)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:150)
	at android.app.ActivityThread.main(ActivityThread.java:5546)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
Caused by: rx.exceptions.OnErrorNotImplementedException: timeout
	at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386)
	at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383)
	at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44)
	at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:157)
	at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
	at rx.internal.operators.OperatorFilter$FilterSubscriber.onError(OperatorFilter.java:87)
	at rx.observers.SerializedObserver.onError(SerializedObserver.java:158)
	at rx.observers.SerializedSubscriber.onError(SerializedSubscriber.java:79)
	at rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.innerError(OnSubscribeConcatMap.java:192)
	at rx.internal.operators.OnSubscribeConcatMap$ConcatMapInnerSubscriber.onError(OnSubscribeConcatMap.java:340)
	at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:276)
	at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:219)
	at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
	... 8 more
Caused by: java.net.SocketTimeoutException: timeout
	at okhttp3.internal.framed.FramedStream$StreamTimeout.newTimeoutException(FramedStream.java:600)
	at okhttp3.internal.framed.FramedStream$StreamTimeout.exitAndThrowIfTimedOut(FramedStream.java:608)
	at okhttp3.internal.framed.FramedStream$FramedDataSource.waitUntilReadable(FramedStream.java:379)
	at okhttp3.internal.framed.FramedStream$FramedDataSource.read(FramedStream.java:342)
	at okio.ForwardingSource.read(ForwardingSource.java:35)
	at okio.RealBufferedSource$1.read(RealBufferedSource.java:371)
	at java.io.InputStream.read(InputStream.java:162)
	at y2k.joyreactor.common.http.DefaultHttpClient.downloadToFile(DefaultHttpClient.kt:43)
	at y2k.joyreactor.common.http.DefaultHttpClient$downloadToFile$1.invoke(DefaultHttpClient.kt:30)
	at y2k.joyreactor.common.http.DefaultHttpClient$downloadToFile$1.invoke(DefaultHttpClient.kt:18)
	at y2k.joyreactor.common.ObservableExtensionsKt$ioCompletable$1$1.call(ObservableExtensions.kt:54)
	at rx.internal.schedulers.CachedThreadScheduler$EventLoopWorker$1.call(CachedThreadScheduler.java:220)
	at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
	at java.lang.Thread.run(Thread.java:833)

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NoClassDefFoundError: java.util.concurrent.ConcurrentHashMap$KeySetView
    at y2k.joyreactor.common.PersistentMap.flush(PersistentMap.kt:25)
    at y2k.joyreactor.http.CookieStorage.grab(CookieStorage.kt:31)
    at y2k.joyreactor.http.HttpClient.getDocument(HttpClient.kt:80)
    at y2k.joyreactor.services.requests.UserNameRequest$request$1.invoke(UserNameRequest.kt:14)
    at y2k.joyreactor.services.requests.UserNameRequest$request$1.invoke(UserNameRequest.kt:10)
    at y2k.joyreactor.common.ObservableExtensionsKt$ioObservable$1$1.call(ObservableExtensions.kt:26)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 7 more

Crash [0.9.20.c375f89]

Удалось "закрашить" приложение. Если переключаться между "Лента" и "Избранное" приложение закрывается.
И сама "Лента" кстати не открывается, всё время висит в избранном.
Nexus 7 (2013) 5.1.1.
crash.txt

Отключить RetroLambda

Убрать весть Java код, который использует retrolambda.
Удалить плагин из build.gradle для всех модулей.

InvalidOperationException Sequence contains no elements

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <0x00028>
at System.Reactive.PlatformServices.DefaultExceptionServices.Rethrow (System.Exception) <0x00023>
at System.Reactive.ExceptionHelpers.Throw (System.Exception) <0x0003b>
at System.Reactive.Stubs.<.cctor>b__1 (System.Exception) <0x00013>
at System.Reactive.AnonymousSafeObserver1<System.Collections.Generic.List1<JoyReactor.Core.Model.DTO.Comment>>.OnError (System.Exception) <0x0006f>
at System.Reactive.Concurrency.ObserveOn1/ObserveOnSink<System.Collections.Generic.List1<JoyReactor.Core.Model.DTO.Comment>>.OnErrorPosted (object) <0x00073>
at Android.App.SyncContext/c__AnonStorey0.<>m__0 () <0x00027>
at Java.Lang.Thread/RunnableImplementor.Run () <0x0003f>
at Java.Lang.IRunnableInvoker.n_Run (intptr,intptr) <0x0003b>
at (wrapper dynamic-method) object.88d9dc65-ebfe-4470-9b40-77c4eb0eacad (intptr,intptr) <0x0003b>

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:60)
    at rx.internal.schedulers.ExecutorScheduler$ExecutorSchedulerWorker.run(ExecutorScheduler.java:104)
    at android.os.Handler.handleCallback(Handler.java:605)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4503)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: rx.exceptions.OnErrorNotImplementedException: Unexpected code Response{protocol=http/1.1, code=500, message=Internal Server Error, url=https://rc.y2k.work/cache/fit?width=243&amp;height=227&amp;bgColor=ffffff&amp;quality=30&amp;isNorm=True}
    at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386)
    at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383)
    at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44)
    at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:157)
    at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
    at rx.internal.operators.OperatorFilter$FilterSubscriber.onError(OperatorFilter.java:87)
    at rx.observers.SerializedObserver.onError(SerializedObserver.java:158)
    at rx.observers.SerializedSubscriber.onError(SerializedSubscriber.java:79)
    at rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.innerError(OnSubscribeConcatMap.java:192)
    at rx.internal.operators.OnSubscribeConcatMap$ConcatMapInnerSubscriber.onError(OnSubscribeConcatMap.java:340)
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:276)
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:219)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 10 more
Caused by: java.io.IOException: Unexpected code Response{protocol=http/1.1, code=500, message=Internal Server Error, url=https://rc.y2k.work/cache/fit?width=243&amp;height=227&amp;bgColor=ffffff&amp;quality=30&amp;isNorm=True}
    at y2k.joyreactor.common.http.DefaultHttpClient.executeRequest(DefaultHttpClient.kt:79)
    at y2k.joyreactor.common.http.DefaultHttpClient.executeRequest$default(DefaultHttpClient.kt:69)
    at y2k.joyreactor.common.http.DefaultHttpClient.downloadToFile(DefaultHttpClient.kt:34)
    at y2k.joyreactor.common.http.DefaultHttpClient$downloadToFile$1.invoke(DefaultHttpClient.kt:30)
    at y2k.joyreactor.common.http.DefaultHttpClient$downloadToFile$1.invoke(DefaultHttpClient.kt:18)
    at y2k.joyreactor.common.ObservableExtensionsKt$ioCompletable$1$1.call(ObservableExtensions.kt:54)
    at rx.internal.schedulers.CachedThreadScheduler$EventLoopWorker$1.call(CachedThreadScheduler.java:220)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:150)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:60)
    at rx.internal.schedulers.ExecutorScheduler$ExecutorSchedulerWorker.run(ExecutorScheduler.java:104)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5525)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
Caused by: rx.exceptions.OnErrorNotImplementedException: Prepare failed.: status=0x1
    at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386)
    at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383)
    at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44)
    at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:157)
    at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
    at rx.exceptions.Exceptions.throwOrReport(Exceptions.java:204)
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:144)
    at rx.subjects.SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:225)
    at rx.subjects.PublishSubject.onNext(PublishSubject.java:114)
    at y2k.joyreactor.common.ObservableProperty$$special$$inlined$observable$1.afterChange(Delegates.kt:57)
    at kotlin.properties.ObservableProperty.setValue(ObservableProperty.kt:36)
    at y2k.joyreactor.common.ObservableProperty.setValue(ObservableProperty.kt)
    at y2k.joyreactor.common.ObservableProperty.plusAssign(ObservableProperty.kt:24)
    at y2k.joyreactor.viewmodel.VideoViewModel$1.invoke(VideoViewModel.kt:24)
    at y2k.joyreactor.viewmodel.VideoViewModel$1.invoke(VideoViewModel.kt:12)
    at y2k.joyreactor.common.ObservableExtensionsKt$sam$Action1$0605da30.call(ObservableExtensions.kt)
    at rx.Single$16.onNext(Single.java:1687)
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139)
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:227)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 8 more
Caused by: java.io.IOException: Prepare failed.: status=0x1
    at android.media.MediaPlayer._prepare(Native Method)
    at android.media.MediaPlayer.prepare(MediaPlayer.java:1163)
    at y2k.joyreactor.widget.MuteVideoView.play(MuteVideoView.kt:54)
    at y2k.joyreactor.common.BindingBuilder$muteVideoView$1.invoke(ViewBinding.kt:143)
    at y2k.joyreactor.common.BindingBuilder$muteVideoView$1.invoke(ViewBinding.kt:60)
    at y2k.joyreactor.common.ObservablePropertyKt$sam$Action1$fb5cd431.call(ObservableProperty.kt)
    at rx.internal.util.ActionSubscriber.onNext(ActionSubscriber.java:39)
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139)
    ... 21 more

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:60)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:818)
Caused by: rx.exceptions.OnErrorNotImplementedException: Only the original thread that created a view hierarchy can touch its views.
    at rx.Observable$27.onError(Observable.java:7923)
    at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:159)
    at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:146)
    at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54)
    at y2k.joyreactor.common.ObservableExtensionsKt$ioObservable$1$1.call(ObservableExtensions.kt:26)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 7 more
Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
    at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:7109)
    at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:1032)
    at android.view.View.requestLayout(View.java:17830)
    at android.view.View.requestLayout(View.java:17830)
    at android.view.View.requestLayout(View.java:17830)
    at android.view.View.requestLayout(View.java:17830)
    at android.view.View.requestLayout(View.java:17830)
    at android.view.View.requestLayout(View.java:17830)
    at android.support.v4.widget.DrawerLayout.requestLayout(DrawerLayout.java:1115)
    at android.view.View.requestLayout(View.java:17830)
    at android.view.View.requestLayout(View.java:17830)
    at android.view.View.requestLayout(View.java:17830)
    at android.view.View.requestLayout(View.java:17830)
    at android.view.View.requestLayout(View.java:17830)
    at android.view.ViewGroup.bringChildToFront(ViewGroup.java:1240)
    at android.view.View.bringToFront(View.java:10029)
    at android.support.v4.widget.SwipeRefreshLayout.setTargetOffsetTopAndBottom(SwipeRefreshLayout.java:1123)
    at android.support.v4.widget.SwipeRefreshLayout.setRefreshing(SwipeRefreshLayout.java:371)
    at y2k.joyreactor.PostListFragment$onCreateView$presenter$1.setBusy(PostListFragment.kt:36)
    at y2k.joyreactor.presenters.PostListPresenter.currentTagChanged(PostListPresenter.kt:27)
    at y2k.joyreactor.presenters.PostListPresenter.access$currentTagChanged(PostListPresenter.kt:14)
    at y2k.joyreactor.presenters.PostListPresenter$1.invoke(PostListPresenter.kt:20)
    at y2k.joyreactor.presenters.PostListPresenter$1.invoke(PostListPresenter.kt:14)
    at y2k.joyreactor.services.BroadcastService$DefaultMessenger$ActionObserver.update(BroadcastService.kt:65)
    at java.util.Observable.notifyObservers(Observable.java:138)
    at y2k.joyreactor.services.BroadcastService$DefaultMessenger$ObservableImpl.notifyObservers(BroadcastService.kt:73)
    at y2k.joyreactor.services.BroadcastService$DefaultMessenger.send(BroadcastService.kt:37)
    at y2k.joyreactor.services.BroadcastService.broadcast(BroadcastService.kt:14)
    at y2k.joyreactor.presenters.TagListPresenter$selectedFavorite$1.call(TagListPresenter.kt:37)
    at y2k.joyreactor.presenters.TagListPresenter$selectedFavorite$1.call(TagListPresenter.kt:12)
    at rx.Observable$27.onNext(Observable.java:7928)
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139)
    ... 10 more

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:60)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:818)
Caused by: rx.exceptions.OnErrorNotImplementedException
    at rx.Observable$27.onError(Observable.java:7923)
    at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:159)
    at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
    at rx.internal.operators.OperatorMap$1.onError(OperatorMap.java:48)
    at rx.exceptions.Exceptions.throwOrReport(Exceptions.java:187)
    at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:56)
    at y2k.joyreactor.common.ObservableExtensionsKt$ioObservable$1$1.call(ObservableExtensions.kt:26)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 7 more
Caused by: kotlin.KotlinNullPointerException
    at y2k.joyreactor.services.TagListService$getTagForFavorite$1.call(TagListService.kt:34)
    at y2k.joyreactor.services.TagListService$getTagForFavorite$1.call(TagListService.kt:14)
    at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54)
    ... 9 more
Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: null
    at rx.exceptions.Exceptions.throwOrReport(Exceptions.java:187)
    at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:56)
    ... 9 more

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.

java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NoClassDefFoundError: java.util.concurrent.ConcurrentHashMap$KeySetView
    at y2k.joyreactor.common.PersistentMap.flush(PersistentMap.kt:25)
    at y2k.joyreactor.http.CookieStorage.grab(CookieStorage.kt:31)
    at y2k.joyreactor.http.HttpClient.getDocument(HttpClient.kt:80)
    at y2k.joyreactor.services.requests.UserNameRequest$request$1.invoke(UserNameRequest.kt:14)
    at y2k.joyreactor.services.requests.UserNameRequest$request$1.invoke(UserNameRequest.kt:10)
    at y2k.joyreactor.common.ObservableExtensionsKt$ioObservable$1$1.call(ObservableExtensions.kt:26)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 7 more

NullReferenceException Object reference not set to an instance of an object

Приложение падает при попытки зума во время просмотра анимированной гифки

Stacktrace:
JoyReactor.Android.Model.DynamicImage.Translate(single,single)
JoyReactor.Android.Widget.LargeImageViewer.m__0(single,single)
JoyReactor.Android.Widget.LargeImageViewer/TouchDetector/Translate.HandlerTouchEvent(Android.Views.MotionEvent)
JoyReactor.Android.Widget.LargeImageViewer/TouchDetector/Router.HandlerTouchEvent(Android.Views.MotionEvent)
JoyReactor.Android.Widget.LargeImageViewer.OnTouchEvent(Android.Views.MotionEvent)
Android.Views.View.n_OnTouchEvent_Landroid_view_MotionEvent_(intptr,intptr,intptr)

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:60)
    at rx.internal.schedulers.ExecutorScheduler$ExecutorSchedulerWorker.run(ExecutorScheduler.java:104)
    at android.os.Handler.handleCallback(Handler.java:815)
    at android.os.Handler.dispatchMessage(Handler.java:104)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5631)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
Caused by: rx.exceptions.OnErrorNotImplementedException: Invalid index 20, size is 12
    at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386)
    at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383)
    at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44)
    at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:157)
    at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
    at rx.exceptions.Exceptions.throwOrReport(Exceptions.java:204)
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:144)
    at rx.subjects.SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:225)
    at rx.subjects.PublishSubject.onNext(PublishSubject.java:114)
    at y2k.joyreactor.common.ObservableProperty$$special$$inlined$observable$1.afterChange(Delegates.kt:57)
    at kotlin.properties.ObservableProperty.setValue(ObservableProperty.kt:36)
    at y2k.joyreactor.common.ObservableProperty.setValue(ObservableProperty.kt)
    at y2k.joyreactor.common.ObservableProperty.plusAssign(ObservableProperty.kt:24)
    at y2k.joyreactor.common.BindingBuilder$bind$1.invoke(ViewBinding.kt:229)
    at y2k.joyreactor.common.BindingBuilder$bind$1.invoke(ViewBinding.kt:60)
    at y2k.joyreactor.common.ObservablePropertyKt$sam$Action1$fb5cd431.call(ObservableProperty.kt)
    at rx.internal.util.ActionSubscriber.onNext(ActionSubscriber.java:39)
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139)
    at rx.subjects.SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:225)
    at rx.subjects.PublishSubject.onNext(PublishSubject.java:114)
    at y2k.joyreactor.common.ObservableProperty$$special$$inlined$observable$1.afterChange(Delegates.kt:57)
    at kotlin.properties.ObservableProperty.setValue(ObservableProperty.kt:36)
    at y2k.joyreactor.common.ObservableProperty.setValue(ObservableProperty.kt)
    at y2k.joyreactor.common.ObservableProperty.plusAssign(ObservableProperty.kt:24)
    at y2k.joyreactor.common.ObservableProperty$subscribe$sub$1.call(ObservableProperty.kt:39)
    at rx.internal.util.ActionSubscriber.onNext(ActionSubscriber.java:39)
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139)
    at rx.subjects.SubjectSubscriptionManager$SubjectObserver.onNext(SubjectSubscriptionManager.java:225)
    at rx.subjects.PublishSubject.onNext(PublishSubject.java:114)
    at y2k.joyreactor.common.ObservableProperty$$special$$inlined$observable$1.afterChange(Delegates.kt:57)
    at kotlin.properties.ObservableProperty.setValue(ObservableProperty.kt:36)
    at y2k.joyreactor.common.ObservableProperty.setValue(ObservableProperty.kt)
    at y2k.joyreactor.common.ObservableProperty.plusAssign(ObservableProperty.kt:24)
    at y2k.joyreactor.viewmodel.PostListViewModel$1.invoke(PostListViewModel.kt:30)
    at y2k.joyreactor.viewmodel.PostListViewModel$1.invoke(PostListViewModel.kt:13)
    at y2k.joyreactor.common.ObservableExtensionsKt$sam$Action1$0605da30.call(ObservableExtensions.kt)
    at rx.Single$16.onNext(Single.java:1687)
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139)
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:227)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 9 more
Caused by: java.lang.IndexOutOfBoundsException: Invalid index 20, size is 12
    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
    at java.util.ArrayList.add(ArrayList.java:147)
    at y2k.joyreactor.widget.PostListComponent$1.invoke(PostListComponent.kt:36)
    at y2k.joyreactor.widget.PostListComponent$1.invoke(PostListComponent.kt:17)
    at y2k.joyreactor.common.ObservablePropertyKt$sam$Action1$fb5cd431.call(ObservableProperty.kt)
    at rx.internal.util.ActionSubscriber.onNext(ActionSubscriber.java:39)
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139)
    ... 42 more

java.lang.ArrayIndexOutOfBoundsException: length=13; index=-1

java.lang.ArrayIndexOutOfBoundsException: length=13; index=-1
    at java.util.ArrayList.get(ArrayList.java:310)
    at y2k.joyreactor.PostAdapter$PostViewHolder$1.onClick(PostAdapter.kt:73)
    at android.view.View.performClick(View.java:4811)
    at android.view.View$PerformClick.run(View.java:20136)
    at android.os.Handler.handleCallback(Handler.java:815)
    at android.os.Handler.dispatchMessage(Handler.java:104)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5546)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)

kotlin.KotlinNullPointerException

kotlin.KotlinNullPointerException
    at y2k.joyreactor.PostActivity$Adapter$HeaderViewHolder.bind(PostActivity.kt:190)
    at y2k.joyreactor.PostActivity$Adapter.onBindViewHolder(PostActivity.kt:145)
    at y2k.joyreactor.PostActivity$Adapter.onBindViewHolder(PostActivity.kt:120)
    at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5217)
    at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5250)
    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4487)
    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4363)
    at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961)
    at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1370)
    at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333)
    at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:562)
    at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2900)
    at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071)
    at android.view.View.layout(View.java:14471)
    at android.view.ViewGroup.layout(ViewGroup.java:4562)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:452)
    at android.view.View.layout(View.java:14471)
    at android.view.ViewGroup.layout(ViewGroup.java:4562)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
    at android.view.View.layout(View.java:14471)
    at android.view.ViewGroup.layout(ViewGroup.java:4562)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:452)
    at android.view.View.layout(View.java:14471)
    at android.view.ViewGroup.layout(ViewGroup.java:4562)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
    at android.view.View.layout(View.java:14471)
    at android.view.ViewGroup.layout(ViewGroup.java:4562)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:452)
    at android.view.View.layout(View.java:14471)
    at android.view.ViewGroup.layout(ViewGroup.java:4562)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
    at android.view.View.layout(View.java:14471)
    at android.view.ViewGroup.layout(ViewGroup.java:4562)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:452)
    at android.view.View.layout(View.java:14471)
    at android.view.ViewGroup.layout(ViewGroup.java:4562)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1986)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1740)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1009)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5508)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
    at android.view.Choreographer.doCallbacks(Choreographer.java:562)
    at android.view.Choreographer.doFrame(Choreographer.java:532)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
    at android.os.Handler.handleCallback(Handler.java:730)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:213)
    at android.app.ActivityThread.main(ActivityThread.java:5225)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
    at dalvik.system.NativeStart.main(Native Method)

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:60)
    at rx.internal.schedulers.ExecutorScheduler$ExecutorSchedulerWorker.run(ExecutorScheduler.java:104)
    at android.os.Handler.handleCallback(Handler.java:810)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:189)
    at android.app.ActivityThread.main(ActivityThread.java:5529)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751)
Caused by: rx.exceptions.OnErrorNotImplementedException: timeout
    at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386)
    at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383)
    at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44)
    at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:157)
    at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:120)
    at rx.internal.operators.OperatorFilter$FilterSubscriber.onError(OperatorFilter.java:87)
    at rx.observers.SerializedObserver.onError(SerializedObserver.java:158)
    at rx.observers.SerializedSubscriber.onError(SerializedSubscriber.java:79)
    at rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.innerError(OnSubscribeConcatMap.java:192)
    at rx.internal.operators.OnSubscribeConcatMap$ConcatMapInnerSubscriber.onError(OnSubscribeConcatMap.java:340)
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:276)
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:219)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    ... 9 more
Caused by: java.net.SocketTimeoutException: timeout
    at okhttp3.internal.framed.FramedStream$StreamTimeout.newTimeoutException(FramedStream.java:600)
    at okhttp3.internal.framed.FramedStream$StreamTimeout.exitAndThrowIfTimedOut(FramedStream.java:608)
    at okhttp3.internal.framed.FramedStream.getResponseHeaders(FramedStream.java:142)
    at okhttp3.internal.http.Http2xStream.readResponseHeaders(Http2xStream.java:149)
    at okhttp3.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:723)
    at okhttp3.internal.http.HttpEngine.access$200(HttpEngine.java:81)
    at okhttp3.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:708)
    at y2k.joyreactor.common.http.DefaultHttpClient$client$2.intercept(DefaultHttpClient.kt:26)
    at okhttp3.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:681)
    at y2k.joyreactor.common.http.DefaultHttpClient$client$1.intercept(DefaultHttpClient.kt:24)
    at okhttp3.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:681)
    at okhttp3.internal.http.HttpEngine.readResponse(HttpEngine.java:563)
    at okhttp3.RealCall.getResponse(RealCall.java:241)
    at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:198)
    at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:160)
    at okhttp3.RealCall.execute(RealCall.java:57)
    at y2k.joyreactor.common.http.DefaultHttpClient.executeRequest(DefaultHttpClient.kt:76)
    at y2k.joyreactor.common.http.DefaultHttpClient.executeRequest$default(DefaultHttpClient.kt:69)
    at y2k.joyreactor.common.http.DefaultHttpClient.downloadToFile(DefaultHttpClient.kt:34)
    at y2k.joyreactor.common.http.DefaultHttpClient$downloadToFile$1.invoke(DefaultHttpClient.kt:30)
    at y2k.joyreactor.common.http.DefaultHttpClient$downloadToFile$1.invoke(DefaultHttpClient.kt:18)
    at y2k.joyreactor.common.ObservableExtensionsKt$ioCompletable$1$1.call(ObservableExtensions.kt:54)
    at rx.internal.schedulers.CachedThreadScheduler$EventLoopWorker$1.call(CachedThreadScheduler.java:220)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:818)

Кнопка назад [0.9.20.c375f89]

При просмотре поста не работает кнопка (стрелка) назад.
Вот лог, клацания на кнопку, возможно поможет.
Nexus 7 (2013), 5.1.1.
back.txt

Убрать остановку фоновой музыки при воспроизведение гифок

У VideoView внутри есть код который кидает broadcast (до версии 5.0) или используется AudioManager для захвата фокуса (5.0 и выше).
К сожаления он находится внутри приватного метода и его нельзя отделить от другого полезного кода.

Придется отказаться от VideoView и сделать свой конрол на основе SurfaceView + MediaPlayer для воспроизведения mp4 (gif).

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.