End Call Android
parent
8aa92d127c
commit
5870e80255
@ -0,0 +1,318 @@
|
||||
//package com.mohem_flutter_app
|
||||
//import kotlinx.coroutines.Dispatchers
|
||||
//import kotlinx.coroutines.GlobalScope
|
||||
//import kotlinx.coroutines.launch
|
||||
//import okhttp3.*
|
||||
//import okhttp3.MediaType.Companion.toMediaType
|
||||
//import okhttp3.RequestBody.Companion.toRequestBody
|
||||
//import java.io.IOException
|
||||
//
|
||||
//class NativeIncomingCallDecline {
|
||||
// fun declineCall(currentUserID: String, targetUserID: String, token: String) {
|
||||
// println("--------------- Inside Decline Call ----------------")
|
||||
// val url = "https://apiderichat.hmg.com/api/user/calldecline"
|
||||
// val payload = """
|
||||
// {
|
||||
// "currentUserId": "$targetUserID",
|
||||
// "targetUserId": "$currentUserID",
|
||||
// "secretKey": "derichatmobileuser",
|
||||
// "targetUserToken": "$token"
|
||||
// }
|
||||
// """.trimIndent()
|
||||
//
|
||||
// val jsonMediaType = "application/json".toMediaType()
|
||||
//
|
||||
// GlobalScope.launch(Dispatchers.IO) {
|
||||
// val client = OkHttpClient()
|
||||
// val requestBody = payload.toRequestBody(jsonMediaType)
|
||||
// val request = Request.Builder()
|
||||
// .url(url)
|
||||
// .post(requestBody)
|
||||
// .build()
|
||||
//
|
||||
// client.newCall(request).enqueue(object : Callback {
|
||||
// override fun onResponse(call: Call, response: Response) {
|
||||
// if (response.isSuccessful) {
|
||||
// val responseData = response.body?.string()
|
||||
// println("API Successful. Response data: $responseData")
|
||||
// } else {
|
||||
// val errorMessage = response.body?.string()
|
||||
// println("API Failed. Error message: $errorMessage")
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// override fun onFailure(call: Call, e: IOException) {
|
||||
// println("API Request Failed. Exception: ${e.message}")
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//
|
||||
|
||||
|
||||
|
||||
//This code is included into CallkitIncomingBroadcastReceiver.kt file under Flutter_callKit_incoming Package
|
||||
//Below is the Whole Code
|
||||
|
||||
// Implemented Libraries into Kotlin
|
||||
// implementation 'com.squareup.okhttp3:okhttp:4.9.1'
|
||||
// implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
|
||||
|
||||
//package com.hiennv.flutter_callkit_incoming
|
||||
//import android.annotation.SuppressLint
|
||||
//import android.content.BroadcastReceiver
|
||||
//import android.content.Context
|
||||
//import android.content.Intent
|
||||
//import android.os.Build
|
||||
//import android.os.Bundle
|
||||
//import android.util.Log
|
||||
////http
|
||||
//import okhttp3.MediaType.Companion.toMediaType
|
||||
//import okhttp3.OkHttpClient
|
||||
//import okhttp3.Request
|
||||
//import okhttp3.RequestBody.Companion.toRequestBody
|
||||
//
|
||||
//// Async
|
||||
//import kotlinx.coroutines.Dispatchers
|
||||
//import kotlinx.coroutines.GlobalScope
|
||||
//import kotlinx.coroutines.launch
|
||||
//
|
||||
//class CallkitIncomingBroadcastReceiver : BroadcastReceiver() {
|
||||
//
|
||||
// companion object {
|
||||
// private const val TAG = "CallkitIncomingReceiver"
|
||||
//
|
||||
// fun getIntent(context: Context, action: String, data: Bundle?) =
|
||||
// Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
|
||||
// this.action = "${context.packageName}.${action}"
|
||||
// putExtra(CallkitConstants.EXTRA_CALLKIT_INCOMING_DATA, data)
|
||||
// }
|
||||
//
|
||||
// fun getIntentIncoming(context: Context, data: Bundle?) =
|
||||
// Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
|
||||
// action = "${context.packageName}.${CallkitConstants.ACTION_CALL_INCOMING}"
|
||||
// putExtra(CallkitConstants.EXTRA_CALLKIT_INCOMING_DATA, data)
|
||||
// }
|
||||
//
|
||||
// fun getIntentStart(context: Context, data: Bundle?) =
|
||||
// Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
|
||||
// action = "${context.packageName}.${CallkitConstants.ACTION_CALL_START}"
|
||||
// putExtra(CallkitConstants.EXTRA_CALLKIT_INCOMING_DATA, data)
|
||||
// }
|
||||
//
|
||||
// fun getIntentAccept(context: Context, data: Bundle?) =
|
||||
// Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
|
||||
// action = "${context.packageName}.${CallkitConstants.ACTION_CALL_ACCEPT}"
|
||||
// putExtra(CallkitConstants.EXTRA_CALLKIT_INCOMING_DATA, data)
|
||||
// }
|
||||
//
|
||||
// fun getIntentDecline(context: Context, data: Bundle?) =
|
||||
// Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
|
||||
// action = "${context.packageName}.${CallkitConstants.ACTION_CALL_DECLINE}"
|
||||
// putExtra(CallkitConstants.EXTRA_CALLKIT_INCOMING_DATA, data)
|
||||
// }
|
||||
//
|
||||
// fun getIntentEnded(context: Context, data: Bundle?) =
|
||||
// Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
|
||||
// action = "${context.packageName}.${CallkitConstants.ACTION_CALL_ENDED}"
|
||||
// putExtra(CallkitConstants.EXTRA_CALLKIT_INCOMING_DATA, data)
|
||||
// }
|
||||
//
|
||||
// fun getIntentTimeout(context: Context, data: Bundle?) =
|
||||
// Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
|
||||
// action = "${context.packageName}.${CallkitConstants.ACTION_CALL_TIMEOUT}"
|
||||
// putExtra(CallkitConstants.EXTRA_CALLKIT_INCOMING_DATA, data)
|
||||
// }
|
||||
//
|
||||
// fun getIntentCallback(context: Context, data: Bundle?) =
|
||||
// Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
|
||||
// action = "${context.packageName}.${CallkitConstants.ACTION_CALL_CALLBACK}"
|
||||
// putExtra(CallkitConstants.EXTRA_CALLKIT_INCOMING_DATA, data)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// @SuppressLint("MissingPermission")
|
||||
// override fun onReceive(context: Context, intent: Intent) {
|
||||
// val callkitNotificationManager = CallkitNotificationManager(context)
|
||||
// val action = intent.action ?: return
|
||||
// val data = intent.extras?.getBundle(CallkitConstants.EXTRA_CALLKIT_INCOMING_DATA) ?: return
|
||||
//
|
||||
// when (action) {
|
||||
// "${context.packageName}.${CallkitConstants.ACTION_CALL_INCOMING}" -> {
|
||||
// try {
|
||||
// callkitNotificationManager.showIncomingNotification(data)
|
||||
// sendEventFlutter(CallkitConstants.ACTION_CALL_INCOMING, data)
|
||||
// addCall(context, Data.fromBundle(data))
|
||||
// if (callkitNotificationManager.incomingChannelEnabled()) {
|
||||
// val soundPlayerServiceIntent =
|
||||
// Intent(context, CallkitSoundPlayerService::class.java)
|
||||
// soundPlayerServiceIntent.putExtras(data)
|
||||
// context.startService(soundPlayerServiceIntent)
|
||||
// }
|
||||
// } catch (error: Exception) {
|
||||
// Log.e(TAG, null, error)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// "${context.packageName}.${CallkitConstants.ACTION_CALL_START}" -> {
|
||||
// try {
|
||||
// sendEventFlutter(CallkitConstants.ACTION_CALL_START, data)
|
||||
// addCall(context, Data.fromBundle(data), true)
|
||||
// } catch (error: Exception) {
|
||||
// Log.e(TAG, null, error)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// "${context.packageName}.${CallkitConstants.ACTION_CALL_ACCEPT}" -> {
|
||||
// try {
|
||||
// sendEventFlutter(CallkitConstants.ACTION_CALL_ACCEPT, data)
|
||||
// context.stopService(Intent(context, CallkitSoundPlayerService::class.java))
|
||||
// callkitNotificationManager.clearIncomingNotification(data, true)
|
||||
// addCall(context, Data.fromBundle(data), true)
|
||||
// } catch (error: Exception) {
|
||||
// Log.e(TAG, null, error)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// "${context.packageName}.${CallkitConstants.ACTION_CALL_DECLINE}" -> {
|
||||
// try {
|
||||
// sendEventFlutter(CallkitConstants.ACTION_CALL_DECLINE, data)
|
||||
// context.stopService(Intent(context, CallkitSoundPlayerService::class.java))
|
||||
// callkitNotificationManager.clearIncomingNotification(data, false)
|
||||
// removeCall(context, Data.fromBundle(data))
|
||||
// println("----------- Code By Aamir on 2222-----------------------");
|
||||
// var callData = data.getSerializable(CallkitConstants.EXTRA_CALLKIT_EXTRA) as HashMap<String, Any?>
|
||||
// val token = (callData["loginDetails"] as HashMap<*, *>)["token"] as? String
|
||||
// val targetUserId = (callData["callerDetails"] as HashMap<*, *>)["targetUserId"] as? Int
|
||||
// val currentUserId = (callData["callerDetails"] as HashMap<*, *>)["currentUserId"] as? Int
|
||||
// delineCall(currentUserID = currentUserId, targetUserID = targetUserId, token = token)
|
||||
// println("----------- Code By Aamir On BroadCast -----------------------");
|
||||
// } catch (error: Exception) {
|
||||
// Log.e(TAG, null, error)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// "${context.packageName}.${CallkitConstants.ACTION_CALL_ENDED}" -> {
|
||||
// try {
|
||||
// sendEventFlutter(CallkitConstants.ACTION_CALL_ENDED, data)
|
||||
// context.stopService(Intent(context, CallkitSoundPlayerService::class.java))
|
||||
// callkitNotificationManager.clearIncomingNotification(data, false)
|
||||
// removeCall(context, Data.fromBundle(data))
|
||||
// } catch (error: Exception) {
|
||||
// Log.e(TAG, null, error)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// "${context.packageName}.${CallkitConstants.ACTION_CALL_TIMEOUT}" -> {
|
||||
// try {
|
||||
// sendEventFlutter(CallkitConstants.ACTION_CALL_TIMEOUT, data)
|
||||
// context.stopService(Intent(context, CallkitSoundPlayerService::class.java))
|
||||
// if (data.getBoolean(CallkitConstants.EXTRA_CALLKIT_MISSED_CALL_SHOW, true)) {
|
||||
// callkitNotificationManager.showMissCallNotification(data)
|
||||
// }
|
||||
// removeCall(context, Data.fromBundle(data))
|
||||
// } catch (error: Exception) {
|
||||
// Log.e(TAG, null, error)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// "${context.packageName}.${CallkitConstants.ACTION_CALL_CALLBACK}" -> {
|
||||
// try {
|
||||
// callkitNotificationManager.clearMissCallNotification(data)
|
||||
// sendEventFlutter(CallkitConstants.ACTION_CALL_CALLBACK, data)
|
||||
// if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
|
||||
// val closeNotificationPanel = Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)
|
||||
// context.sendBroadcast(closeNotificationPanel)
|
||||
// }
|
||||
// } catch (error: Exception) {
|
||||
// Log.e(TAG, null, error)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// private fun delineCall(currentUserID: Int?, targetUserID: Int?, token: String?) {
|
||||
// println("--------------- Inside Decline Call ----------------");
|
||||
// val url = "https://apiderichat.hmg.com/api/user/calldecline"
|
||||
// val payload = """
|
||||
// {
|
||||
// "currentUserId": $targetUserID,
|
||||
// "targetUserId": $currentUserID,
|
||||
// "secretKey": "derichatmobileuser",
|
||||
// "targetUserToken": "$token"
|
||||
// }
|
||||
// """.trimIndent()
|
||||
//
|
||||
//
|
||||
// val jsonMediaType = "application/json".toMediaType()
|
||||
//
|
||||
// GlobalScope.launch(Dispatchers.IO) {
|
||||
// val client = OkHttpClient()
|
||||
// val requestBody = payload.toRequestBody(jsonMediaType)
|
||||
// val request = Request.Builder()
|
||||
// .url(url)
|
||||
// .post(requestBody)
|
||||
// .build()
|
||||
//
|
||||
// client.newCall(request).execute().use { response ->
|
||||
// if (response.isSuccessful) {
|
||||
// val responseData = response.body?.string()
|
||||
// println("API Successful. Response data: $responseData")
|
||||
// } else {
|
||||
// val errorMessage = response.body?.string()
|
||||
// println("API Failed. Error message: $errorMessage")
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// private fun sendEventFlutter(event: String, data: Bundle) {
|
||||
// val android = mapOf(
|
||||
// "isCustomNotification" to data.getBoolean(CallkitConstants.EXTRA_CALLKIT_IS_CUSTOM_NOTIFICATION, false),
|
||||
// "isCustomSmallExNotification" to data.getBoolean(
|
||||
// CallkitConstants.EXTRA_CALLKIT_IS_CUSTOM_SMALL_EX_NOTIFICATION,
|
||||
// false
|
||||
// ),
|
||||
// "ringtonePath" to data.getString(CallkitConstants.EXTRA_CALLKIT_RINGTONE_PATH, ""),
|
||||
// "backgroundColor" to data.getString(CallkitConstants.EXTRA_CALLKIT_BACKGROUND_COLOR, ""),
|
||||
// "backgroundUrl" to data.getString(CallkitConstants.EXTRA_CALLKIT_BACKGROUND_URL, ""),
|
||||
// "actionColor" to data.getString(CallkitConstants.EXTRA_CALLKIT_ACTION_COLOR, ""),
|
||||
// "incomingCallNotificationChannelName" to data.getString(
|
||||
// CallkitConstants.EXTRA_CALLKIT_INCOMING_CALL_NOTIFICATION_CHANNEL_NAME,
|
||||
// ""
|
||||
// ),
|
||||
// "missedCallNotificationChannelName" to data.getString(
|
||||
// CallkitConstants.EXTRA_CALLKIT_MISSED_CALL_NOTIFICATION_CHANNEL_NAME,
|
||||
// ""
|
||||
// ),
|
||||
// )
|
||||
// val notification = mapOf(
|
||||
// "id" to data.getInt(CallkitConstants.EXTRA_CALLKIT_MISSED_CALL_ID),
|
||||
// "showNotification" to data.getBoolean(CallkitConstants.EXTRA_CALLKIT_MISSED_CALL_SHOW),
|
||||
// "count" to data.getInt(CallkitConstants.EXTRA_CALLKIT_MISSED_CALL_COUNT),
|
||||
// "subtitle" to data.getString(CallkitConstants.EXTRA_CALLKIT_MISSED_CALL_SUBTITLE),
|
||||
// "callbackText" to data.getString(CallkitConstants.EXTRA_CALLKIT_MISSED_CALL_CALLBACK_TEXT),
|
||||
// "isShowCallback" to data.getBoolean(CallkitConstants.EXTRA_CALLKIT_MISSED_CALL_CALLBACK_SHOW),
|
||||
// )
|
||||
// val forwardData = mapOf(
|
||||
// "id" to data.getString(CallkitConstants.EXTRA_CALLKIT_ID, ""),
|
||||
// "nameCaller" to data.getString(CallkitConstants.EXTRA_CALLKIT_NAME_CALLER, ""),
|
||||
// "avatar" to data.getString(CallkitConstants.EXTRA_CALLKIT_AVATAR, ""),
|
||||
// "number" to data.getString(CallkitConstants.EXTRA_CALLKIT_HANDLE, ""),
|
||||
// "type" to data.getInt(CallkitConstants.EXTRA_CALLKIT_TYPE, 0),
|
||||
// "duration" to data.getLong(CallkitConstants.EXTRA_CALLKIT_DURATION, 0L),
|
||||
// "textAccept" to data.getString(CallkitConstants.EXTRA_CALLKIT_TEXT_ACCEPT, ""),
|
||||
// "textDecline" to data.getString(CallkitConstants.EXTRA_CALLKIT_TEXT_DECLINE, ""),
|
||||
// "extra" to data.getSerializable(CallkitConstants.EXTRA_CALLKIT_EXTRA)!!,
|
||||
// "missedCallNotification" to notification,
|
||||
// "android" to android
|
||||
// )
|
||||
// FlutterCallkitIncomingPlugin.sendEvent(event, forwardData)
|
||||
// }
|
||||
//}
|
||||
Loading…
Reference in New Issue