WD: unresolved reference issue fixed

dev_v3.13.6_deep_link
taha.alam 10 months ago
parent 2a37777b9a
commit 06192292d0

@ -119,7 +119,7 @@
android:usesCleartextTraffic="true"
tools:replace="android:extractNativeLibs,android:label">
<activity
android:name=".WhatsAppCodeActivity"
android:name="com.cloud.diplomaticquarterapp.whatsapp.WhatsAppCodeActivity"
android:exported="true"
android:enabled="true"
android:launchMode="standard"

@ -1,52 +1,53 @@
//package com.cloud.diplomaticquarterapp
//import com.ejada.hmg.MainActivity
//import android.os.Build
//import android.util.Log
//import androidx.annotation.RequiresApi
//import com.cloud.diplomaticquarterapp.penguin.PenguinView
//import io.flutter.embedding.engine.FlutterEngine
//import io.flutter.plugin.common.MethodCall
//import io.flutter.plugin.common.MethodChannel
//
//class PenguinInPlatformBridge(
// private var flutterEngine: FlutterEngine,
// private var mainActivity: MainActivity
//) {
//
// private lateinit var channel: MethodChannel
//
// companion object {
// private const val CHANNEL = "launch_penguin_ui"
// }
//
// @RequiresApi(Build.VERSION_CODES.O)
// fun create() {
//// openTok = OpenTok(mainActivity, flutterEngine)
// channel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL)
// channel.setMethodCallHandler { call: MethodCall, result: MethodChannel.Result ->
// when (call.method) {
// "launchPenguin" -> {
// print("the platform channel is being called")
// val args = call.arguments as Map<String, Any>?
// Log.d("TAG", "configureFlutterEngine: $args")
// println("args")
// args?.let {
// PenguinView(
// mainActivity,
// 100,
// args,
// flutterEngine.dartExecutor.binaryMessenger,
// activity = mainActivity,
// channel
// )
// }
// }
//
// else -> {
// result.notImplemented()
// }
// }
// }
// }
//
//}
package com.cloud.diplomaticquarterapp
import com.ejada.hmg.MainActivity
import android.os.Build
import android.util.Log
import androidx.annotation.RequiresApi
import com.cloud.diplomaticquarterapp.penguin.PenguinView
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
class PenguinInPlatformBridge(
private var flutterEngine: FlutterEngine,
private var mainActivity: MainActivity
) {
private lateinit var channel: MethodChannel
companion object {
private const val CHANNEL = "launch_penguin_ui"
}
@RequiresApi(Build.VERSION_CODES.O)
fun create() {
// openTok = OpenTok(mainActivity, flutterEngine)
channel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL)
channel.setMethodCallHandler { call: MethodCall, result: MethodChannel.Result ->
when (call.method) {
"launchPenguin" -> {
print("the platform channel is being called")
val args = call.arguments as Map<String, Any>?
Log.d("TAG", "configureFlutterEngine: $args")
println("args")
args?.let {
PenguinView(
mainActivity,
100,
args,
flutterEngine.dartExecutor.binaryMessenger,
activity = mainActivity,
channel
)
}
}
else -> {
result.notImplemented()
}
}
}
}
}

@ -1,97 +1,97 @@
//package com.cloud.diplomaticquarterapp.penguin
//
//import android.content.Context
//import com.google.gson.Gson
//import com.peng.pennavmap.PlugAndPlaySDK
//import com.peng.pennavmap.connections.ApiController
//import com.peng.pennavmap.interfaces.RefIdDelegate
//import com.peng.pennavmap.models.TokenModel
//import com.peng.pennavmap.models.postmodels.PostToken
//import com.peng.pennavmap.utils.AppSharedData
//import okhttp3.ResponseBody
//import retrofit2.Call
//import retrofit2.Callback
//import retrofit2.Response
//import android.util.Log
//
//
//class PenguinNavigator() {
//
// fun navigateTo(mContext: Context, refID: String, delegate: RefIdDelegate,clientID : String,clientKey : String ) {
// val postToken = PostToken(clientID, clientKey)
// getToken(mContext, postToken, object : RefIdDelegate {
// override fun onRefByIDSuccess(PoiId: String?) {
// Log.e("navigateTo", "PoiId is+++++++ $PoiId")
//
// PlugAndPlaySDK.navigateTo(mContext, refID, object : RefIdDelegate {
// override fun onRefByIDSuccess(PoiId: String?) {
// Log.e("navigateTo", "PoiId 2is+++++++ $PoiId")
//
// delegate.onRefByIDSuccess(refID)
//
// }
//
// override fun onGetByRefIDError(error: String?) {
// delegate.onRefByIDSuccess(error)
// }
//
// })
//
//
// }
//
// override fun onGetByRefIDError(error: String?) {
// delegate.onRefByIDSuccess(error)
// }
//
// })
//
// }
//
// fun getToken(mContext: Context, postToken: PostToken?, apiTokenCallBack: RefIdDelegate) {
// try {
// // Create the API call
// val purposesCall: Call<ResponseBody> = ApiController.getInstance(mContext)
// .apiMethods
// .getToken(postToken)
//
// // Enqueue the call for asynchronous execution
// purposesCall.enqueue(object : Callback<ResponseBody?> {
// override fun onResponse(
// call: Call<ResponseBody?>,
// response: Response<ResponseBody?>
// ) {
// if (response.isSuccessful() && response.body() != null) {
// try {
// response.body()?.use { responseBody ->
// val responseBodyString: String = responseBody.string() // Use `string()` to get the actual response content
// if (responseBodyString.isNotEmpty()) {
// val tokenModel = Gson().fromJson(responseBodyString, TokenModel::class.java)
// if (tokenModel != null && tokenModel.token != null) {
// AppSharedData.apiToken = tokenModel.token
// apiTokenCallBack.onRefByIDSuccess(tokenModel.token)
// } else {
// apiTokenCallBack.onGetByRefIDError("Failed to parse token model")
// }
// } else {
// apiTokenCallBack.onGetByRefIDError("Response body is empty")
// }
// }
// } catch (e: Exception) {
// apiTokenCallBack.onGetByRefIDError("An error occurred: ${e.message}")
// }
// } else {
// apiTokenCallBack.onGetByRefIDError("Unsuccessful response: " + response.code())
// }
// }
//
// override fun onFailure(call: Call<ResponseBody?>, t: Throwable) {
// apiTokenCallBack.onGetByRefIDError(t.message)
// }
// })
// } catch (error: Exception) {
// apiTokenCallBack.onGetByRefIDError("Exception during API call: $error")
// }
// }
//
//}
package com.cloud.diplomaticquarterapp.penguin
import android.content.Context
import com.google.gson.Gson
import com.peng.pennavmap.PlugAndPlaySDK
import com.peng.pennavmap.connections.ApiController
import com.peng.pennavmap.interfaces.RefIdDelegate
import com.peng.pennavmap.models.TokenModel
import com.peng.pennavmap.models.postmodels.PostToken
import com.peng.pennavmap.utils.AppSharedData
import okhttp3.ResponseBody
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import android.util.Log
class PenguinNavigator() {
fun navigateTo(mContext: Context, refID: String, delegate: RefIdDelegate,clientID : String,clientKey : String ) {
val postToken = PostToken(clientID, clientKey)
getToken(mContext, postToken, object : RefIdDelegate {
override fun onRefByIDSuccess(PoiId: String?) {
Log.e("navigateTo", "PoiId is+++++++ $PoiId")
PlugAndPlaySDK.navigateTo(mContext, refID, object : RefIdDelegate {
override fun onRefByIDSuccess(PoiId: String?) {
Log.e("navigateTo", "PoiId 2is+++++++ $PoiId")
delegate.onRefByIDSuccess(refID)
}
override fun onGetByRefIDError(error: String?) {
delegate.onRefByIDSuccess(error)
}
})
}
override fun onGetByRefIDError(error: String?) {
delegate.onRefByIDSuccess(error)
}
})
}
fun getToken(mContext: Context, postToken: PostToken?, apiTokenCallBack: RefIdDelegate) {
try {
// Create the API call
val purposesCall: Call<ResponseBody> = ApiController.getInstance(mContext)
.apiMethods
.getToken(postToken)
// Enqueue the call for asynchronous execution
purposesCall.enqueue(object : Callback<ResponseBody?> {
override fun onResponse(
call: Call<ResponseBody?>,
response: Response<ResponseBody?>
) {
if (response.isSuccessful() && response.body() != null) {
try {
response.body()?.use { responseBody ->
val responseBodyString: String = responseBody.string() // Use `string()` to get the actual response content
if (responseBodyString.isNotEmpty()) {
val tokenModel = Gson().fromJson(responseBodyString, TokenModel::class.java)
if (tokenModel != null && tokenModel.token != null) {
AppSharedData.apiToken = tokenModel.token
apiTokenCallBack.onRefByIDSuccess(tokenModel.token)
} else {
apiTokenCallBack.onGetByRefIDError("Failed to parse token model")
}
} else {
apiTokenCallBack.onGetByRefIDError("Response body is empty")
}
}
} catch (e: Exception) {
apiTokenCallBack.onGetByRefIDError("An error occurred: ${e.message}")
}
} else {
apiTokenCallBack.onGetByRefIDError("Unsuccessful response: " + response.code())
}
}
override fun onFailure(call: Call<ResponseBody?>, t: Throwable) {
apiTokenCallBack.onGetByRefIDError(t.message)
}
})
} catch (error: Exception) {
apiTokenCallBack.onGetByRefIDError("Exception during API call: $error")
}
}
}

@ -1,321 +1,321 @@
//package com.cloud.diplomaticquarterapp.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.util.Log
//import android.view.View
//import android.view.ViewGroup
//import android.widget.RelativeLayout
//import android.widget.Toast
//import androidx.annotation.RequiresApi
//import com.cloud.diplomaticquarterapp.PermissionManager.PermissionHelper
//import com.cloud.diplomaticquarterapp.PermissionManager.PermissionManager
//import com.cloud.diplomaticquarterapp.PermissionManager.PermissionResultReceiver
//import com.ejada.hmg.MainActivity
//import com.peng.pennavmap.PlugAndPlayConfiguration
//import com.peng.pennavmap.PlugAndPlaySDK
//import com.peng.pennavmap.enums.InitializationErrorType
//import com.peng.pennavmap.interfaces.PenNavUIDelegate
//import com.peng.pennavmap.utils.Languages
//import io.flutter.plugin.common.BinaryMessenger
//import io.flutter.plugin.common.MethodCall
//import io.flutter.plugin.common.MethodChannel
//import io.flutter.plugin.platform.PlatformView
//import com.cloud.diplomaticquarterapp.penguin.PenguinNavigator
//import com.peng.pennavmap.interfaces.PIEventsDelegate
//import com.peng.pennavmap.interfaces.PILocationDelegate
//import com.peng.pennavmap.interfaces.RefIdDelegate
//import com.peng.pennavmap.models.PIReportIssue
///**
// * Custom PlatformView for displaying Penguin UI components within a Flutter app.
// * 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,
// val creationParams: Map<String, Any>,
// messenger: BinaryMessenger,
// activity: MainActivity,
// val channel: MethodChannel
//) : PlatformView, MethodChannel.MethodCallHandler, PenNavUIDelegate {
// // The layout for displaying the Penguin UI
// private val mapLayout: RelativeLayout = RelativeLayout(context)
// private val _context: Context = context
//
// private val permissionResultReceiver: PermissionResultReceiver
// private val permissionIntentFilter = IntentFilter("PERMISSION_RESULT_ACTION")
//
// private companion object {
// const val PERMISSIONS_REQUEST_CODE = 1
// }
//
// private lateinit var permissionManager: PermissionManager
//
// // Reference to the main activity
// private var _activity: Activity = activity
//
// private lateinit var mContext: Context
//
// lateinit var navigator: PenguinNavigator
//
// init {
// // Set layout parameters for the mapLayout
// mapLayout.layoutParams = ViewGroup.LayoutParams(
// ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
// )
//
// mContext = context
//
//
// permissionResultReceiver = PermissionResultReceiver { granted ->
// if (granted) {
// onPermissionsGranted()
// } else {
// onPermissionsDenied()
// }
// }
// if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
// mContext.registerReceiver(
// permissionResultReceiver,
// permissionIntentFilter,
// RECEIVER_EXPORTED
// )
// } else {
// mContext.registerReceiver(
// permissionResultReceiver,
// permissionIntentFilter,
// )
// }
//
// // Set the background color of the layout
// mapLayout.setBackgroundColor(Color.RED)
//
// permissionManager = PermissionManager(
// context = mContext,
// listener = object : PermissionManager.PermissionListener {
// override fun onPermissionGranted() {
// // Handle permissions granted
// onPermissionsGranted()
// }
//
// override fun onPermissionDenied() {
// // Handle permissions denied
// onPermissionsDenied()
// }
// },
// requestCode = PERMISSIONS_REQUEST_CODE,
// *PermissionHelper.getRequiredPermissions()
// )
//
// if (!permissionManager.arePermissionsGranted()) {
// permissionManager.requestPermissions(_activity)
// } else {
// // Permissions already granted
// permissionManager.listener.onPermissionGranted()
// }
//
//
// }
//
// private fun onPermissionsGranted() {
// // Handle the actions when permissions are granted
// Log.d("PermissionsResult", "onPermissionsGranted")
// // Register the platform view factory for creating custom views
//
// // Initialize the Penguin SDK
// initPenguin()
//
//
// }
//
// private fun onPermissionsDenied() {
// // Handle the actions when permissions are denied
// Log.d("PermissionsResult", "onPermissionsDenied")
//
// }
//
// /**
// * Returns the view associated with this PlatformView.
// *
// * @return The main view for this PlatformView.
// */
// override fun getView(): View {
// return mapLayout
// }
//
// /**
// * Cleans up resources associated with this PlatformView.
// */
// override fun dispose() {
// // Cleanup code if needed
// }
//
// /**
// * Handles method calls from Dart code.
// *
// * @param call The method call from Dart.
// * @param result The result callback to send responses back to Dart.
// */
// override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
// // Handle method calls from Dart code here
// }
//
// /**
// * Initializes the Penguin SDK with custom configuration and delegates.
// */
// private fun initPenguin() {
// navigator = PenguinNavigator()
// // Configure the PlugAndPlaySDK
// val language = when (creationParams["languageCode"] as String) {
// "ar" -> Languages.ar
// "en" -> Languages.en
// else -> {
// Languages.en
// }
package com.cloud.diplomaticquarterapp.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.util.Log
import android.view.View
import android.view.ViewGroup
import android.widget.RelativeLayout
import android.widget.Toast
import androidx.annotation.RequiresApi
import com.cloud.diplomaticquarterapp.PermissionManager.PermissionHelper
import com.cloud.diplomaticquarterapp.PermissionManager.PermissionManager
import com.cloud.diplomaticquarterapp.PermissionManager.PermissionResultReceiver
import com.ejada.hmg.MainActivity
import com.peng.pennavmap.PlugAndPlayConfiguration
import com.peng.pennavmap.PlugAndPlaySDK
import com.peng.pennavmap.enums.InitializationErrorType
import com.peng.pennavmap.interfaces.PenNavUIDelegate
import com.peng.pennavmap.utils.Languages
import io.flutter.plugin.common.BinaryMessenger
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.platform.PlatformView
import com.cloud.diplomaticquarterapp.penguin.PenguinNavigator
import com.peng.pennavmap.interfaces.PIEventsDelegate
import com.peng.pennavmap.interfaces.PILocationDelegate
import com.peng.pennavmap.interfaces.RefIdDelegate
import com.peng.pennavmap.models.PIReportIssue
/**
* Custom PlatformView for displaying Penguin UI components within a Flutter app.
* 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,
val creationParams: Map<String, Any>,
messenger: BinaryMessenger,
activity: MainActivity,
val channel: MethodChannel
) : PlatformView, MethodChannel.MethodCallHandler, PenNavUIDelegate {
// The layout for displaying the Penguin UI
private val mapLayout: RelativeLayout = RelativeLayout(context)
private val _context: Context = context
private val permissionResultReceiver: PermissionResultReceiver
private val permissionIntentFilter = IntentFilter("PERMISSION_RESULT_ACTION")
private companion object {
const val PERMISSIONS_REQUEST_CODE = 1
}
private lateinit var permissionManager: PermissionManager
// Reference to the main activity
private var _activity: Activity = activity
private lateinit var mContext: Context
lateinit var navigator: PenguinNavigator
init {
// Set layout parameters for the mapLayout
mapLayout.layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
)
mContext = context
permissionResultReceiver = PermissionResultReceiver { granted ->
if (granted) {
onPermissionsGranted()
} else {
onPermissionsDenied()
}
}
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
mContext.registerReceiver(
permissionResultReceiver,
permissionIntentFilter,
RECEIVER_EXPORTED
)
} else {
mContext.registerReceiver(
permissionResultReceiver,
permissionIntentFilter,
)
}
// Set the background color of the layout
mapLayout.setBackgroundColor(Color.RED)
permissionManager = PermissionManager(
context = mContext,
listener = object : PermissionManager.PermissionListener {
override fun onPermissionGranted() {
// Handle permissions granted
onPermissionsGranted()
}
override fun onPermissionDenied() {
// Handle permissions denied
onPermissionsDenied()
}
},
requestCode = PERMISSIONS_REQUEST_CODE,
*PermissionHelper.getRequiredPermissions()
)
if (!permissionManager.arePermissionsGranted()) {
permissionManager.requestPermissions(_activity)
} else {
// Permissions already granted
permissionManager.listener.onPermissionGranted()
}
}
private fun onPermissionsGranted() {
// Handle the actions when permissions are granted
Log.d("PermissionsResult", "onPermissionsGranted")
// Register the platform view factory for creating custom views
// Initialize the Penguin SDK
initPenguin()
}
private fun onPermissionsDenied() {
// Handle the actions when permissions are denied
Log.d("PermissionsResult", "onPermissionsDenied")
}
/**
* Returns the view associated with this PlatformView.
*
* @return The main view for this PlatformView.
*/
override fun getView(): View {
return mapLayout
}
/**
* Cleans up resources associated with this PlatformView.
*/
override fun dispose() {
// Cleanup code if needed
}
/**
* Handles method calls from Dart code.
*
* @param call The method call from Dart.
* @param result The result callback to send responses back to Dart.
*/
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
// Handle method calls from Dart code here
}
/**
* Initializes the Penguin SDK with custom configuration and delegates.
*/
private fun initPenguin() {
navigator = PenguinNavigator()
// Configure the PlugAndPlaySDK
val language = when (creationParams["languageCode"] as String) {
"ar" -> Languages.ar
"en" -> Languages.en
else -> {
Languages.en
}
}
Log.d(
"TAG",
"initPenguin: ${Languages.getLanguageEnum(creationParams["languageCode"] as String)}"
)
PlugAndPlaySDK.configuration = PlugAndPlayConfiguration.Builder()
.setBaseUrl(
creationParams["dataURL"] as String,
creationParams["positionURL"] as String
)
.setServiceName(
creationParams["dataServiceName"] as String,
creationParams["positionServiceName"] as String
)
.setClientData(
creationParams["clientID"] as String,
creationParams["clientKey"] as String
)
.setUserName(creationParams["username"] as String)
// .setLanguageID(Languages.en)
.setLanguageID(language)
.setSimulationModeEnabled(creationParams["isSimulationModeEnabled"] as Boolean)
.setEnableBackButton(true)
// .setDeepLinkData("deeplink")
.setCustomizeColor("#2CA0AF")
.setDeepLinkSchema("")
.setIsEnableReportIssue(true)
.build()
// Set location delegate to handle location updates
// PlugAndPlaySDK.setPiLocationDelegate {
// Example code to handle location updates
// Uncomment and modify as needed
// if (location.size() > 0)
// Toast.makeText(_context, "Location Info Latitude: ${location[0]}, Longitude: ${location[1]}", Toast.LENGTH_SHORT).show()
// }
// Log.d(
// "TAG",
// "initPenguin: ${Languages.getLanguageEnum(creationParams["languageCode"] as String)}"
// )
// PlugAndPlaySDK.configuration = PlugAndPlayConfiguration.Builder()
// .setBaseUrl(
// creationParams["dataURL"] as String,
// creationParams["positionURL"] as String
// )
// .setServiceName(
// creationParams["dataServiceName"] as String,
// creationParams["positionServiceName"] as String
// )
// .setClientData(
// creationParams["clientID"] as String,
// creationParams["clientKey"] as String
// )
// .setUserName(creationParams["username"] as String)
//// .setLanguageID(Languages.en)
// .setLanguageID(language)
// .setSimulationModeEnabled(creationParams["isSimulationModeEnabled"] as Boolean)
// .setEnableBackButton(true)
//// .setDeepLinkData("deeplink")
// .setCustomizeColor("#2CA0AF")
// .setDeepLinkSchema("")
// .setIsEnableReportIssue(true)
// .build()
//
// // Set location delegate to handle location updates
//// PlugAndPlaySDK.setPiLocationDelegate {
// // Example code to handle location updates
// // Uncomment and modify as needed
// // if (location.size() > 0)
// // Toast.makeText(_context, "Location Info Latitude: ${location[0]}, Longitude: ${location[1]}", Toast.LENGTH_SHORT).show()
//// }
//
// // Set events delegate for reporting issues
//// PlugAndPlaySDK.setPiEventsDelegate(new PIEventsDelegate() {
//// @Override
//// public void onReportIssue(PIReportIssue issue) {
//// Log.e("Issue Reported: ", issue.getReportType());
//// }
//// // Implement issue reporting logic here }
//// @Override
//// public void onSharedLocation(String link) {
//// // Implement Shared location logic here
//// }
//// })
//
// // Start the Penguin SDK
// PlugAndPlaySDK.start(mContext, this)
// }
//
//
// /**
// * Navigates to the specified reference ID.
// *
// * @param refID The reference ID to navigate to.
// */
// fun navigateTo(refID: String) {
// try {
// if (refID.isBlank()) {
// Log.e("navigateTo", "Invalid refID: The reference ID is blank.")
// Set events delegate for reporting issues
// PlugAndPlaySDK.setPiEventsDelegate(new PIEventsDelegate() {
// @Override
// public void onReportIssue(PIReportIssue issue) {
// Log.e("Issue Reported: ", issue.getReportType());
// }
//// referenceId = refID
// navigator.navigateTo(mContext, refID,object : RefIdDelegate {
// override fun onRefByIDSuccess(PoiId: String?) {
// Log.e("navigateTo", "PoiId is penguin view+++++++ $PoiId")
//
//// channelFlutter.invokeMethod(
//// PenguinMethod.navigateToPOI.name,
//// "navigateTo Success"
//// )
// // Implement issue reporting logic here }
// @Override
// public void onSharedLocation(String link) {
// // Implement Shared location logic here
// }
//
// override fun onGetByRefIDError(error: String?) {
// Log.e("navigateTo", "error is penguin view+++++++ $error")
//
//// channelFlutter.invokeMethod(
//// PenguinMethod.navigateToPOI.name,
//// "navigateTo Failed: Invalid refID"
//// )
// }
// } , creationParams["clientID"] as String, creationParams["clientKey"] as String )
//
// } catch (e: Exception) {
// Log.e("navigateTo", "Exception occurred during navigation: ${e.message}", e)
//// channelFlutter.invokeMethod(
//// PenguinMethod.navigateToPOI.name,
//// "Failed: Exception - ${e.message}"
//// )
// }
// }
//
// /**
// * Called when Penguin UI setup is successful.
// *
// * @param warningCode Optional warning code received from the SDK.
// */
// override fun onPenNavSuccess(warningCode: String?) {
// val clinicId = creationParams["clinicID"] as String
//
// if(clinicId.isEmpty()) return
//
// navigateTo(clinicId)
// }
//
// /**
// * Called when there is an initialization error with Penguin UI.
// *
// * @param description Description of the error.
// * @param errorType Type of initialization error.
// */
// override fun onPenNavInitializationError(
// description: String?,
// errorType: InitializationErrorType?
// ) {
// val arguments: Map<String, Any?> = mapOf(
// "description" to description,
// "type" to errorType?.name
// )
//
// channel.invokeMethod(PenguinMethod.onPenNavInitializationError.name, arguments)
// Toast.makeText(mContext, "Navigation Error: $description", Toast.LENGTH_SHORT).show()
// }
//
// /**
// * Called when Penguin UI is dismissed.
// */
// override fun onPenNavUIDismiss() {
// // Handle UI dismissal if needed
// try {
// mContext.unregisterReceiver(permissionResultReceiver)
// dispose();
// } catch (e: IllegalArgumentException) {
// Log.e("PenguinView", "Receiver not registered: $e")
// }
// }
//}
//
// })
// Start the Penguin SDK
PlugAndPlaySDK.start(mContext, this)
}
/**
* Navigates to the specified reference ID.
*
* @param refID The reference ID to navigate to.
*/
fun navigateTo(refID: String) {
try {
if (refID.isBlank()) {
Log.e("navigateTo", "Invalid refID: The reference ID is blank.")
}
// referenceId = refID
navigator.navigateTo(mContext, refID,object : RefIdDelegate {
override fun onRefByIDSuccess(PoiId: String?) {
Log.e("navigateTo", "PoiId is penguin view+++++++ $PoiId")
// channelFlutter.invokeMethod(
// PenguinMethod.navigateToPOI.name,
// "navigateTo Success"
// )
}
override fun onGetByRefIDError(error: String?) {
Log.e("navigateTo", "error is penguin view+++++++ $error")
// channelFlutter.invokeMethod(
// PenguinMethod.navigateToPOI.name,
// "navigateTo Failed: Invalid refID"
// )
}
} , creationParams["clientID"] as String, creationParams["clientKey"] as String )
} catch (e: Exception) {
Log.e("navigateTo", "Exception occurred during navigation: ${e.message}", e)
// channelFlutter.invokeMethod(
// PenguinMethod.navigateToPOI.name,
// "Failed: Exception - ${e.message}"
// )
}
}
/**
* Called when Penguin UI setup is successful.
*
* @param warningCode Optional warning code received from the SDK.
*/
override fun onPenNavSuccess(warningCode: String?) {
val clinicId = creationParams["clinicID"] as String
if(clinicId.isEmpty()) return
navigateTo(clinicId)
}
/**
* Called when there is an initialization error with Penguin UI.
*
* @param description Description of the error.
* @param errorType Type of initialization error.
*/
override fun onPenNavInitializationError(
description: String?,
errorType: InitializationErrorType?
) {
val arguments: Map<String, Any?> = mapOf(
"description" to description,
"type" to errorType?.name
)
channel.invokeMethod(PenguinMethod.onPenNavInitializationError.name, arguments)
Toast.makeText(mContext, "Navigation Error: $description", Toast.LENGTH_SHORT).show()
}
/**
* Called when Penguin UI is dismissed.
*/
override fun onPenNavUIDismiss() {
// Handle UI dismissal if needed
try {
mContext.unregisterReceiver(permissionResultReceiver)
dispose();
} catch (e: IllegalArgumentException) {
Log.e("PenguinView", "Receiver not registered: $e")
}
}
}

@ -1,4 +1,4 @@
package com.ejada.hmg
package com.cloud.diplomaticquarterapp.whatsapp
import android.app.PendingIntent
import android.content.Intent
import android.os.Bundle

@ -1,9 +1,5 @@
package com.cloud.diplomaticquarterapp.whatsapp
import android.os.Build
import android.util.Log
import androidx.annotation.RequiresApi
import com.cloud.diplomaticquarterapp.penguin.PenguinView
import com.ejada.hmg.MainActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodCall

@ -5,6 +5,6 @@
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".WhatsAppCodeActivity">
tools:context="com.cloud.diplomaticquarterapp.whatsapp.WhatsAppCodeActivity">
</androidx.constraintlayout.widget.ConstraintLayout>

@ -43,7 +43,7 @@ buildscript {
classpath 'com.huawei.agconnect:agcp:1.5.2.300'
classpath("com.android.tools:r8:8.2.42")
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.12'
// classpath "com.mapbox.gradle.plugins:access-token:0.4.0"
classpath "com.mapbox.gradle.plugins:access-token:0.4.0"
}
}
@ -61,21 +61,20 @@ allprojects {
maven {
url "https://artifactory.ess-dev.com/artifactory/gradle-dev-local"
}
// maven {
// url 'https://api.mapbox.com/downloads/v2/releases/maven'
//
// credentials {
// username = 'mapbox'
//// password = "sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg"
// password = 'pk.eyJ1IjoicndhaWQiLCJhIjoiY2x5cGo4aHNjMGNsbTJyc2djempobGQxaSJ9.RCaC6WrUt4A4YnZNfxnONQ'
// 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)
// }
// }
maven {
url 'https://api.mapbox.com/downloads/v2/releases/maven'
credentials {
username = 'mapbox'
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)
}
}
}
}

Loading…
Cancel
Save