From c60a2534d5f63d448f9c26d6ac8a933a74249d84 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 21 Mar 2021 14:03:51 +0530 Subject: Inform users that GPG key selection is mandatory (#1355) * Inform users that GPG key selection is mandatory Fixes #1342 Signed-off-by: Harsh Shandilya * changelog: add GPG key selection improvements Signed-off-by: Harsh Shandilya --- CHANGELOG.md | 4 ++++ .../java/com/zeapo/pwdstore/crypto/PasswordCreationActivity.kt | 3 +++ .../zeapo/pwdstore/ui/onboarding/fragments/KeySelectionFragment.kt | 7 +++++-- app/src/main/res/values/strings.xml | 1 + 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d30e98c..3c8ccb15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Fixed + +- When prompted to select a GPG key during onboarding, the app would crash if the user did not make a selection in OpenKeychain + ## [1.13.4] - 2021-03-20 - Fix support for ECDSA SSH keys and support AES-GCM diff --git a/app/src/main/java/com/zeapo/pwdstore/crypto/PasswordCreationActivity.kt b/app/src/main/java/com/zeapo/pwdstore/crypto/PasswordCreationActivity.kt index baabfbf5..e4dbb7d9 100644 --- a/app/src/main/java/com/zeapo/pwdstore/crypto/PasswordCreationActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PasswordCreationActivity.kt @@ -24,6 +24,7 @@ import com.github.michaelbull.result.onFailure import com.github.michaelbull.result.onSuccess import com.github.michaelbull.result.runCatching import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.android.material.snackbar.Snackbar import com.google.zxing.integration.android.IntentIntegrator import com.google.zxing.integration.android.IntentIntegrator.QR_CODE import com.zeapo.pwdstore.R @@ -114,6 +115,8 @@ class PasswordCreationActivity : BasePgpActivity(), OpenPgpServiceConnection.OnB } } } + } else { + snackbar(message = getString(R.string.gpg_key_select_mandatory), length = Snackbar.LENGTH_LONG) } } diff --git a/app/src/main/java/com/zeapo/pwdstore/ui/onboarding/fragments/KeySelectionFragment.kt b/app/src/main/java/com/zeapo/pwdstore/ui/onboarding/fragments/KeySelectionFragment.kt index 3dc03954..9abfe655 100644 --- a/app/src/main/java/com/zeapo/pwdstore/ui/onboarding/fragments/KeySelectionFragment.kt +++ b/app/src/main/java/com/zeapo/pwdstore/ui/onboarding/fragments/KeySelectionFragment.kt @@ -13,6 +13,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.edit import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope +import com.google.android.material.snackbar.Snackbar import com.zeapo.pwdstore.R import com.zeapo.pwdstore.crypto.GetKeyIdsActivity import com.zeapo.pwdstore.databinding.FragmentKeySelectionBinding @@ -21,6 +22,7 @@ import com.zeapo.pwdstore.utils.PreferenceKeys import com.zeapo.pwdstore.utils.commitChange import com.zeapo.pwdstore.utils.finish import com.zeapo.pwdstore.utils.sharedPrefs +import com.zeapo.pwdstore.utils.snackbar import com.zeapo.pwdstore.utils.viewBinding import java.io.File import kotlinx.coroutines.Dispatchers @@ -48,10 +50,11 @@ class KeySelectionFragment : Fragment(R.layout.fragment_key_selection) { )) } } + finish() } else { - throw IllegalStateException("Failed to initialize repository state.") + requireActivity() + .snackbar(message = getString(R.string.gpg_key_select_mandatory), length = Snackbar.LENGTH_LONG) } - finish() } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 885753e9..af8fa88a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -417,5 +417,6 @@ Fill and save passwords (saving requires that no accessibility services are enabled) Clear saved host key Successfully cleared saved host key! + Selecting a GPG key is necessary to proceed -- cgit v1.2.3