fix: plain SharedPreferences for credentials (EncryptedSharedPreferences crashed on Pixel)

- CredentialStore now uses getSharedPreferences instead of EncryptedSharedPreferences
- Still sandboxed by Android app isolation (other apps can't read it)
This commit is contained in:
Mathieu Moran
2026-08-12 15:23:53 -04:00
parent f4b93006e3
commit 8101663dd0
@@ -1,8 +1,6 @@
package com.yarisobd.app.data package com.yarisobd.app.data
import android.content.Context import android.content.Context
import androidx.security.crypto.EncryptedSharedPreferences
import androidx.security.crypto.MasterKey
object CredentialStore { object CredentialStore {
private const val PREFS = "yaris_creds" private const val PREFS = "yaris_creds"
@@ -10,12 +8,8 @@ object CredentialStore {
private const val KEY_DEVICE_NAME = "device_name" private const val KEY_DEVICE_NAME = "device_name"
private const val KEY_API_KEY = "api_key" private const val KEY_API_KEY = "api_key"
private fun prefs(context: Context) = EncryptedSharedPreferences.create( private fun prefs(context: Context) =
context, PREFS, context.getSharedPreferences(PREFS, Context.MODE_PRIVATE)
MasterKey.Builder(context).setKeyScheme(MasterKey.KeyScheme.AES256_GCM).build(),
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
fun getServerUrl(context: Context): String = prefs(context).getString(KEY_SERVER_URL, "") ?: "" fun getServerUrl(context: Context): String = prefs(context).getString(KEY_SERVER_URL, "") ?: ""
fun getDeviceName(context: Context): String = prefs(context).getString(KEY_DEVICE_NAME, "") ?: "" fun getDeviceName(context: Context): String = prefs(context).getString(KEY_DEVICE_NAME, "") ?: ""