mirror of
https://github.com/android-password-store/Android-Password-Store.git
synced 2025-09-07 16:09:38 +02:00
treewide: use edit extension and cleanup some deprecation
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
e1921b26e0
commit
d505151662
|
@ -29,6 +29,7 @@ import androidx.appcompat.widget.SearchView
|
|||
import androidx.appcompat.widget.SearchView.OnQueryTextListener
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.edit
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.observe
|
||||
|
@ -325,7 +326,7 @@ class PasswordStore : AppCompatActivity() {
|
|||
check(localDir.mkdir()) { "Failed to create directory!" }
|
||||
createRepository(localDir)
|
||||
if (File(localDir.absolutePath + "/.gpg-id").createNewFile()) {
|
||||
settings.edit().putBoolean("repository_initialized", true).apply()
|
||||
settings.edit { putBoolean("repository_initialized", true) }
|
||||
} else {
|
||||
throw IllegalStateException("Failed to initialize repository state.")
|
||||
}
|
||||
|
@ -383,7 +384,7 @@ class PasswordStore : AppCompatActivity() {
|
|||
// do not push the fragment if we already have it
|
||||
if (fragmentManager.findFragmentByTag("PasswordsList") == null ||
|
||||
settings.getBoolean("repo_changed", false)) {
|
||||
settings.edit().putBoolean("repo_changed", false).apply()
|
||||
settings.edit { putBoolean("repo_changed", false) }
|
||||
plist = PasswordFragment()
|
||||
val args = Bundle()
|
||||
args.putString(REQUEST_ARG_PATH, getRepositoryDirectory(applicationContext).absolutePath)
|
||||
|
@ -589,7 +590,7 @@ class PasswordStore : AppCompatActivity() {
|
|||
if (resultCode == Activity.RESULT_OK) {
|
||||
when (requestCode) {
|
||||
// if we get here with a RESULT_OK then it's probably OK :)
|
||||
BaseGitActivity.REQUEST_CLONE -> settings.edit().putBoolean("repository_initialized", true).apply()
|
||||
BaseGitActivity.REQUEST_CLONE -> settings.edit { putBoolean("repository_initialized", true) }
|
||||
// if went from decrypt->edit and user saved changes or HOTP counter was
|
||||
// incremented, we need to commitChange
|
||||
REQUEST_CODE_DECRYPT_AND_VERIFY -> {
|
||||
|
@ -721,7 +722,7 @@ class PasswordStore : AppCompatActivity() {
|
|||
.setTitle(this.resources.getString(R.string.location_dialog_title))
|
||||
.setMessage(this.resources.getString(R.string.location_dialog_text))
|
||||
.setPositiveButton(this.resources.getString(R.string.location_hidden)) { _, _ ->
|
||||
settings.edit().putBoolean("git_external", false).apply()
|
||||
settings.edit { putBoolean("git_external", false) }
|
||||
when (operation) {
|
||||
NEW_REPO_BUTTON -> initializeRepositoryInfo()
|
||||
CLONE_REPO_BUTTON -> {
|
||||
|
@ -732,7 +733,7 @@ class PasswordStore : AppCompatActivity() {
|
|||
}
|
||||
}
|
||||
.setNegativeButton(this.resources.getString(R.string.location_sdcard)) { _, _ ->
|
||||
settings.edit().putBoolean("git_external", true).apply()
|
||||
settings.edit { putBoolean("git_external", true) }
|
||||
val externalRepo = settings.getString("git_external_repo", null)
|
||||
if (externalRepo == null) {
|
||||
val intent = Intent(activity, UserPreference::class.java)
|
||||
|
|
|
@ -33,6 +33,7 @@ import androidx.preference.Preference
|
|||
import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.preference.SwitchPreferenceCompat
|
||||
import com.github.ajalt.timberkt.d
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.zeapo.pwdstore.autofill.AutofillPreferenceActivity
|
||||
|
@ -173,7 +174,7 @@ class UserPreference : AppCompatActivity() {
|
|||
|
||||
viewSshKeyPreference?.onPreferenceClickListener = ClickListener {
|
||||
val df = ShowSshKeyFragment()
|
||||
df.show(requireFragmentManager(), "public_key")
|
||||
df.show(parentFragmentManager, "public_key")
|
||||
true
|
||||
}
|
||||
|
||||
|
@ -189,13 +190,13 @@ class UserPreference : AppCompatActivity() {
|
|||
}
|
||||
|
||||
clearHotpIncrementPreference?.onPreferenceClickListener = ClickListener {
|
||||
sharedPreferences.edit().putBoolean("hotp_remember_check", false).apply()
|
||||
sharedPreferences.edit { putBoolean("hotp_remember_check", false) }
|
||||
it.isVisible = false
|
||||
true
|
||||
}
|
||||
|
||||
openkeystoreIdPreference?.onPreferenceClickListener = ClickListener {
|
||||
sharedPreferences.edit().putString("ssh_openkeystore_keyid", null).apply()
|
||||
sharedPreferences.edit { putString("ssh_openkeystore_keyid", null) }
|
||||
it.isVisible = false
|
||||
true
|
||||
}
|
||||
|
@ -224,7 +225,7 @@ class UserPreference : AppCompatActivity() {
|
|||
// TODO Handle the different cases of exceptions
|
||||
}
|
||||
|
||||
sharedPreferences.edit().putBoolean("repository_initialized", false).apply()
|
||||
sharedPreferences.edit { putBoolean("repository_initialized", false) }
|
||||
dialogInterface.cancel()
|
||||
callingActivity.finish()
|
||||
}
|
||||
|
@ -244,7 +245,7 @@ class UserPreference : AppCompatActivity() {
|
|||
val resetRepo = Preference.OnPreferenceChangeListener { _, o ->
|
||||
deleteRepoPreference?.isVisible = !(o as Boolean)
|
||||
PasswordRepository.closeRepository()
|
||||
sharedPreferences.edit().putBoolean("repo_changed", true).apply()
|
||||
sharedPreferences.edit { putBoolean("repo_changed", true) }
|
||||
true
|
||||
}
|
||||
|
||||
|
@ -294,19 +295,19 @@ class UserPreference : AppCompatActivity() {
|
|||
} else {
|
||||
setOnPreferenceClickListener {
|
||||
isEnabled = false
|
||||
val editor = sharedPreferences.edit()
|
||||
sharedPreferences.edit {
|
||||
val checked = isChecked
|
||||
Authenticator(requireActivity()) { result ->
|
||||
when (result) {
|
||||
is AuthenticationResult.Success -> {
|
||||
// Apply the changes
|
||||
editor.putBoolean("biometric_auth", checked)
|
||||
putBoolean("biometric_auth", checked)
|
||||
isEnabled = true
|
||||
}
|
||||
else -> {
|
||||
// If any error occurs, revert back to the previous state. This
|
||||
// catch-all clause includes the cancellation case.
|
||||
editor.putBoolean("biometric_auth", !checked)
|
||||
putBoolean("biometric_auth", !checked)
|
||||
isChecked = !checked
|
||||
isEnabled = true
|
||||
}
|
||||
|
@ -317,7 +318,7 @@ class UserPreference : AppCompatActivity() {
|
|||
removeDynamicShortcuts(dynamicShortcuts.map { it.id }.toMutableList())
|
||||
}
|
||||
}
|
||||
editor.apply()
|
||||
}
|
||||
true
|
||||
}
|
||||
}
|
||||
|
@ -622,7 +623,7 @@ class UserPreference : AppCompatActivity() {
|
|||
).show()
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(applicationContext)
|
||||
|
||||
prefs.edit().putBoolean("use_generated_key", false).apply()
|
||||
prefs.edit { putBoolean("use_generated_key", false) }
|
||||
|
||||
// Delete the public key from generation
|
||||
File("""$filesDir/.ssh_key.pub""").delete()
|
||||
|
@ -642,33 +643,27 @@ class UserPreference : AppCompatActivity() {
|
|||
SELECT_GIT_DIRECTORY -> {
|
||||
val uri = data.data
|
||||
|
||||
Timber.tag(TAG).d("Selected repository URI is $uri")
|
||||
Timber.tag(TAG).d { "Selected repository URI is $uri" }
|
||||
// TODO: This is fragile. Workaround until PasswordItem is backed by DocumentFile
|
||||
val docId = DocumentsContract.getTreeDocumentId(uri)
|
||||
val split = docId.split(":".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
|
||||
val path = if (split.isNotEmpty()) split[1] else split[0]
|
||||
val repoPath = "${Environment.getExternalStorageDirectory()}/$path"
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(applicationContext)
|
||||
|
||||
Timber.tag(TAG).d("Selected repository path is $repoPath")
|
||||
Timber.tag(TAG).d {"Selected repository path is $repoPath" }
|
||||
|
||||
if (Environment.getExternalStorageDirectory().path == repoPath) {
|
||||
MaterialAlertDialogBuilder(this)
|
||||
.setTitle(getString(R.string.sdcard_root_warning_title))
|
||||
.setMessage(getString(R.string.sdcard_root_warning_message))
|
||||
.setPositiveButton("Remove everything") { _, _ ->
|
||||
PreferenceManager.getDefaultSharedPreferences(applicationContext)
|
||||
.edit()
|
||||
.putString("git_external_repo", uri?.path)
|
||||
.apply()
|
||||
prefs.edit { putString("git_external_repo", uri?.path) }
|
||||
}
|
||||
.setNegativeButton(R.string.dialog_cancel, null)
|
||||
.show()
|
||||
}
|
||||
|
||||
PreferenceManager.getDefaultSharedPreferences(applicationContext)
|
||||
.edit()
|
||||
.putString("git_external_repo", repoPath)
|
||||
.apply()
|
||||
prefs.edit { putString("git_external_repo", repoPath) }
|
||||
}
|
||||
EXPORT_PASSWORDS -> {
|
||||
val uri = data.data
|
||||
|
@ -691,7 +686,7 @@ class UserPreference : AppCompatActivity() {
|
|||
).show()
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(applicationContext)
|
||||
|
||||
prefs.edit().putString("pref_key_custom_dict", uri.toString()).apply()
|
||||
prefs.edit { putString("pref_key_custom_dict", uri.toString()) }
|
||||
|
||||
val customDictPref = prefsFragment.findPreference<Preference>("pref_key_custom_dict")
|
||||
setCustomDictSummary(customDictPref, uri)
|
||||
|
@ -719,7 +714,7 @@ class UserPreference : AppCompatActivity() {
|
|||
val repositoryDirectory = requireNotNull(PasswordRepository.getRepositoryDirectory(applicationContext))
|
||||
val sourcePassDir = DocumentFile.fromFile(repositoryDirectory)
|
||||
|
||||
Timber.tag(TAG).d("Copying ${repositoryDirectory.path} to $targetDirectory")
|
||||
Timber.tag(TAG).d { "Copying ${repositoryDirectory.path} to $targetDirectory" }
|
||||
|
||||
val dateString = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
LocalDateTime
|
||||
|
|
|
@ -11,10 +11,9 @@ import android.content.IntentSender
|
|||
import android.content.SharedPreferences
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.edit
|
||||
import com.zeapo.pwdstore.PasswordStore
|
||||
import com.zeapo.pwdstore.utils.splitLines
|
||||
import java.util.ArrayList
|
||||
import java.util.Arrays
|
||||
import org.eclipse.jgit.util.StringUtils
|
||||
import timber.log.Timber
|
||||
|
||||
|
@ -71,17 +70,17 @@ class AutofillActivity : AppCompatActivity() {
|
|||
} else {
|
||||
applicationContext.getSharedPreferences("autofill_web", Context.MODE_PRIVATE)
|
||||
}
|
||||
val editor = prefs.edit()
|
||||
prefs.edit {
|
||||
when (val preference = prefs.getString(packageName, "")) {
|
||||
"", "/first", "/never" -> editor.putString(packageName, path)
|
||||
"", "/first", "/never" -> putString(packageName, path)
|
||||
else -> {
|
||||
val matches = ArrayList(Arrays.asList(*preference!!.trim { it <= ' ' }.splitLines()))
|
||||
val matches = arrayListOf(*preference!!.trim { it <= ' ' }.splitLines())
|
||||
matches.add(path)
|
||||
val paths = StringUtils.join(matches, "\n")
|
||||
editor.putString(packageName, paths)
|
||||
putString(packageName, paths)
|
||||
}
|
||||
}
|
||||
}
|
||||
editor.apply()
|
||||
}
|
||||
}
|
||||
super.onActivityResult(requestCode, resultCode, data)
|
||||
|
|
|
@ -23,6 +23,7 @@ import android.widget.RadioGroup
|
|||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.widget.AppCompatTextView
|
||||
import androidx.core.content.edit
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.zeapo.pwdstore.PasswordStore
|
||||
|
@ -118,14 +119,14 @@ class AutofillFragment : DialogFragment() {
|
|||
// write to preferences when OK clicked
|
||||
builder.setPositiveButton(R.string.dialog_ok) { _, _ -> }
|
||||
builder.setNegativeButton(R.string.dialog_cancel, null)
|
||||
val editor = prefs.edit()
|
||||
if (isWeb) {
|
||||
builder.setNeutralButton(R.string.autofill_apps_delete) { _, _ ->
|
||||
if (callingActivity.recyclerAdapter != null &&
|
||||
packageName != null && packageName != "") {
|
||||
editor.remove(packageName)
|
||||
prefs.edit {
|
||||
remove(packageName)
|
||||
callingActivity.recyclerAdapter?.removeWebsite(packageName)
|
||||
editor.apply()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -148,7 +149,6 @@ class AutofillFragment : DialogFragment() {
|
|||
} else {
|
||||
callingActivity.applicationContext.getSharedPreferences("autofill_web", Context.MODE_PRIVATE)
|
||||
}
|
||||
val editor = prefs.edit()
|
||||
|
||||
var packageName = args.getString("packageName", "")
|
||||
if (isWeb) {
|
||||
|
@ -169,15 +169,16 @@ class AutofillFragment : DialogFragment() {
|
|||
}
|
||||
|
||||
// write to preferences accordingly
|
||||
prefs.edit {
|
||||
val radioGroup = dialog.findViewById<RadioGroup>(R.id.autofill_radiogroup)
|
||||
when (radioGroup.checkedRadioButtonId) {
|
||||
R.id.use_default -> if (!isWeb) {
|
||||
editor.remove(packageName)
|
||||
remove(packageName)
|
||||
} else {
|
||||
editor.putString(packageName, "")
|
||||
putString(packageName, "")
|
||||
}
|
||||
R.id.first -> editor.putString(packageName, "/first")
|
||||
R.id.never -> editor.putString(packageName, "/never")
|
||||
R.id.first -> putString(packageName, "/first")
|
||||
R.id.never -> putString(packageName, "/never")
|
||||
else -> {
|
||||
val paths = StringBuilder()
|
||||
for (i in 0 until adapter!!.count) {
|
||||
|
@ -186,10 +187,10 @@ class AutofillFragment : DialogFragment() {
|
|||
paths.append("\n")
|
||||
}
|
||||
}
|
||||
editor.putString(packageName, paths.toString())
|
||||
putString(packageName, paths.toString())
|
||||
}
|
||||
}
|
||||
}
|
||||
editor.apply()
|
||||
|
||||
// notify the recycler adapter if it is loaded
|
||||
callingActivity.recyclerAdapter?.apply {
|
||||
|
@ -204,7 +205,7 @@ class AutofillFragment : DialogFragment() {
|
|||
packageName -> notifyItemChanged(position)
|
||||
"" -> addWebsite(packageName)
|
||||
else -> {
|
||||
editor.remove(oldPackageName)
|
||||
prefs.edit { remove(oldPackageName) }
|
||||
updateWebsite(oldPackageName, packageName)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ import android.widget.CheckBox
|
|||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.content.edit
|
||||
import androidx.core.widget.doOnTextChanged
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||
|
@ -228,7 +229,7 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
|
|||
}
|
||||
}
|
||||
|
||||
fun updateEncryptUsernameState() {
|
||||
private fun updateEncryptUsernameState() {
|
||||
encrypt_username.apply {
|
||||
if (visibility != View.VISIBLE)
|
||||
return
|
||||
|
@ -489,20 +490,20 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
|
|||
run {
|
||||
calculateAndCommitHotp(entry)
|
||||
if (rememberCheck.isChecked) {
|
||||
val editor = settings.edit()
|
||||
editor.putBoolean("hotp_remember_check", true)
|
||||
editor.putBoolean("hotp_remember_choice", true)
|
||||
editor.apply()
|
||||
settings.edit {
|
||||
putBoolean("hotp_remember_check", true)
|
||||
putBoolean("hotp_remember_choice", true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.setNegativeButton(R.string.dialog_update_negative) { _, _ ->
|
||||
run {
|
||||
calculateHotp(entry)
|
||||
val editor = settings.edit()
|
||||
editor.putBoolean("hotp_remember_check", true)
|
||||
editor.putBoolean("hotp_remember_choice", false)
|
||||
editor.apply()
|
||||
settings.edit {
|
||||
putBoolean("hotp_remember_check", true)
|
||||
putBoolean("hotp_remember_choice", false)
|
||||
}
|
||||
}
|
||||
}
|
||||
val updateDialog = dialogBuilder.create()
|
||||
|
@ -722,7 +723,7 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
|
|||
val keys = ids.map { it.toString() }.toSet()
|
||||
|
||||
// use Long
|
||||
settings.edit().putStringSet("openpgp_key_ids_set", keys).apply()
|
||||
settings.edit { putStringSet("openpgp_key_ids_set", keys) }
|
||||
|
||||
showSnackbar("PGP keys selected")
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ package com.zeapo.pwdstore.git
|
|||
|
||||
import android.os.Bundle
|
||||
import android.util.Patterns
|
||||
import androidx.core.content.edit
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.zeapo.pwdstore.R
|
||||
import com.zeapo.pwdstore.databinding.ActivityGitConfigBinding
|
||||
|
@ -50,12 +51,12 @@ class GitConfigActivity : BaseGitActivity() {
|
|||
.setPositiveButton(getString(R.string.dialog_ok), null)
|
||||
.show()
|
||||
} else {
|
||||
val editor = settings.edit()
|
||||
editor.putString("git_config_user_email", email)
|
||||
editor.putString("git_config_user_name", name)
|
||||
settings.edit {
|
||||
putString("git_config_user_email", email)
|
||||
putString("git_config_user_name", name)
|
||||
}
|
||||
PasswordRepository.setUserName(name)
|
||||
PasswordRepository.setUserEmail(email)
|
||||
editor.apply()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -189,7 +189,7 @@ abstract class GitOperation(fileDir: File, internal val callingActivity: Activit
|
|||
// Authenticate using the ssh-key and then execute the command
|
||||
setAuthentication(sshKey, username, passphrase.text.toString()).execute()
|
||||
} else {
|
||||
encryptedSettings.edit().putString("ssh_key_local_passphrase", null).apply()
|
||||
encryptedSettings.edit { putString("ssh_key_local_passphrase", null) }
|
||||
// call back the method
|
||||
executeAfterAuthentication(connectionMode, username, sshKey, identity, true)
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
package com.zeapo.pwdstore.pwgen
|
||||
|
||||
import android.content.Context
|
||||
import androidx.core.content.edit
|
||||
import com.zeapo.pwdstore.R
|
||||
import java.util.ArrayList
|
||||
|
||||
|
@ -50,15 +51,13 @@ object PasswordGenerator {
|
|||
*/
|
||||
@JvmStatic
|
||||
fun setPrefs(ctx: Context, argv: ArrayList<String>, vararg numArgv: Int): Boolean {
|
||||
val prefs = ctx.getSharedPreferences("PasswordGenerator", Context.MODE_PRIVATE)
|
||||
val editor = prefs.edit()
|
||||
|
||||
ctx.getSharedPreferences("PasswordGenerator", Context.MODE_PRIVATE).edit {
|
||||
for (option in pwOptions.toCharArray()) {
|
||||
if (argv.contains(option.toString())) {
|
||||
editor.putBoolean(option.toString(), true)
|
||||
putBoolean(option.toString(), true)
|
||||
argv.remove(option.toString())
|
||||
} else {
|
||||
editor.putBoolean(option.toString(), false)
|
||||
putBoolean(option.toString(), false)
|
||||
}
|
||||
}
|
||||
var i = 0
|
||||
|
@ -68,10 +67,10 @@ object PasswordGenerator {
|
|||
return false
|
||||
}
|
||||
val name = if (i == 0) "length" else "num"
|
||||
editor.putInt(name, numArgv[i])
|
||||
putInt(name, numArgv[i])
|
||||
i++
|
||||
}
|
||||
editor.apply()
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -84,7 +83,7 @@ object PasswordGenerator {
|
|||
* @return list of generated passwords
|
||||
*/
|
||||
@JvmStatic
|
||||
@Throws(PasswordGenerator.PasswordGeneratorExeption::class)
|
||||
@Throws(PasswordGeneratorExeption::class)
|
||||
fun generate(ctx: Context): ArrayList<String> {
|
||||
val prefs = ctx.getSharedPreferences("PasswordGenerator", Context.MODE_PRIVATE)
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import android.app.ProgressDialog
|
|||
import android.os.AsyncTask
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.edit
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
|
@ -60,9 +61,7 @@ class KeyGenerateTask(activity: AppCompatActivity) : AsyncTask<String?, Void?, E
|
|||
val df: DialogFragment = ShowSshKeyFragment()
|
||||
df.show(activity.supportFragmentManager, "public_key")
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(weakReference.get())
|
||||
val editor = prefs.edit()
|
||||
editor.putBoolean("use_generated_key", true)
|
||||
editor.apply()
|
||||
prefs.edit { putBoolean("use_generated_key", true) }
|
||||
} else {
|
||||
MaterialAlertDialogBuilder(activity)
|
||||
.setTitle(activity.getString(R.string.error_generate_ssh_key))
|
||||
|
|
|
@ -16,6 +16,7 @@ import android.widget.Toast
|
|||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.widget.AppCompatEditText
|
||||
import androidx.appcompat.widget.AppCompatTextView
|
||||
import androidx.core.content.edit
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.zeapo.pwdstore.R
|
||||
|
@ -48,17 +49,17 @@ class XkPasswordGeneratorDialogFragment : DialogFragment() {
|
|||
|
||||
prefs = callingActivity.getSharedPreferences("PasswordGenerator", Context.MODE_PRIVATE)
|
||||
|
||||
cbNumbers = view.findViewById<CheckBox>(R.id.xknumerals)
|
||||
cbNumbers = view.findViewById(R.id.xknumerals)
|
||||
cbNumbers.isChecked = prefs.getBoolean(PREF_KEY_USE_NUMERALS, false)
|
||||
|
||||
spinnerNumbersCount = view.findViewById<Spinner>(R.id.xk_numbers_count)
|
||||
spinnerNumbersCount = view.findViewById(R.id.xk_numbers_count)
|
||||
|
||||
val storedNumbersCount = prefs.getInt(PREF_KEY_NUMBERS_COUNT, 0)
|
||||
spinnerNumbersCount.setSelection(storedNumbersCount)
|
||||
|
||||
cbSymbols = view.findViewById<CheckBox>(R.id.xksymbols)
|
||||
cbSymbols = view.findViewById(R.id.xksymbols)
|
||||
cbSymbols.isChecked = prefs.getBoolean(PREF_KEY_USE_SYMBOLS, false) != false
|
||||
spinnerSymbolsCount = view.findViewById<Spinner>(R.id.xk_symbols_count)
|
||||
spinnerSymbolsCount = view.findViewById(R.id.xk_symbols_count)
|
||||
val symbolsCount = prefs.getInt(PREF_KEY_SYMBOLS_COUNT, 0)
|
||||
spinnerSymbolsCount.setSelection(symbolsCount)
|
||||
|
||||
|
@ -68,7 +69,7 @@ class XkPasswordGeneratorDialogFragment : DialogFragment() {
|
|||
Timber.tag("xkpw").e(e)
|
||||
DEFAULT_CAPS_STYLE
|
||||
}
|
||||
spinnerCapsType = view.findViewById<Spinner>(R.id.xkCapType)
|
||||
spinnerCapsType = view.findViewById(R.id.xkCapType)
|
||||
|
||||
val lastCapitalsStyleIndex: Int
|
||||
|
||||
|
@ -80,10 +81,10 @@ class XkPasswordGeneratorDialogFragment : DialogFragment() {
|
|||
}
|
||||
spinnerCapsType.setSelection(lastCapitalsStyleIndex)
|
||||
|
||||
editNumWords = view.findViewById<AppCompatEditText>(R.id.xk_num_words)
|
||||
editNumWords = view.findViewById(R.id.xk_num_words)
|
||||
editNumWords.setText(prefs.getString(PREF_KEY_NUM_WORDS, DEFAULT_NUMBER_OF_WORDS))
|
||||
|
||||
editSeparator = view.findViewById<AppCompatEditText>(R.id.xk_separator)
|
||||
editSeparator = view.findViewById(R.id.xk_separator)
|
||||
editSeparator.setText(prefs.getString(PREF_KEY_SEPARATOR, DEFAULT_WORD_SEPARATOR))
|
||||
|
||||
val passwordText: AppCompatTextView = view.findViewById(R.id.xkPasswordText)
|
||||
|
@ -131,14 +132,15 @@ class XkPasswordGeneratorDialogFragment : DialogFragment() {
|
|||
}
|
||||
|
||||
private fun setPreferences() {
|
||||
prefs.edit().putBoolean(PREF_KEY_USE_NUMERALS, cbNumbers.isChecked)
|
||||
.putBoolean(PREF_KEY_USE_SYMBOLS, cbSymbols.isChecked)
|
||||
.putString(PREF_KEY_CAPITALS_STYLE, spinnerCapsType.selectedItem.toString())
|
||||
.putString(PREF_KEY_NUM_WORDS, editNumWords.text.toString())
|
||||
.putString(PREF_KEY_SEPARATOR, editSeparator.text.toString())
|
||||
.putInt(PREF_KEY_NUMBERS_COUNT, Integer.parseInt(spinnerNumbersCount.selectedItem as String) - 1)
|
||||
.putInt(PREF_KEY_SYMBOLS_COUNT, Integer.parseInt(spinnerSymbolsCount.selectedItem as String) - 1)
|
||||
.apply()
|
||||
prefs.edit {
|
||||
putBoolean(PREF_KEY_USE_NUMERALS, cbNumbers.isChecked)
|
||||
putBoolean(PREF_KEY_USE_SYMBOLS, cbSymbols.isChecked)
|
||||
putString(PREF_KEY_CAPITALS_STYLE, spinnerCapsType.selectedItem.toString())
|
||||
putString(PREF_KEY_NUM_WORDS, editNumWords.text.toString())
|
||||
putString(PREF_KEY_SEPARATOR, editSeparator.text.toString())
|
||||
putInt(PREF_KEY_NUMBERS_COUNT, Integer.parseInt(spinnerNumbersCount.selectedItem as String) - 1)
|
||||
putInt(PREF_KEY_SYMBOLS_COUNT, Integer.parseInt(spinnerSymbolsCount.selectedItem as String) - 1)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
|
|
@ -65,4 +65,4 @@ fun <T : View> AlertDialog.requestInputFocusOnView(@IdRes id: Int) {
|
|||
|
||||
val Context.autofillManager: AutofillManager?
|
||||
@RequiresApi(Build.VERSION_CODES.O)
|
||||
get() = getSystemService(AutofillManager::class.java)
|
||||
get() = getSystemService()
|
||||
|
|
|
@ -6,6 +6,7 @@ package com.zeapo.pwdstore.utils
|
|||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import androidx.core.content.edit
|
||||
import androidx.preference.PreferenceManager
|
||||
import java.io.File
|
||||
import java.io.FileFilter
|
||||
|
@ -170,10 +171,12 @@ open class PasswordRepository protected constructor() {
|
|||
}
|
||||
val dir = getRepositoryDirectory(context)
|
||||
// uninitialize the repo if the dir does not exist or is absolutely empty
|
||||
settings.edit {
|
||||
if (!dir.exists() || !dir.isDirectory || dir.listFiles()!!.isEmpty()) {
|
||||
settings.edit().putBoolean("repository_initialized", false).apply()
|
||||
putBoolean("repository_initialized", false)
|
||||
} else {
|
||||
settings.edit().putBoolean("repository_initialized", true).apply()
|
||||
putBoolean("repository_initialized", true)
|
||||
}
|
||||
}
|
||||
|
||||
// create the repository static variable in PasswordRepository
|
||||
|
|
Loading…
Reference in a new issue