[PM-19866] Migrate BaseEncryptedDiskSource to data module (#4991)

This commit is contained in:
Patrick Honkonen
2025-04-03 17:52:54 -04:00
committed by GitHub
parent 1149e91dd5
commit 853069ee1c
5 changed files with 6 additions and 41 deletions

View File

@@ -0,0 +1,32 @@
package com.bitwarden.data.datasource.disk
import android.content.SharedPreferences
import androidx.core.content.edit
import androidx.security.crypto.EncryptedSharedPreferences
/**
* Base class for simplifying interactions with [SharedPreferences] and
* [EncryptedSharedPreferences].
*/
@Suppress("UnnecessaryAbstractClass")
abstract class BaseEncryptedDiskSource(
sharedPreferences: SharedPreferences,
private val encryptedSharedPreferences: SharedPreferences,
) : BaseDiskSource(
sharedPreferences = sharedPreferences,
) {
protected fun getEncryptedString(
key: String,
default: String? = null,
): String? = encryptedSharedPreferences.getString(key.withBase(), default)
protected fun putEncryptedString(
key: String,
value: String?,
): Unit = encryptedSharedPreferences.edit { putString(key.withBase(), value) }
}
/**
* Helper method for prepending the key with the appropriate base storage key.
*/
private fun String.withBase(): String = "bwSecureStorage:$this"