diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/SharedData.kt b/app/src/main/java/eu/kanade/tachiyomi/util/SharedData.kt deleted file mode 100644 index f557030af..000000000 --- a/app/src/main/java/eu/kanade/tachiyomi/util/SharedData.kt +++ /dev/null @@ -1,55 +0,0 @@ -package eu.kanade.tachiyomi.util - -import java.util.HashMap - -/** - * 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, Any>() - - /** - * Publish an object to the shared data. - * - * @param data the object to put. - */ - fun 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 get(classType: Class) = 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 remove(classType: Class) = 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 getOrPut(classType: Class, fn: () -> T) = map.getOrPut(classType, fn) as T - -}