@@ -6,10 +6,8 @@ import android.view.View
66import android.view.ViewGroup
77import androidx.annotation.IntDef
88import androidx.core.view.isVisible
9- import androidx.lifecycle.Lifecycle
10- import androidx.lifecycle.LifecycleObserver
9+ import androidx.lifecycle.DefaultLifecycleObserver
1110import androidx.lifecycle.LifecycleOwner
12- import androidx.lifecycle.OnLifecycleEvent
1311import androidx.recyclerview.widget.LinearLayoutManager
1412import androidx.recyclerview.widget.LinearSmoothScroller
1513import androidx.recyclerview.widget.LinearSnapHelper
@@ -30,6 +28,7 @@ import com.hoc.comicapp.ui.home.HomeListItem.HeaderType.MOST_VIEWED
3028import com.hoc.comicapp.ui.home.HomeListItem.HeaderType.NEWEST
3129import com.hoc.comicapp.ui.home.HomeListItem.HeaderType.UPDATED
3230import com.hoc.comicapp.utils.mapNotNull
31+ import com.hoc.comicapp.utils.unit
3332import com.hoc081098.viewbindingdelegate.inflateViewBinding
3433import com.jakewharton.rxbinding4.recyclerview.scrollStateChanges
3534import com.jakewharton.rxbinding4.view.clicks
@@ -89,18 +88,18 @@ class HomeAdapter(
8988 private val clickComicS = PublishRelay .create<_HomeClickEvent >()
9089
9190 // Retry observables
92- val newestRetryObservable = newestRetryS.throttleFirst(500 , TimeUnit .MILLISECONDS )!!
93- val mostViewedRetryObservable = mostViewedRetryS.throttleFirst(500 , TimeUnit .MILLISECONDS )!!
94- val updatedRetryObservable = updatedRetryS.throttleFirst(500 , TimeUnit .MILLISECONDS )!!
91+ val newestRetryObservable: Observable < Unit > = newestRetryS.throttleFirst(500 , TimeUnit .MILLISECONDS )
92+ val mostViewedRetryObservable: Observable < Unit > = mostViewedRetryS.throttleFirst(500 , TimeUnit .MILLISECONDS )
93+ val updatedRetryObservable: Observable < Unit > = updatedRetryS.throttleFirst(500 , TimeUnit .MILLISECONDS )
9594
9695 // Click observables
97- val clickComicObservable = Observable .mergeArray(
96+ val clickComicObservable: Observable < HomeClickEvent > = Observable .mergeArray(
9897 newestAdapter.clickComicObservable,
9998 mostViewedAdapter.clickComicObservable,
10099 clickComicS,
101100 )
102101 .map(::toHomeClickEvent)
103- .doOnNext { Timber .d(" [*] Click comic $it " ) }!!
102+ .doOnNext { Timber .d(" [*] Click comic $it " ) }
104103
105104 override fun onCreateViewHolder (parent : ViewGroup , @ViewType viewType : Int ): VH {
106105 return when (viewType) {
@@ -207,11 +206,10 @@ class HomeAdapter(
207206 }
208207
209208 lifecycleOwner.lifecycle.addObserver(
210- object : LifecycleObserver {
209+ object : DefaultLifecycleObserver {
211210 var disposable: Disposable ? = null
212211
213- @OnLifecycleEvent(Lifecycle .Event .ON_START )
214- private fun onCreate () {
212+ override fun onCreate (owner : LifecycleOwner ) {
215213 disposable = startStopAutoScrollS
216214 .doOnNext { Timber .d(" [###] [1] $it " ) }
217215 .concatMap {
@@ -263,18 +261,16 @@ class HomeAdapter(
263261 Timber .d(" [>>>] ON_CREATE" )
264262 }
265263
266- @OnLifecycleEvent(Lifecycle .Event .ON_RESUME )
267- private fun onResume () = startStopAutoScrollS.accept(true )
264+ override fun onResume (owner : LifecycleOwner ) = startStopAutoScrollS.accept(true )
268265 .also { Timber .d(" [>>>] ON_RESUME -> start" ) }
269266
270- @OnLifecycleEvent(Lifecycle .Event .ON_PAUSE )
271- private fun onPause () = startStopAutoScrollS.accept(false )
267+ override fun onPause (owner : LifecycleOwner ) = startStopAutoScrollS.accept(false )
272268 .also { Timber .d(" [>>>] ON_PAUSE -> stop" ) }
273269
274- @OnLifecycleEvent(Lifecycle .Event .ON_STOP )
275- private fun onDestroy () = disposable?.dispose()
270+ override fun onDestroy (owner : LifecycleOwner ) = disposable?.dispose()
276271 .also { lifecycleOwner.lifecycle.removeObserver(this ) }
277272 .also { Timber .d(" [>>>] ON_DESTROY -> disposed" ) }
273+ .unit
278274 }
279275 )
280276 }
0 commit comments