diff --git a/android/app/build.gradle b/android/app/build.gradle index fd64e6c..5619d8e 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -57,12 +57,12 @@ android { signingConfigs { - release { - storeFile file("key.jks") - storePassword "123456" - keyAlias "key0" - keyPassword "123456" - } +// release { +// storeFile file("key.jks") +// storePassword "123456" +// keyAlias "key0" +// keyPassword "123456" +// } } @@ -71,15 +71,15 @@ android { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - signingConfig signingConfigs.release +// signingConfig signingConfigs.release } debug { debuggable true - minifyEnabled true - signingConfig signingConfigs.release + minifyEnabled false +// signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index b47a018..422b834 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -46,6 +46,8 @@ + + + when (call.method) { + "launchPenguin" -> { + print("the platform channel is being called" ) + val args = call.arguments as Map? + Log.d("TAG", "configureFlutterEngine: $args") + println("args") + args?.let { + PenguinView(activity,100,args,flutterEngine.dartExecutor.binaryMessenger , activity = this,) + } + } + } + } } diff --git a/android/app/src/main/kotlin/com/eventtan/test/penguin_flutter_sample/penguin/PenguinView.kt b/android/app/src/main/kotlin/com/eventtan/test/penguin_flutter_sample/penguin/PenguinView.kt index ebdb83c..f8cb3e9 100644 --- a/android/app/src/main/kotlin/com/eventtan/test/penguin_flutter_sample/penguin/PenguinView.kt +++ b/android/app/src/main/kotlin/com/eventtan/test/penguin_flutter_sample/penguin/PenguinView.kt @@ -2,8 +2,10 @@ package com.eventtan.app.penguin_flutter_sample.penguin import android.app.Activity import android.content.Context +import android.content.Context.RECEIVER_EXPORTED import android.content.IntentFilter import android.graphics.Color +import android.os.Build import android.os.Handler import android.os.Looper import android.util.Log @@ -11,6 +13,7 @@ import android.view.View import android.view.ViewGroup import android.widget.RelativeLayout import android.widget.Toast +import androidx.annotation.RequiresApi import com.eventtan.test.penguin_flutter_sample.MainActivity import com.eventtan.test.penguin_flutter_sample.PermissionManager.PermissionHelper import com.eventtan.test.penguin_flutter_sample.PermissionManager.PermissionManager @@ -30,16 +33,17 @@ import io.flutter.plugin.platform.PlatformView * Implements `PlatformView` for rendering the view, `MethodChannel.MethodCallHandler` for handling method calls, * and `PenNavUIDelegate` for handling SDK events. */ +@RequiresApi(Build.VERSION_CODES.O) internal class PenguinView( context: Context, id: Int, - creationParams: Map?, + val creationParams: Map, messenger: BinaryMessenger, activity: MainActivity ) : PlatformView, MethodChannel.MethodCallHandler, PenNavUIDelegate { // The layout for displaying the Penguin UI private val mapLayout: RelativeLayout = RelativeLayout(context) - private val _context: Context = context.applicationContext + private val _context: Context = context private val permissionResultReceiver: PermissionResultReceiver private val permissionIntentFilter = IntentFilter("PERMISSION_RESULT_ACTION") @@ -71,8 +75,8 @@ internal class PenguinView( onPermissionsDenied() } } - - mContext.registerReceiver(permissionResultReceiver, permissionIntentFilter) +//todo handle properly the way it in the main app check the sdk version and cal it appropiately + mContext.registerReceiver(permissionResultReceiver, permissionIntentFilter,RECEIVER_EXPORTED) // Set the background color of the layout mapLayout.setBackgroundColor(Color.RED) @@ -155,12 +159,12 @@ internal class PenguinView( private fun initPenguin() { // Configure the PlugAndPlaySDK PlugAndPlaySDK.configuration = PlugAndPlayConfiguration.Builder() - .setBaseUrl("https://temp.penguinin.com", "https://temp.penguinin.com") - .setServiceName("api", "pe") - .setClientData("Client", "clientkey") + .setBaseUrl(creationParams["baseURL"], creationParams["positionURL"]) + .setServiceName(creationParams["dataServiceName"], creationParams["positionServiceName"]) + .setClientData(creationParams["clientID"], creationParams["clientKey"]) .setUserName("client") .setLanguageID(Languages.en) - .setSimulationModeEnabled(true) + .setSimulationModeEnabled(false) .setEnableBackButton(true) .setDeepLinkData("deeplink") .setCustomizeColor("#2CA0AF") @@ -189,16 +193,17 @@ internal class PenguinView( * @param warningCode Optional warning code received from the SDK. */ override fun onPenNavSuccess(warningCode: String?) { - if (_context is Activity) { - _context.runOnUiThread { - Toast.makeText(_context, "Success Info: $warningCode", Toast.LENGTH_SHORT).show() - } - } else { - val handler = Handler(Looper.getMainLooper()) - handler.post { - Toast.makeText(_context, "Success Info: $warningCode", Toast.LENGTH_SHORT).show() - } - } +// if (_context is Activity) { +// _context.runOnUiThread { +// Toast.makeText(_context, "Success Info: $warningCode", Toast.LENGTH_SHORT).show() +// } +// } else { +// println("the warming is presented $$warningCode") +//// val handler = Handler(Looper.getMainLooper()) +//// handler.post { +//// Toast.makeText(_context, "Success Info: $warningCode", Toast.LENGTH_SHORT).show() +//// } +// } } /** diff --git a/android/app/src/main/kotlin/com/eventtan/test/penguin_flutter_sample/penguin/PenguinViewFactory.kt b/android/app/src/main/kotlin/com/eventtan/test/penguin_flutter_sample/penguin/PenguinViewFactory.kt index 5ba640f..c58918f 100644 --- a/android/app/src/main/kotlin/com/eventtan/test/penguin_flutter_sample/penguin/PenguinViewFactory.kt +++ b/android/app/src/main/kotlin/com/eventtan/test/penguin_flutter_sample/penguin/PenguinViewFactory.kt @@ -1,6 +1,8 @@ package com.eventtan.app.penguin_flutter_sample.penguin import android.content.Context +import android.os.Build +import androidx.annotation.RequiresApi import com.eventtan.test.penguin_flutter_sample.MainActivity import io.flutter.plugin.common.BinaryMessenger import io.flutter.plugin.common.StandardMessageCodec @@ -28,9 +30,10 @@ class PenguinViewFactory( * @param args Optional arguments passed for creating the view, expected to be a [Map]. * @return A new instance of [PenguinView]. */ + @RequiresApi(Build.VERSION_CODES.O) override fun create(context: Context, viewId: Int, args: Any?): PlatformView { // Cast the arguments to a Map if they are provided - val creationParams = args as Map? + val creationParams = args as Map // Instantiate and return the PenguinView with the provided parameters return PenguinView(context, viewId, creationParams, messenger, mainActivity) diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 4e0eefd..3f7320d 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -12,6 +12,6 @@ UGVuZ3VpbklOX1Blbk5hdl9QSUY= - mapbox_token + sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg //////////////////////////////////////////// \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle index 0f2b41c..2e9680b 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -2,20 +2,21 @@ buildscript { repositories { google() mavenCentral() - maven { url 'https://plugins.gradle.org/m2' } +// maven { url 'https://plugins.gradle.org/m2' } // maven { url 'https://jitpack.io' } maven { url 'https://api.mapbox.com/downloads/v2/releases/maven' - authentication { - basic(BasicAuthentication) - } + credentials { username = 'mapbox' - password = "sk.eyJ1IjoidmlyYWwtbW9ibWF4aW1lIiwiYSI6ImNseWZ0MzByYTAzZ2MyeHMxMXp3NWRscWYifQ.Dq-SRE-hyED1ojrJcq3JKA" + password = "sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg" if (password == null || password == "") { throw new GradleException("MAPBOX_DOWNLOADS_TOKEN isn't set. Set it to the project properties or to the enviroment variables.") } } + authentication { + basic(BasicAuthentication) + } } } dependencies { @@ -35,7 +36,7 @@ allprojects { } credentials { username = 'mapbox' - password = "sk.eyJ1IjoidmlyYWwtbW9ibWF4aW1lIiwiYSI6ImNseWZ0MzByYTAzZ2MyeHMxMXp3NWRscWYifQ.Dq-SRE-hyED1ojrJcq3JKA" + password = "sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg" if (password == null || password == "") { throw new GradleException("MAPBOX_DOWNLOADS_TOKEN isn't set. Set it to the project properties or to the enviroment variables.") } diff --git a/android/gradle.properties b/android/gradle.properties index a2ba77c..a674d24 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -4,5 +4,5 @@ android.enableJetifier=true android.nonTransitiveRClass=false android.nonFinalResIds=false MAPBOX_USER_NAME = "mapbox" -MAPBOX_DOWNLOADS_TOKEN="sk.eyJ1IjoidmlyYWwtbW9ibWF4aW1lIiwiYSI6ImNseWZ0MzByYTAzZ2MyeHMxMXp3NWRscWYifQ.Dq-SRE-hyED1ojrJcq3JKA" +MAPBOX_DOWNLOADS_TOKEN="sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg" diff --git a/android/settings.gradle b/android/settings.gradle index 23208d4..6fe4440 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -13,13 +13,12 @@ pluginManagement { google() mavenCentral() gradlePluginPortal() - maven { url 'https://plugins.gradle.org/m2' } maven { url 'https://jitpack.io' } maven { url 'https://api.mapbox.com/downloads/v2/releases/maven' credentials { username = 'mapbox' - password = 'sk.eyJ1IjoidmlyYWwtbW9ibWF4aW1lIiwiYSI6ImNseWZ0MzByYTAzZ2MyeHMxMXp3NWRscWYifQ.Dq-SRE-hyED1ojrJcq3JKA' + password = 'sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg' if (password == null || password == "") { throw new GradleException("MAPBOX_DOWNLOADS_TOKEN isn't set. Set it to the project properties or to the enviroment variables.") }