Merge "Fix the crash with DataStore R8. I think this is happening because protobuf-lite uses reflection and r8 thinks the fields are unused." into androidx-master-dev
diff --git a/datastore/datastore-preferences/build.gradle b/datastore/datastore-preferences/build.gradle
index a4ba37e..468c230 100644
--- a/datastore/datastore-preferences/build.gradle
+++ b/datastore/datastore-preferences/build.gradle
@@ -31,6 +31,11 @@
id("org.anarres.jarjar")
}
+android{
+ buildTypes.all{
+ consumerProguardFiles 'proguard-rules.pro'
+ }
+}
// Include :datastore-preferences-proto
android.libraryVariants.all { variant ->
diff --git a/datastore/datastore-preferences/proguard-rules.pro b/datastore/datastore-preferences/proguard-rules.pro
new file mode 100644
index 0000000..4433d5f
--- /dev/null
+++ b/datastore/datastore-preferences/proguard-rules.pro
@@ -0,0 +1,3 @@
+-keepclassmembers class * extends androidx.datastore.preferences.protobuf.GeneratedMessageLite {
+ <fields>;
+}
\ No newline at end of file
diff --git a/datastore/datastore-sampleapp/src/main/java/com/example/datastoresampleapp/PreferencesDataStoreActivity.kt b/datastore/datastore-sampleapp/src/main/java/com/example/datastoresampleapp/PreferencesDataStoreActivity.kt
index 6f68f5b..a64e83e 100644
--- a/datastore/datastore-sampleapp/src/main/java/com/example/datastoresampleapp/PreferencesDataStoreActivity.kt
+++ b/datastore/datastore-sampleapp/src/main/java/com/example/datastoresampleapp/PreferencesDataStoreActivity.kt
@@ -72,7 +72,7 @@
findViewById<Button>(R.id.counter_dec).setOnClickListener {
lifecycleScope.launch {
preferenceStore.edit { prefs ->
- prefs[COUNTER_KEY] = prefs[COUNTER_KEY] ?: 0 - 1
+ prefs[COUNTER_KEY] = (prefs[COUNTER_KEY] ?: 0) - 1
}
}
}
@@ -80,7 +80,7 @@
findViewById<Button>(R.id.counter_inc).setOnClickListener {
lifecycleScope.launch {
preferenceStore.edit { prefs ->
- prefs[COUNTER_KEY] = prefs[COUNTER_KEY] ?: 0 + 1
+ prefs[COUNTER_KEY] = (prefs[COUNTER_KEY] ?: 0) + 1
}
}
}