From 5fb8cbe10271bdb8b9940500c13f960ce04f5087 Mon Sep 17 00:00:00 2001
From: DASHU <385321165@qq.com>
Date: Fri, 9 May 2025 01:47:30 +0800
Subject: [PATCH 1/5] add isAndroidSignerInstall method
---
android/src/main/AndroidManifest.xml | 1 +
.../amberflutter/amberflutter/AmberflutterPlugin.kt | 13 +++++++++++++
lib/amberflutter.dart | 4 ++++
lib/amberflutter_method_channel.dart | 13 +++++++++++--
lib/amberflutter_platform_interface.dart | 5 +++++
5 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index dae4879..924c5ff 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -2,5 +2,6 @@
package="com.sebdeveloper6952.amberflutter.amberflutter">
+
diff --git a/android/src/main/kotlin/com/sebdeveloper6952/amberflutter/amberflutter/AmberflutterPlugin.kt b/android/src/main/kotlin/com/sebdeveloper6952/amberflutter/amberflutter/AmberflutterPlugin.kt
index c1b360b..9e3a91c 100644
--- a/android/src/main/kotlin/com/sebdeveloper6952/amberflutter/amberflutter/AmberflutterPlugin.kt
+++ b/android/src/main/kotlin/com/sebdeveloper6952/amberflutter/amberflutter/AmberflutterPlugin.kt
@@ -41,6 +41,16 @@ class AmberflutterPlugin: FlutterPlugin, MethodCallHandler, ActivityAware, Plugi
return context.packageManager.getInstalledApplications(0).find { info -> info.packageName == target } != null
}
+ fun isAndroidSignerInstalled(context: Context): Boolean {
+ val intent =
+ Intent().apply {
+ action = Intent.ACTION_VIEW
+ data = Uri.parse("nostrsigner:")
+ }
+ val infos = context.packageManager.queryIntentActivities(intent, 0)
+ return infos.size > 0
+ }
+
override fun onMethodCall(call: MethodCall, result: Result) {
if (call.method == nostrsignerUri) {
_result = MethodResultWrapper(result)
@@ -102,6 +112,9 @@ class AmberflutterPlugin: FlutterPlugin, MethodCallHandler, ActivityAware, Plugi
var packageName: String? = paramsMap["packageName"] as? String ?: return
val isInstalled: Boolean = isPackageInstalled(_context, packageName!!)
result.success(isInstalled);
+ } else if (call.method == "isAndroidSignerInstalled") {
+ val isInstalled: Boolean = isAndroidSignerInstalled(_context)
+ result.success(isInstalled);
} else {
result.notImplemented()
}
diff --git a/lib/amberflutter.dart b/lib/amberflutter.dart
index 71ad477..4b9ab83 100644
--- a/lib/amberflutter.dart
+++ b/lib/amberflutter.dart
@@ -16,6 +16,10 @@ class Amberflutter {
return AmberflutterPlatform.instance.isAppInstalled();
}
+ Future isAndroidSignerInstalled() {
+ return AmberflutterPlatform.instance.isAndroidSignerInstalled();
+ }
+
Future