|
22 | 22 | package uk.co.glass_software.android.shared_preferences |
23 | 23 |
|
24 | 24 | import android.content.Context |
25 | | -import uk.co.glass_software.android.boilerplate.utils.log.Logger |
26 | | -import uk.co.glass_software.android.shared_preferences.encryption.manager.EncryptionManager |
27 | 25 | import uk.co.glass_software.android.shared_preferences.persistence.base.KeyValueStore |
28 | 26 | import uk.co.glass_software.android.shared_preferences.persistence.base.UniqueKeyProvider |
29 | 27 | import uk.co.glass_software.android.shared_preferences.persistence.base.ValueClassProvider |
30 | 28 | import uk.co.glass_software.android.shared_preferences.persistence.preferences.StoreEntry |
31 | | -import uk.co.glass_software.android.shared_preferences.utils.StoreMode |
32 | | -import uk.co.glass_software.android.shared_preferences.utils.StoreMode.* |
33 | 29 |
|
34 | | -class StoreEntryFactory internal constructor(logger: Logger, |
35 | | - val plainTextStore: KeyValueStore, |
36 | | - val encryptedStore: KeyValueStore, |
37 | | - val lenientStore: KeyValueStore, |
38 | | - val forgetfulStore: KeyValueStore, |
39 | | - val encryptionManager: EncryptionManager?) { |
40 | | - init { |
41 | | - logger.d( |
42 | | - this, |
43 | | - "Encryption supported: ${if (encryptionManager?.isEncryptionSupported == true) "TRUE" else "FALSE"}" |
44 | | - ) |
45 | | - } |
| 30 | +class StoreEntryFactory internal constructor(val store: KeyValueStore) { |
46 | 31 |
|
47 | 32 | fun <C> open(key: String, |
48 | | - mode: StoreMode, |
49 | 33 | valueClass: Class<C>): StoreEntry<C> = |
50 | | - when (mode) { |
51 | | - PLAIN_TEXT -> plainTextStore |
52 | | - ENCRYPTED -> encryptedStore |
53 | | - LENIENT -> lenientStore |
54 | | - FORGETFUL -> forgetfulStore |
55 | | - }.let { |
56 | | - open( |
57 | | - it, |
58 | | - object : UniqueKeyProvider { |
59 | | - override val uniqueKey = key |
60 | | - }, |
61 | | - object : ValueClassProvider<C> { |
62 | | - override val valueClass = valueClass |
63 | | - } |
64 | | - ) |
65 | | - } |
| 34 | + |
| 35 | + open( |
| 36 | + store, |
| 37 | + object : UniqueKeyProvider { |
| 38 | + override val uniqueKey = key |
| 39 | + }, |
| 40 | + object : ValueClassProvider<C> { |
| 41 | + override val valueClass = valueClass |
| 42 | + } |
| 43 | + ) |
66 | 44 |
|
67 | 45 | private fun <C> open(store: KeyValueStore, |
68 | 46 | keyProvider: UniqueKeyProvider, |
69 | 47 | valueClassProvider: ValueClassProvider<C>) = |
70 | 48 | StoreEntry(store, keyProvider, valueClassProvider) |
71 | 49 |
|
72 | 50 | companion object { |
73 | | - |
74 | | - const val DEFAULT_PLAIN_TEXT_PREFERENCE_NAME = "plain_text_store" |
75 | | - const val DEFAULT_ENCRYPTED_PREFERENCE_NAME = "encrypted_store" |
76 | | - |
77 | | - fun buildDefault(context: Context) = builder(context).build() |
78 | | - |
79 | 51 | fun builder(context: Context) = StoreEntryFactoryBuilder( |
80 | 52 | context.applicationContext, |
81 | 53 | BuildConfig.DEBUG |
|
0 commit comments