From e0a3b7a104dd471b33cc37e08d8464097bae6853 Mon Sep 17 00:00:00 2001 From: Yogesh Choudhary Paliyal Date: Sun, 16 Jun 2024 17:51:35 +0530 Subject: [PATCH] feat: Crash Fix for invalid secret key (#888) --- .java-version | 2 +- .../keypass/ui/detail/AccountDetailPage.kt | 11 ++++++++++- app/src/main/res/values/strings.xml | 1 + gradle.properties | 2 ++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.java-version b/.java-version index d7109a33..088306b4 100644 --- a/.java-version +++ b/.java-version @@ -1 +1 @@ -openjdk64-11.0.11 +openjdk64-17.0.7 diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/AccountDetailPage.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/AccountDetailPage.kt index ffeced1a..a7c2f55a 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/AccountDetailPage.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/detail/AccountDetailPage.kt @@ -31,16 +31,19 @@ import androidx.compose.ui.window.Dialog import androidx.hilt.navigation.compose.hiltViewModel import com.yogeshpaliyal.common.constants.ScannerType import com.yogeshpaliyal.common.utils.TOTPHelper +import com.yogeshpaliyal.keypass.R import com.yogeshpaliyal.keypass.ui.detail.components.BottomBar import com.yogeshpaliyal.keypass.ui.detail.components.Fields import com.yogeshpaliyal.keypass.ui.redux.actions.CopyToClipboard import com.yogeshpaliyal.keypass.ui.redux.actions.GoBackAction import com.yogeshpaliyal.keypass.ui.redux.actions.NavigationAction +import com.yogeshpaliyal.keypass.ui.redux.actions.ToastAction import com.yogeshpaliyal.keypass.ui.redux.states.PasswordGeneratorState import org.reduxkotlin.compose.rememberDispatcher import java.io.File import java.io.FileOutputStream import java.io.OutputStream +import java.net.MalformedURLException import java.text.SimpleDateFormat import java.util.Date import java.util.Locale @@ -80,7 +83,13 @@ fun AccountDetailPage( } ScannerType.Secret -> { it.scannedText ?: return@rememberLauncherForActivityResult - val totp = TOTPHelper(it.scannedText) + var totp: TOTPHelper? = null + try { + totp = TOTPHelper(it.scannedText) + } catch (e: MalformedURLException) { + dispatchAction(ToastAction(R.string.invalid_secret_key)) + return@rememberLauncherForActivityResult + } var newAccountModel = accountModel.copy(secret = totp.secret) if (newAccountModel.title.isNullOrEmpty()) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 10274cb2..520dd205 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -110,5 +110,6 @@ KeePass Backup Choose KeePass CSV file to import Export + Invalid secret key format diff --git a/gradle.properties b/gradle.properties index 9c7b4b31..e57162e2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,6 @@ android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false android.nonFinalResIds=false +kotlin.mpp.androidGradlePluginCompatibility.nowarn=true +