
Closes #1857 Co-authored-by: jmir1 <jmir1@users.noreply.github.com> (cherry picked from commit 0f42b9f1544b188362d1c0046c8ff853827ed270) # Conflicts: # app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBackupScreen.kt # app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupConst.kt # app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt # app/src/main/java/eu/kanade/tachiyomi/data/backup/models/Backup.kt
30 lines
1010 B
Kotlin
30 lines
1010 B
Kotlin
package eu.kanade.tachiyomi.source
|
|
|
|
import android.app.Application
|
|
import android.content.Context
|
|
import android.content.SharedPreferences
|
|
import uy.kohesive.injekt.Injekt
|
|
import uy.kohesive.injekt.api.get
|
|
|
|
interface ConfigurableSource : Source {
|
|
|
|
/**
|
|
* Gets instance of [SharedPreferences] scoped to the specific source.
|
|
*
|
|
* @since extensions-lib 1.5
|
|
*/
|
|
fun getSourcePreferences(): SharedPreferences =
|
|
Injekt.get<Application>().getSharedPreferences(preferenceKey(), Context.MODE_PRIVATE)
|
|
|
|
fun setupPreferenceScreen(screen: PreferenceScreen)
|
|
}
|
|
|
|
fun ConfigurableSource.preferenceKey(): String = "source_$id"
|
|
|
|
// TODO: use getSourcePreferences once all extensions are on ext-lib 1.5
|
|
fun ConfigurableSource.sourcePreferences(): SharedPreferences =
|
|
Injekt.get<Application>().getSharedPreferences(preferenceKey(), Context.MODE_PRIVATE)
|
|
|
|
fun sourcePreferences(key: String): SharedPreferences =
|
|
Injekt.get<Application>().getSharedPreferences(key, Context.MODE_PRIVATE)
|