aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/utils
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/utils')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt10
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt23
2 files changed, 16 insertions, 17 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt b/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt
index 6ce45fe5..b5cb4f8c 100644
--- a/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt
@@ -18,6 +18,7 @@ import androidx.annotation.RequiresApi
import androidx.appcompat.app.AlertDialog
import androidx.core.content.getSystemService
import androidx.fragment.app.FragmentActivity
+import androidx.preference.PreferenceManager
import androidx.security.crypto.EncryptedSharedPreferences
import androidx.security.crypto.MasterKey
import com.github.ajalt.timberkt.d
@@ -97,6 +98,9 @@ fun Context.getEncryptedPrefs(fileName: String): SharedPreferences {
)
}
+val Context.sharedPrefs: SharedPreferences
+ get() = PreferenceManager.getDefaultSharedPreferences(applicationContext)
+
suspend fun FragmentActivity.commitChange(
message: String,
finishWithResultOnEnd: Intent? = null,
@@ -109,7 +113,7 @@ suspend fun FragmentActivity.commitChange(
}
return
}
- object : GitOperation(getRepositoryDirectory(this@commitChange), this@commitChange) {
+ object : GitOperation(getRepositoryDirectory(), this@commitChange) {
override val commands = arrayOf(
git.add().addFilepattern("."),
git.status(),
@@ -151,6 +155,6 @@ val Context.autofillManager: AutofillManager?
@RequiresApi(Build.VERSION_CODES.O)
get() = getSystemService()
-fun FragmentActivity.isInsideRepository(file: File): Boolean {
- return file.canonicalPath.contains(getRepositoryDirectory(this).canonicalPath)
+fun File.isInsideRepository(): Boolean {
+ return canonicalPath.contains(getRepositoryDirectory().canonicalPath)
}
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 cb30ca2c..e07f30f2 100644
--- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt
@@ -4,10 +4,9 @@
*/
package com.zeapo.pwdstore.utils
-import android.content.Context
import android.content.SharedPreferences
import androidx.core.content.edit
-import androidx.preference.PreferenceManager
+import com.zeapo.pwdstore.Application
import java.io.File
import java.io.FileFilter
import java.util.Comparator
@@ -49,7 +48,9 @@ open class PasswordRepository protected constructor() {
companion object {
private var repository: Repository? = null
- private lateinit var settings: SharedPreferences
+ private val settings by lazy { Application.instance.sharedPrefs }
+ private val filesDir
+ get() = Application.instance.filesDir
/**
* Returns the git repository
@@ -152,27 +153,21 @@ open class PasswordRepository protected constructor() {
}
@JvmStatic
- fun getRepositoryDirectory(context: Context): File {
- if (!::settings.isInitialized) {
- settings = PreferenceManager.getDefaultSharedPreferences(context.applicationContext)
- }
+ fun getRepositoryDirectory(): File {
return if (settings.getBoolean(PreferenceKeys.GIT_EXTERNAL, false)) {
val externalRepo = settings.getString(PreferenceKeys.GIT_EXTERNAL_REPO, null)
if (externalRepo != null)
File(externalRepo)
else
- File(context.filesDir.toString(), "/store")
+ File(filesDir.toString(), "/store")
} else {
- File(context.filesDir.toString(), "/store")
+ File(filesDir.toString(), "/store")
}
}
@JvmStatic
- fun initialize(context: Context): Repository? {
- if (!::settings.isInitialized) {
- settings = PreferenceManager.getDefaultSharedPreferences(context.applicationContext)
- }
- val dir = getRepositoryDirectory(context)
+ fun initialize(): Repository? {
+ val dir = getRepositoryDirectory()
// uninitialize the repo if the dir does not exist or is absolutely empty
settings.edit {
if (!dir.exists() || !dir.isDirectory || dir.listFiles()!!.isEmpty()) {