Remove unused SharedData object

This commit is contained in:
arkon 2020-02-02 22:04:20 -05:00 committed by Jay
parent 3247a83d68
commit 0f7923a688
3 changed files with 2 additions and 57 deletions

View file

@ -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

View file

@ -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

View file

@ -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
}