diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 7d91e92d..4371d26b 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -21,3 +21,6 @@ -dontwarn com.google.common.** -dontwarn org.slf4j.** -keep class androidx.appcompat.widget.SearchView { *; } +-keep class org.openintents.openpgp.** +-keepattributes SourceFile,LineNumberTable +-dontobfuscate diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt index d10a5d59..e0bf9857 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt @@ -140,6 +140,9 @@ open class PasswordRepository protected constructor() { @JvmStatic fun getRepositoryDirectory(context: Context): File { + if (!::settings.isInitialized) { + settings = PreferenceManager.getDefaultSharedPreferences(context.applicationContext) + } return if (settings.getBoolean("git_external", false)) { val externalRepo = settings.getString("git_external_repo", null) File(requireNotNull(externalRepo)) @@ -150,7 +153,9 @@ open class PasswordRepository protected constructor() { @JvmStatic fun initialize(context: Context): Repository? { - settings = PreferenceManager.getDefaultSharedPreferences(context.applicationContext) + if (!::settings.isInitialized) { + settings = PreferenceManager.getDefaultSharedPreferences(context.applicationContext) + } val dir = getRepositoryDirectory(context) // uninitialize the repo if the dir does not exist or is absolutely empty if (!dir.exists() || !dir.isDirectory || dir.listFiles()!!.isEmpty()) {