mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-09-10 21:53:14 +02:00
Remove unused SharedData object
This commit is contained in:
parent
3247a83d68
commit
0f7923a688
@ -31,7 +31,7 @@ import eu.kanade.tachiyomi.data.notification.Notifications
|
|||||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||||
import eu.kanade.tachiyomi.source.SourceNotFoundException
|
import eu.kanade.tachiyomi.source.SourceNotFoundException
|
||||||
import eu.kanade.tachiyomi.util.chop
|
import eu.kanade.tachiyomi.util.chop
|
||||||
import eu.kanade.tachiyomi.util.getUriCompat
|
import eu.kanade.tachiyomi.util.storage.getUriCompat
|
||||||
import eu.kanade.tachiyomi.util.isServiceRunning
|
import eu.kanade.tachiyomi.util.isServiceRunning
|
||||||
import eu.kanade.tachiyomi.util.notificationManager
|
import eu.kanade.tachiyomi.util.notificationManager
|
||||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||||
|
@ -62,7 +62,7 @@ import eu.kanade.tachiyomi.ui.main.MainActivity
|
|||||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||||
import eu.kanade.tachiyomi.ui.webview.WebViewActivity
|
import eu.kanade.tachiyomi.ui.webview.WebViewActivity
|
||||||
import eu.kanade.tachiyomi.util.doOnApplyWindowInsets
|
import eu.kanade.tachiyomi.util.doOnApplyWindowInsets
|
||||||
import eu.kanade.tachiyomi.util.getUriCompat
|
import eu.kanade.tachiyomi.util.storage.getUriCompat
|
||||||
import eu.kanade.tachiyomi.util.marginBottom
|
import eu.kanade.tachiyomi.util.marginBottom
|
||||||
import eu.kanade.tachiyomi.util.snack
|
import eu.kanade.tachiyomi.util.snack
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
|
@ -1,55 +0,0 @@
|
|||||||
package eu.kanade.tachiyomi.util
|
|
||||||
|
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This singleton is used to share some objects within the application, useful to communicate
|
|
||||||
* different parts of the app.
|
|
||||||
*
|
|
||||||
* It stores the objects in a map using the type of the object as key, so that only one object per
|
|
||||||
* class is stored at once.
|
|
||||||
*/
|
|
||||||
object SharedData {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Map where the objects are saved.
|
|
||||||
*/
|
|
||||||
val map = HashMap<Class<*>, Any>()
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Publish an object to the shared data.
|
|
||||||
*
|
|
||||||
* @param data the object to put.
|
|
||||||
*/
|
|
||||||
fun <T : Any> put(data: T) {
|
|
||||||
map[data.javaClass] = data
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves an object from the shared data.
|
|
||||||
*
|
|
||||||
* @param classType the class of the object to retrieve.
|
|
||||||
* @return an object of type T or null if it's not found.
|
|
||||||
*/
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
|
||||||
fun <T : Any> get(classType: Class<T>) = map[classType] as? T
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes an object from the shared data.
|
|
||||||
*
|
|
||||||
* @param classType the class of the object to remove.
|
|
||||||
* @return the object removed, null otherwise.
|
|
||||||
*/
|
|
||||||
fun <T : Any> remove(classType: Class<T>) = get(classType)?.apply { map.remove(classType) }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns an object from the shared data or introduces a new one with the given function.
|
|
||||||
*
|
|
||||||
* @param classType the class of the object to retrieve.
|
|
||||||
* @param fn the function to execute if it didn't find the object.
|
|
||||||
* @return an object of type T.
|
|
||||||
*/
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
|
||||||
inline fun <T : Any> getOrPut(classType: Class<T>, fn: () -> T) = map.getOrPut(classType, fn) as T
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user