Show a dialog to select a signer when using multiple signers
This commit is contained in:
+7
-1
@@ -29,9 +29,15 @@ import com.vitorpamplona.quartz.nip55AndroidSigner.api.foreground.intents.result
|
||||
import com.vitorpamplona.quartz.nip55AndroidSigner.api.permission.Permission
|
||||
|
||||
object ExternalSignerLogin {
|
||||
fun createIntent(permissions: List<Permission> = LoginRequest.DefaultPermissions): Intent {
|
||||
fun createIntent(
|
||||
permissions: List<Permission> = LoginRequest.DefaultPermissions,
|
||||
packageName: String = "",
|
||||
): Intent {
|
||||
val intent = LoginRequest.assemble(permissions)
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
||||
if (packageName.isNotBlank()) {
|
||||
intent.`package` = packageName
|
||||
}
|
||||
return intent
|
||||
}
|
||||
|
||||
|
||||
+12
@@ -23,6 +23,7 @@ package com.vitorpamplona.quartz.nip55AndroidSigner.client
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.ResolveInfo
|
||||
import androidx.core.net.toUri
|
||||
|
||||
@SuppressLint("QueryPermissionsNeeded")
|
||||
@@ -35,3 +36,14 @@ fun isExternalSignerInstalled(context: Context): Boolean =
|
||||
},
|
||||
0,
|
||||
).isNotEmpty()
|
||||
|
||||
@SuppressLint("QueryPermissionsNeeded")
|
||||
fun getExternalSignersInstalled(context: Context): List<ResolveInfo> =
|
||||
context.packageManager
|
||||
.queryIntentActivities(
|
||||
Intent().apply {
|
||||
action = Intent.ACTION_VIEW
|
||||
data = "nostrsigner:".toUri()
|
||||
},
|
||||
0,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user