diff options
| author | Harsh Shandilya <me@msfjarvis.dev> | 2022-01-09 17:04:16 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-09 17:04:16 +0530 |
| commit | 1738879fb3ba1b2c2d0ca7933c861bf99ae32535 (patch) | |
| tree | 42b339b07e3c45922310afd01e8ce357f99beeb6 /app/src/main/java/dev/msfjarvis/aps/ui/settings | |
| parent | 799f1393e49955d05f68b81af26d6cfaf9beadfd (diff) | |
| download | HardenedPass-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')
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 = |
