diff --git a/android/src/main/kotlin/com/bhikadia/receive_intent/ReceiveIntentPlugin.kt b/android/src/main/kotlin/com/bhikadia/receive_intent/ReceiveIntentPlugin.kt index daa171b..e4381f7 100644 --- a/android/src/main/kotlin/com/bhikadia/receive_intent/ReceiveIntentPlugin.kt +++ b/android/src/main/kotlin/com/bhikadia/receive_intent/ReceiveIntentPlugin.kt @@ -14,6 +14,7 @@ import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel.MethodCallHandler import io.flutter.plugin.common.MethodChannel.Result import org.json.JSONObject +// import android.util.Log /** ReceiveIntentPlugin */ @@ -35,8 +36,10 @@ class ReceiveIntentPlugin : FlutterPlugin, MethodCallHandler, EventChannel.Strea private var initialIntent = true private fun handleIntent(intent: Intent, fromPackageName: String?) { - //Log.e("ReceiveIntentPlugin", "intent: $intent") - //Log.e("ReceiveIntentPlugin", "fromPackageName: $fromPackageName") + // Log.e("ReceiveIntentPlugin", "intent: $intent") + // val decodeData = intent.extras?.get("com.symbol.datawedge.decode_data") + // Log.e("ReceiveIntentPlugin", "decodeData: $decodeData") + // Log.e("ReceiveIntentPlugin", "fromPackageName: $fromPackageName") val intentMap = mapOf( "fromPackageName" to fromPackageName, "fromSignatures" to fromPackageName?.let { getApplicationSignature(context, it) }, @@ -45,7 +48,7 @@ class ReceiveIntentPlugin : FlutterPlugin, MethodCallHandler, EventChannel.Strea "categories" to intent.categories?.toList(), "extra" to intent.extras?.let { bundleToJSON(it).toString() } ) - //Log.e("ReceiveIntentPlugin", "intentMap: $intentMap") + // Log.e("ReceiveIntentPlugin", "intentMap: $intentMap") if (initialIntent) { initialIntentMap = intentMap initialIntent = false @@ -111,6 +114,7 @@ class ReceiveIntentPlugin : FlutterPlugin, MethodCallHandler, EventChannel.Strea override fun onAttachedToActivity(binding: ActivityPluginBinding) { activity = binding.activity binding.addOnNewIntentListener(fun(intent: Intent?): Boolean { + // Log.e("addOnNewIntentListener", "intent: $intent") intent?.let { handleIntent(it, binding.activity.callingActivity?.packageName) } return false; }) diff --git a/android/src/main/kotlin/com/bhikadia/receive_intent/Utils.kt b/android/src/main/kotlin/com/bhikadia/receive_intent/Utils.kt index cc4a4cd..bf920ee 100644 --- a/android/src/main/kotlin/com/bhikadia/receive_intent/Utils.kt +++ b/android/src/main/kotlin/com/bhikadia/receive_intent/Utils.kt @@ -7,7 +7,7 @@ import android.net.Uri import android.os.Build import android.os.Bundle import android.os.Parcelable -import android.util.Log +// import android.util.Log import org.json.JSONArray import org.json.JSONException import org.json.JSONObject @@ -52,6 +52,7 @@ fun bundleToJSON(bundle: Bundle): JSONObject { while (iterator.hasNext()) { val key = iterator.next() try { + // Log.e("ReceiveIntentPlugin wrapping key", "$key") json.put(key, wrap(bundle.get(key))) } catch (e: JSONException) { e.printStackTrace() @@ -62,27 +63,31 @@ fun bundleToJSON(bundle: Bundle): JSONObject { fun wrap(o: Any?): Any? { if (o == null) { + // Log.e("ReceiveIntentPlugin", "$o is null") return JSONObject.NULL } if (o is JSONArray || o is JSONObject) { + // Log.e("ReceiveIntentPlugin", "$o is JSONArray or JSONObject") return o } if (o == JSONObject.NULL) { + // Log.e("ReceiveIntentPlugin", "$o is JSONObject.NULL") return o } try { if (o is Collection<*>) { - //Log.e("ReceiveIntentPlugin", "$o is Collection<*>") + // Log.e("ReceiveIntentPlugin", "$o is Collection<*>") if (o is ArrayList<*>) { + // Log.e("ReceiveIntentPlugin", "..And also ArrayList") return toJSONArray(o) } return JSONArray(o as Collection<*>?) } else if (o.javaClass.isArray) { - //Log.e("ReceiveIntentPlugin", "$o is isArray") + // Log.e("ReceiveIntentPlugin", "$o is isArray") return toJSONArray(o) } if (o is Map<*, *>) { - //Log.e("ReceiveIntentPlugin", "$o is Map<*, *>") + // Log.e("ReceiveIntentPlugin", "$o is Map<*, *>") return JSONObject(o as Map<*, *>?) } if (o is Boolean || @@ -100,7 +105,7 @@ fun wrap(o: Any?): Any? { return o.toString() } } catch (e: Exception) { - //Log.e("ReceiveIntentPlugin", e.message, e) + // Log.e("ReceiveIntentPlugin", e.message, e) } return null } @@ -109,21 +114,41 @@ fun wrap(o: Any?): Any? { fun toJSONArray(array: Any): JSONArray? { val result = JSONArray() if (!array.javaClass.isArray && array !is ArrayList<*>) { + // Log.e("ReceiveIntentPlugin not a primitive array", "") throw JSONException("Not a primitive array: " + array.javaClass) } when (array) { is List<*> -> { + // Log.e("ReceiveIntentPlugin toJSONArray List", "") + // Log.e("ReceiveIntentPlugin toJSONArray List size", "${array.size}") array.forEach { result.put(wrap(it)) } } is Array<*> -> { + // Log.e("ReceiveIntentPlugin toJSONArray Array", "") + // Log.e("ReceiveIntentPlugin toJSONArray Array size", "${array.size}") array.forEach { result.put(wrap(it)) } } is ArrayList<*> -> { + // Log.e("ReceiveIntentPlugin toJSONArray ArrayList", "") array.forEach { result.put(wrap(it)) } } + is ByteArray -> { + // Log.e("ReceiveIntentPlugin toJSONArray ByteArray", "") + array.forEach { result.put(wrap(it)) } + } + else -> { + // val typename = array.javaClass.kotlin.simpleName + // Log.e("ReceiveIntentPlugin toJSONArray else", "$typename") + val length = java.lang.reflect.Array.getLength(array) + for (i in 0 until length) { + result.put(wrap(java.lang.reflect.Array.get(array, i))) + } + } } + // Log.e("ReceiveIntentPlugin toJSONArray result", "$result") + return result }