From 8fc33f193fed1a2297bd44dbfc6df6efa79f9835 Mon Sep 17 00:00:00 2001 From: septs Date: Thu, 6 Mar 2025 13:49:53 +0800 Subject: [PATCH] feat: recent url sharing --- .../ui/wizard/DownloadWizardActivity.kt | 17 +++++++++++++++++ .../im/angry/openeuicc/util/ActivationCode.kt | 11 +++++++++++ 2 files changed, 28 insertions(+) diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardActivity.kt b/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardActivity.kt index e342dee..8cab18b 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardActivity.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardActivity.kt @@ -1,5 +1,6 @@ package im.angry.openeuicc.ui.wizard +import android.app.assist.AssistContent import android.os.Bundle import android.view.View import android.view.inputmethod.InputMethodManager @@ -8,6 +9,7 @@ import android.widget.ProgressBar import android.widget.Toast import androidx.activity.OnBackPressedCallback import androidx.activity.enableEdgeToEdge +import androidx.core.net.toUri import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.updatePadding @@ -111,6 +113,21 @@ class DownloadWizardActivity: BaseEuiccAccessActivity() { } } + override fun onProvideAssistContent(outContent: AssistContent?) { + super.onProvideAssistContent(outContent) + outContent?.webUri = try { + val activationCode = ActivationCode( + state.smdp, + state.matchingId, + null, + state.confirmationCode != null, + ) + "LPA:$activationCode".toUri() + } catch (_: Exception) { + null + } + } + override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) outState.putString("currentStepFragmentClassName", state.currentStepFragmentClassName) diff --git a/app-common/src/main/java/im/angry/openeuicc/util/ActivationCode.kt b/app-common/src/main/java/im/angry/openeuicc/util/ActivationCode.kt index 3aca0d6..c21e837 100644 --- a/app-common/src/main/java/im/angry/openeuicc/util/ActivationCode.kt +++ b/app-common/src/main/java/im/angry/openeuicc/util/ActivationCode.kt @@ -20,4 +20,15 @@ data class ActivationCode( ) } } + + override fun toString(): String { + val parts = arrayOf( + "1", + address, + matchingId ?: "", + oid ?: "", + if (confirmationCodeRequired) "1" else "" + ) + return parts.joinToString("$").trimEnd('$') + } } \ No newline at end of file -- 2.45.3