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 @@
-
+
-#### ⚠️ 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"