diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index ac2cf9c..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -github: cioccarellia -custom: https://paypal.me/andreacioccarelli \ No newline at end of file diff --git a/README.md b/README.md index 5bb1b11..d4ba829 100755 --- a/README.md +++ b/README.md @@ -7,19 +7,18 @@ Download from MavenCentral CircleCI Codacy - Kotlin + Kotlin Android Min Sdk Android Compile Version License

-#### ⚠️ since 2.2.4 ksprefs has been moved to mavenCentral. The publishing coordinates have changed.
Gradle ```gradle dependencies { - implementation 'com.github.cioccarellia:ksprefs:2.2.4' + implementation 'com.github.cioccarellia:ksprefs:2.2.5' } ```
@@ -28,7 +27,7 @@ dependencies { ```gradle dependencies { - implementation("com.github.cioccarellia:ksprefs:2.2.4") + implementation("com.github.cioccarellia:ksprefs:2.2.5") } ``` @@ -39,7 +38,7 @@ dependencies { com.github.cioccarellia ksprefs - 2.2.4 + 2.2.5 pom ``` diff --git a/build.gradle b/build.gradle index 1cafdf4..e5d445d 100755 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ apply from: rootProject.file("gradle/versions_plugin_config.gradle") apply plugin: 'io.codearte.nexus-staging' buildscript { - ext.kotlin_version = '1.4.30' + ext.kotlin_version = '1.4.32' apply from: rootProject.file("dependencies.gradle") repositories { diff --git a/library/src/main/kotlin/com/cioccarellia/ksprefs/KsPrefs.kt b/library/src/main/kotlin/com/cioccarellia/ksprefs/KsPrefs.kt index 22373cb..f21a9bb 100644 --- a/library/src/main/kotlin/com/cioccarellia/ksprefs/KsPrefs.kt +++ b/library/src/main/kotlin/com/cioccarellia/ksprefs/KsPrefs.kt @@ -287,4 +287,11 @@ class KsPrefs( ) { dispatcher.remove(key) } + + /** + * Calls the [clear()] method on [Shared Preferences][SharedPreferences], and removes all entries. + * */ + fun clear() { + dispatcher.clear() + } } \ No newline at end of file diff --git a/library/src/main/kotlin/com/cioccarellia/ksprefs/config/KspConfig.kt b/library/src/main/kotlin/com/cioccarellia/ksprefs/config/KspConfig.kt index 135188d..e1f3b87 100644 --- a/library/src/main/kotlin/com/cioccarellia/ksprefs/config/KspConfig.kt +++ b/library/src/main/kotlin/com/cioccarellia/ksprefs/config/KspConfig.kt @@ -30,7 +30,7 @@ data class KspConfig @RestrictTo(RestrictTo.Scope.LIBRARY) constructor( @IntRange(from = 0x0000, to = 0x0010) var mode: Int = Defaults.MODE, var charset: Charset = Defaults.CHARSET, - var xmlPrefix: String = Defaults.XMLPREFIX, + var xmlPrefix: String = Defaults.XML_PREFIX, var autoSave: AutoSavePolicy = Defaults.AUTO_SAVE_POLICY, var commitStrategy: CommitStrategy = Defaults.COMMIT_STRATEGY, diff --git a/library/src/main/kotlin/com/cioccarellia/ksprefs/defaults/Defaults.kt b/library/src/main/kotlin/com/cioccarellia/ksprefs/defaults/Defaults.kt index 466b4da..79ca760 100644 --- a/library/src/main/kotlin/com/cioccarellia/ksprefs/defaults/Defaults.kt +++ b/library/src/main/kotlin/com/cioccarellia/ksprefs/defaults/Defaults.kt @@ -32,7 +32,7 @@ internal object Defaults { /** Charset */ val CHARSET = Charsets.UTF_8 - val XMLPREFIX = "ksp_" + val XML_PREFIX = "ksp_" /** Saving */ val AUTO_SAVE_POLICY = AutoSavePolicy.AUTOMATIC diff --git a/library/src/main/kotlin/com/cioccarellia/ksprefs/dispatcher/KspDispatcher.kt b/library/src/main/kotlin/com/cioccarellia/ksprefs/dispatcher/KspDispatcher.kt index 0d6c790..0181e4a 100644 --- a/library/src/main/kotlin/com/cioccarellia/ksprefs/dispatcher/KspDispatcher.kt +++ b/library/src/main/kotlin/com/cioccarellia/ksprefs/dispatcher/KspDispatcher.kt @@ -104,4 +104,7 @@ internal class KspDispatcher( @PublishedApi internal fun remove(key: String) = enclosure.remove(key) + + @PublishedApi + internal fun clear() = enclosure.clear() } \ No newline at end of file diff --git a/library/src/main/kotlin/com/cioccarellia/ksprefs/enclosure/KspEnclosure.kt b/library/src/main/kotlin/com/cioccarellia/ksprefs/enclosure/KspEnclosure.kt index 667c63e..03b4651 100644 --- a/library/src/main/kotlin/com/cioccarellia/ksprefs/enclosure/KspEnclosure.kt +++ b/library/src/main/kotlin/com/cioccarellia/ksprefs/enclosure/KspEnclosure.kt @@ -32,19 +32,19 @@ import com.cioccarellia.ksprefs.extensions.* internal class KspEnclosure( private val namespace: String, context: Context, - internal var sharedReader: Reader = context.sharedPrefs(namespace), + internal var sharedReader: Reader = context.sharedprefs(namespace), internal val engine: Engine = EnginePicker.select(context) ) { private inline val defaultCommitStrategy get() = KsPrefs.config.commitStrategy - private inline fun deriveVal( + private inline fun deriveValue( value: ByteArray ): ByteArray = engine.derive( Transmission(value) ).payload - private inline fun integrateVal( + private inline fun integrateValue( value: ByteArray ): ByteArray = engine.integrate( Transmission(value) @@ -59,13 +59,13 @@ internal class KspEnclosure( internal fun read( key: String, fallback: ByteArray - ) = integrateVal( - sharedReader.read(deriveKey(key), deriveVal(fallback)) + ) = integrateValue( + sharedReader.read(deriveKey(key), deriveValue(fallback)) ) internal fun readUnsafe( key: String - ) = integrateVal( + ) = integrateValue( sharedReader.readOrThrow(deriveKey(key)) ) @@ -74,7 +74,7 @@ internal class KspEnclosure( value: ByteArray, strategy: CommitStrategy ) = with(sharedReader.edit()) { - write(deriveKey(key), deriveVal(value)) + write(deriveKey(key), deriveValue(value)) finalize(strategy) } @@ -96,4 +96,9 @@ internal class KspEnclosure( delete(deriveKey(key)) finalize(defaultCommitStrategy) } + + internal fun clear() = with(sharedReader.edit()) { + clear() + finalize(commitStrategy = CommitStrategy.APPLY) + } } \ No newline at end of file diff --git a/library/src/main/kotlin/com/cioccarellia/ksprefs/extensions/ContextExts.kt b/library/src/main/kotlin/com/cioccarellia/ksprefs/extensions/ContextExts.kt index f47aeed..5fb24b2 100644 --- a/library/src/main/kotlin/com/cioccarellia/ksprefs/extensions/ContextExts.kt +++ b/library/src/main/kotlin/com/cioccarellia/ksprefs/extensions/ContextExts.kt @@ -20,9 +20,9 @@ import androidx.annotation.RestrictTo import com.cioccarellia.ksprefs.KsPrefs @RestrictTo(RestrictTo.Scope.LIBRARY) -internal fun Context.sharedPrefs(namespace: String): Reader = try { - val actualStorageFileName = "${KsPrefs.config.xmlPrefix}$namespace" +internal fun Context.sharedprefs(namespace: String, prefix: String = KsPrefs.config.xmlPrefix): Reader = try { + val actualStorageFileName = "${prefix}$namespace" getSharedPreferences(actualStorageFileName, KsPrefs.config.mode)!! } catch (knpe: KotlinNullPointerException) { - throw IllegalStateException("Could not get SharedPreferences instance") + throw IllegalStateException("Could not create SharedPreferences instance") } \ No newline at end of file diff --git a/library_info.gradle b/library_info.gradle index ed42a68..2c2c7c9 100755 --- a/library_info.gradle +++ b/library_info.gradle @@ -21,8 +21,8 @@ ext.library = [ artifact : "ksprefs", publish_group : "com.github.cioccarellia", - publish_version : "2.2.4", - publish_version_code: 224, + publish_version : "2.2.5", + publish_version_code: 225, description : "Kotlin SharedPreferences, Simplified", website : "https://github.com/cioccarellia/ksprefs" diff --git a/test/src/main/kotlin/com/cioccarellia/ksprefsample/activities/batch/BatchActivity.kt b/test/src/main/kotlin/com/cioccarellia/ksprefsample/activities/batch/BatchActivity.kt index e7a78d2..01fd704 100644 --- a/test/src/main/kotlin/com/cioccarellia/ksprefsample/activities/batch/BatchActivity.kt +++ b/test/src/main/kotlin/com/cioccarellia/ksprefsample/activities/batch/BatchActivity.kt @@ -110,6 +110,7 @@ class BatchActivity : AppCompatActivity() { withContext(Dispatchers.Default) { for (i in 0..n) { prefs.expose().edit().putString("dfu-$i", i.toString()).apply() + withContext(Dispatchers.Main) { progressDfu.progress++ defaultTitle.text = "SharedPreferences.edit() -> $i"