aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/dev/msfjarvis/aps/ui/settings
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2022-01-09 17:04:16 +0530
committerGitHub <noreply@github.com>2022-01-09 17:04:16 +0530
commit1738879fb3ba1b2c2d0ca7933c861bf99ae32535 (patch)
tree42b339b07e3c45922310afd01e8ce357f99beeb6 /app/src/main/java/dev/msfjarvis/aps/ui/settings
parent799f1393e49955d05f68b81af26d6cfaf9beadfd (diff)
downloadHardenedPass-1738879fb3ba1b2c2d0ca7933c861bf99ae32535.tar.gz
HardenedPass-1738879fb3ba1b2c2d0ca7933c861bf99ae32535.zip
Integrate PGPainless backend into the UI properly (#1647)
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/ui/settings')
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/ui/settings/PGPSettings.kt29
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt15
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/ui/settings/SettingsActivity.kt8
3 files changed, 42 insertions, 10 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/settings/PGPSettings.kt b/app/src/main/java/dev/msfjarvis/aps/ui/settings/PGPSettings.kt
new file mode 100644
index 00000000..81418ccb
--- /dev/null
+++ b/app/src/main/java/dev/msfjarvis/aps/ui/settings/PGPSettings.kt
@@ -0,0 +1,29 @@
+/*
+ * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+package dev.msfjarvis.aps.ui.settings
+
+import androidx.fragment.app.FragmentActivity
+import de.Maxr1998.modernpreferences.PreferenceScreen
+import de.Maxr1998.modernpreferences.helpers.onClick
+import de.Maxr1998.modernpreferences.helpers.pref
+import dev.msfjarvis.aps.ui.pgp.PGPKeyImportActivity
+import dev.msfjarvis.aps.util.extensions.launchActivity
+
+class PGPSettings(private val activity: FragmentActivity) : SettingsProvider {
+
+ override fun provideSettings(builder: PreferenceScreen.Builder) {
+ builder.apply {
+ pref("_") {
+ title = "Import PGP key"
+ persistent = false
+ onClick {
+ activity.launchActivity(PGPKeyImportActivity::class.java)
+ false
+ }
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt b/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt
index 8671b5cb..cbd9c18f 100644
--- a/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/ui/settings/RepositorySettings.kt
@@ -36,6 +36,7 @@ import dev.msfjarvis.aps.ui.sshkeygen.ShowSshKeyFragment
import dev.msfjarvis.aps.ui.sshkeygen.SshKeyGenActivity
import dev.msfjarvis.aps.ui.sshkeygen.SshKeyImportActivity
import dev.msfjarvis.aps.util.extensions.getString
+import dev.msfjarvis.aps.util.extensions.launchActivity
import dev.msfjarvis.aps.util.extensions.sharedPrefs
import dev.msfjarvis.aps.util.extensions.snackbar
import dev.msfjarvis.aps.util.extensions.unsafeLazy
@@ -59,16 +60,12 @@ class RepositorySettings(private val activity: FragmentActivity) : SettingsProvi
private var showSshKeyPref: Preference? = null
- private fun <T : FragmentActivity> launchActivity(clazz: Class<T>) {
- activity.startActivity(Intent(activity, clazz))
- }
-
private fun selectExternalGitRepository() {
MaterialAlertDialogBuilder(activity)
.setTitle(activity.resources.getString(R.string.external_repository_dialog_title))
.setMessage(activity.resources.getString(R.string.external_repository_dialog_text))
.setPositiveButton(R.string.dialog_ok) { _, _ ->
- launchActivity(DirectorySelectionActivity::class.java)
+ activity.launchActivity(DirectorySelectionActivity::class.java)
}
.setNegativeButton(R.string.dialog_cancel, null)
.show()
@@ -89,7 +86,7 @@ class RepositorySettings(private val activity: FragmentActivity) : SettingsProvi
titleRes = R.string.pref_edit_git_server_settings
visible = PasswordRepository.isGitRepo()
onClick {
- launchActivity(GitServerConfigActivity::class.java)
+ activity.launchActivity(GitServerConfigActivity::class.java)
true
}
}
@@ -97,7 +94,7 @@ class RepositorySettings(private val activity: FragmentActivity) : SettingsProvi
titleRes = R.string.pref_edit_proxy_settings
visible = gitSettings.url?.startsWith("https") == true && PasswordRepository.isGitRepo()
onClick {
- launchActivity(ProxySelectorActivity::class.java)
+ activity.launchActivity(ProxySelectorActivity::class.java)
true
}
}
@@ -105,7 +102,7 @@ class RepositorySettings(private val activity: FragmentActivity) : SettingsProvi
titleRes = R.string.pref_edit_git_config
visible = PasswordRepository.isGitRepo()
onClick {
- launchActivity(GitConfigActivity::class.java)
+ activity.launchActivity(GitConfigActivity::class.java)
true
}
}
@@ -113,7 +110,7 @@ class RepositorySettings(private val activity: FragmentActivity) : SettingsProvi
titleRes = R.string.pref_import_ssh_key_title
visible = PasswordRepository.isGitRepo()
onClick {
- launchActivity(SshKeyImportActivity::class.java)
+ activity.launchActivity(SshKeyImportActivity::class.java)
true
}
}
diff --git a/app/src/main/java/dev/msfjarvis/aps/ui/settings/SettingsActivity.kt b/app/src/main/java/dev/msfjarvis/aps/ui/settings/SettingsActivity.kt
index 26f060ad..d31aa630 100644
--- a/app/src/main/java/dev/msfjarvis/aps/ui/settings/SettingsActivity.kt
+++ b/app/src/main/java/dev/msfjarvis/aps/ui/settings/SettingsActivity.kt
@@ -24,6 +24,7 @@ class SettingsActivity : AppCompatActivity() {
private val passwordSettings = PasswordSettings(this)
private val repositorySettings = RepositorySettings(this)
private val generalSettings = GeneralSettings(this)
+ private val pgpSettings = PGPSettings(this)
private val binding by viewBinding(ActivityPreferenceRecyclerviewBinding::inflate)
private val preferencesAdapter: PreferencesAdapter
@@ -47,7 +48,7 @@ class SettingsActivity : AppCompatActivity() {
}
subScreen {
titleRes = R.string.pref_category_passwords_title
- iconRes = R.drawable.ic_lock_open_24px
+ iconRes = R.drawable.ic_password_24px
passwordSettings.provideSettings(this)
}
subScreen {
@@ -60,6 +61,11 @@ class SettingsActivity : AppCompatActivity() {
iconRes = R.drawable.ic_miscellaneous_services_24px
miscSettings.provideSettings(this)
}
+ subScreen {
+ titleRes = R.string.pref_category_pgp_title
+ iconRes = R.drawable.ic_lock_open_24px
+ pgpSettings.provideSettings(this)
+ }
}
val adapter = PreferencesAdapter(screen)
adapter.onScreenChangeListener =