From e48e577f196a88bee5dc453327e4cd374c74854a Mon Sep 17 00:00:00 2001 From: Howard Liberty Date: Sun, 25 Dec 2022 12:51:35 -0800 Subject: [PATCH] Preventing FreeOTPPlus to share token to itself --- .../main/java/org/fedorahosted/freeotp/ui/MainActivity.kt | 6 ++++++ .../java/org/fedorahosted/freeotp/ui/TokenViewHolder.kt | 1 + 2 files changed, 7 insertions(+) diff --git a/app/src/main/java/org/fedorahosted/freeotp/ui/MainActivity.kt b/app/src/main/java/org/fedorahosted/freeotp/ui/MainActivity.kt index 897eb9a..74fb0b6 100644 --- a/app/src/main/java/org/fedorahosted/freeotp/ui/MainActivity.kt +++ b/app/src/main/java/org/fedorahosted/freeotp/ui/MainActivity.kt @@ -278,6 +278,11 @@ class MainActivity : AppCompatActivity() { override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) + if (packageName == intent.extras?.getString(SHARE_FROM_PACKAGE_NAME_INTENT_EXTRA)) { + Log.i(TAG, "Intent shared from the same package name. Ignoring the intent and do not add the token") + return + } + val uri = intent.data if (uri != null) { lifecycleScope.launch { @@ -460,5 +465,6 @@ class MainActivity : AppCompatActivity() { const val READ_KEY_URI_REQUEST_CODE = 44 const val WRITE_KEY_URI_REQUEST_CODE = 45 const val SCREENSHOT_MODE_EXTRA = "screenshot_mode" + const val SHARE_FROM_PACKAGE_NAME_INTENT_EXTRA = "shareFromPackageName" } } diff --git a/app/src/main/java/org/fedorahosted/freeotp/ui/TokenViewHolder.kt b/app/src/main/java/org/fedorahosted/freeotp/ui/TokenViewHolder.kt index baaafb6..7a85c12 100644 --- a/app/src/main/java/org/fedorahosted/freeotp/ui/TokenViewHolder.kt +++ b/app/src/main/java/org/fedorahosted/freeotp/ui/TokenViewHolder.kt @@ -32,6 +32,7 @@ class TokenViewHolder(private val activity: Activity, R.id.action_share -> { val i = Intent(Intent.ACTION_VIEW, Uri.parse(OtpTokenFactory.toUri(token).toString())) + i.putExtra(MainActivity.SHARE_FROM_PACKAGE_NAME_INTENT_EXTRA, activity.packageName) activity.startActivity(Intent.createChooser(i, null)) }