Fix MangaDetailsPresenter sharing
parent
a2f09d8763
commit
84ef2af82f
@ -0,0 +1,25 @@
|
||||
package org.koitharu.kotatsu.ui.common
|
||||
|
||||
import android.util.ArrayMap
|
||||
import moxy.MvpPresenter
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
abstract class SharedPresenterHolder<T : MvpPresenter<*>> {
|
||||
|
||||
private val cache = ArrayMap<Int, WeakReference<T>>(3)
|
||||
|
||||
fun getInstance(key: Int): T {
|
||||
var instance = cache[key]?.get()
|
||||
if (instance == null) {
|
||||
instance = onCreatePresenter(key)
|
||||
cache[key] = WeakReference(instance)
|
||||
}
|
||||
return instance
|
||||
}
|
||||
|
||||
fun clear(key: Int) {
|
||||
cache.remove(key)
|
||||
}
|
||||
|
||||
protected abstract fun onCreatePresenter(key: Int): T
|
||||
}
|
||||
Loading…
Reference in New Issue