aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/src/androidTest/kotlin/ca/allanwang/kau/kpref/KPrefTest.kt26
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/email/EmailBuilder.kt7
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefDelegate.kt4
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefTransaction.kt8
4 files changed, 29 insertions, 16 deletions
diff --git a/core/src/androidTest/kotlin/ca/allanwang/kau/kpref/KPrefTest.kt b/core/src/androidTest/kotlin/ca/allanwang/kau/kpref/KPrefTest.kt
index e806a3f..2a9263a 100644
--- a/core/src/androidTest/kotlin/ca/allanwang/kau/kpref/KPrefTest.kt
+++ b/core/src/androidTest/kotlin/ca/allanwang/kau/kpref/KPrefTest.kt
@@ -16,40 +16,46 @@ import kotlin.test.assertTrue
*/
@RunWith(AndroidJUnit4::class)
@MediumTest
-class ChangelogTest {
+class KPrefTest {
lateinit var pref: TestPref
class TestPref : KPref() {
+
init {
initialize(InstrumentationRegistry.getTargetContext(), "kpref_test_${System.currentTimeMillis()}")
}
- var one: Int by kpref("one", 1)
+ var one by kpref("one", 1)
+
+ var two by kpref("two", 2f)
- var `true`: Boolean by kpref("true", true)
+ var `true` by kpref("true", true)
- var hello: String by kpref("hello", "hello")
+ var hello by kpref("hello", "hello")
- var set: StringSet by kpref("set", setOf("po", "ta", "to"))
+ var set by kpref("set", setOf("po", "ta", "to"))
- val oneShot: Boolean by kprefSingle("asdf")
+ val oneShot by kprefSingle("asdf")
}
@Before
fun init() {
pref = TestPref()
+ pref.sp.edit().clear().commit()
}
@Test
fun getDefaults() {
assertEquals(1, pref.one)
+ assertEquals(2f, pref.two)
assertEquals(true, pref.`true`)
assertEquals("hello", pref.hello)
assertEquals(3, pref.set.size)
assertTrue(pref.set.contains("po"))
assertTrue(pref.set.contains("ta"))
assertTrue(pref.set.contains("to"))
+ assertEquals(0, pref.sp.all.size, "Defaults should not be set automatically")
}
@Test
@@ -60,6 +66,7 @@ class ChangelogTest {
pref.hello = "goodbye"
assertEquals("goodbye", pref.hello)
assertEquals(pref.hello, pref.sp.getString("hello", "hello"))
+ assertEquals(2, pref.sp.all.size)
}
@SuppressLint("CommitPrefEdits")
@@ -67,12 +74,13 @@ class ChangelogTest {
fun reset() {
pref.one = 2
assertEquals(2, pref.one)
+ assertEquals(6, pref.prefMap.size, "Prefmap does not have all elements")
pref.reset() //only invalidates our lazy delegate; doesn't change the actual pref
- assertEquals(2, pref.one)
+ assertEquals(2, pref.one, "Kpref did not properly fetch from shared prefs")
pref.sp.edit().putInt("one", -1).commit()
- assertEquals(2, pref.one) //our lazy delegate still retains the old value
+ assertEquals(2, pref.one, "Lazy kpref should still retain old value")
pref.reset()
- assertEquals(-1, pref.one) //back in sync with sp
+ assertEquals(-1, pref.one, "Kpref did not refetch from shared prefs upon reset")
}
diff --git a/core/src/main/kotlin/ca/allanwang/kau/email/EmailBuilder.kt b/core/src/main/kotlin/ca/allanwang/kau/email/EmailBuilder.kt
index c94b06d..dbdcf09 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/email/EmailBuilder.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/email/EmailBuilder.kt
@@ -69,9 +69,14 @@ class EmailBuilder(val email: String, val subject: String) {
if (appInfo) {
try {
val appInfo = context.packageManager.getPackageInfo(context.packageName, 0)
+ val versionCode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ appInfo.longVersionCode.toString()
+ } else {
+ appInfo.versionCode.toString()
+ }
emailBuilder.append("\nApp: ").append(context.packageName)
.append("\nApp Version Name: ").append(appInfo.versionName)
- .append("\nApp Version Code: ").append(appInfo.longVersionCode).append("\n")
+ .append("\nApp Version Code: ").append(versionCode).append("\n")
} catch (e: PackageManager.NameNotFoundException) {
KL.e { "EmailBuilder packageInfo not found" }
}
diff --git a/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefDelegate.kt b/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefDelegate.kt
index 2630884..b80479e 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefDelegate.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefDelegate.kt
@@ -21,8 +21,8 @@ fun KPref.kpref(key: String, fallback: Int, postSetter: (value: Int) -> Unit = {
fun KPref.kpref(key: String, fallback: Long, postSetter: (value: Long) -> Unit = {}) =
KPrefDelegate(key, fallback, this, KPrefLongTransaction, postSetter)
-fun KPref.kpref(key: String, fallback: Set<String>?, postSetter: (value: Set<String>) -> Unit = {}) =
- KPrefDelegate(key, fallback, this, KPrefSetTransaction) { postSetter(it ?: emptySet()) }
+fun KPref.kpref(key: String, fallback: Set<String>, postSetter: (value: Set<String>) -> Unit = {}) =
+ KPrefDelegate(key, fallback, this, KPrefSetTransaction, postSetter)
fun KPref.kpref(key: String, fallback: String, postSetter: (value: String) -> Unit = {}) =
KPrefDelegate(key, fallback, this, KPrefStringTransaction, postSetter)
diff --git a/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefTransaction.kt b/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefTransaction.kt
index d02cf06..773d208 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefTransaction.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/kpref/KPrefTransaction.kt
@@ -52,11 +52,11 @@ internal object KPrefStringTransaction : KPrefTransaction<String> {
}
}
-internal object KPrefSetTransaction : KPrefTransaction<Set<String>?> {
- override fun get(prefs: SharedPreferences, key: String, fallback: Set<String>?) =
- prefs.getStringSet(key, fallback)
+internal object KPrefSetTransaction : KPrefTransaction<Set<String>> {
+ override fun get(prefs: SharedPreferences, key: String, fallback: Set<String>) =
+ prefs.getStringSet(key, fallback)!!
- override fun set(editor: SharedPreferences.Editor, key: String, data: Set<String>?) {
+ override fun set(editor: SharedPreferences.Editor, key: String, data: Set<String>) {
editor.putStringSet(key, data)
}
}