Skip to content

Commit

Permalink
add custom text Accept/Decline
Browse files Browse the repository at this point in the history
  • Loading branch information
hiennguyen92 committed Apr 3, 2022
1 parent 1e12bf1 commit dbd6203
Show file tree
Hide file tree
Showing 12 changed files with 180 additions and 87 deletions.
39 changes: 19 additions & 20 deletions .idea/libraries/Dart_SDK.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ data class Data(val args: Map<String, Any?>) {
var avatar: String = (args["avatar"] as? String) ?: ""
var type: Int = (args["type"] as? Int) ?: 0
var duration: Long = (args["duration"] as? Long) ?: 30000L
var textAccept: String = (args["textAccept"] as? String) ?: ""
var textDecline: String = (args["textDecline"] as? String) ?: ""
var textMissedCall: String = (args["textMissedCall"] as? String) ?: ""
var textCallback: String = (args["textCallback"] as? String) ?: ""
var extra: HashMap<String, Any?> =
(args["extra"] ?: HashMap<String, Any?>()) as HashMap<String, Any?>
var headers: HashMap<String, Any?> =
Expand Down Expand Up @@ -71,6 +75,10 @@ data class Data(val args: Map<String, Any?>) {
bundle.putString(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_AVATAR, avatar)
bundle.putInt(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_TYPE, type)
bundle.putLong(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_DURATION, duration)
bundle.putString(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_TEXT_ACCEPT, textAccept)
bundle.putString(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_TEXT_DECLINE, textDecline)
bundle.putString(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_TEXT_MISSED_CALL, textMissedCall)
bundle.putString(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_TEXT_CALLBACK, textCallback)
bundle.putSerializable(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_EXTRA, extra)
bundle.putSerializable(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_HEADERS, headers)
bundle.putBoolean(
Expand Down Expand Up @@ -115,6 +123,14 @@ data class Data(val args: Map<String, Any?>) {
data.type = bundle.getInt(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_TYPE, 0)
data.duration =
bundle.getLong(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_DURATION, 30000L)
data.textAccept =
bundle.getString(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_TEXT_ACCEPT, "")
data.textDecline =
bundle.getString(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_TEXT_DECLINE, "")
data.textMissedCall =
bundle.getString(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_TEXT_MISSED_CALL, "")
data.textCallback =
bundle.getString(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_TEXT_CALLBACK, "")
data.extra =
bundle.getSerializable(CallkitIncomingBroadcastReceiver.EXTRA_CALLKIT_EXTRA) as HashMap<String, Any?>
data.headers =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ import com.squareup.picasso.OkHttp3Downloader
import android.view.ViewGroup.MarginLayoutParams
import android.os.PowerManager
import android.os.PowerManager.WakeLock
import android.text.TextUtils
import com.hiennv.flutter_callkit_incoming.CallkitIncomingBroadcastReceiver.Companion.EXTRA_CALLKIT_TEXT_ACCEPT
import com.hiennv.flutter_callkit_incoming.CallkitIncomingBroadcastReceiver.Companion.EXTRA_CALLKIT_TEXT_DECLINE


class CallkitIncomingActivity : Activity() {
Expand Down Expand Up @@ -86,7 +89,10 @@ class CallkitIncomingActivity : Activity() {

private lateinit var llAction: LinearLayout
private lateinit var ivAcceptCall: ImageView
private lateinit var tvAccept: TextView

private lateinit var ivDeclineCall: ImageView
private lateinit var tvDecline: TextView

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand Down Expand Up @@ -186,6 +192,11 @@ class CallkitIncomingActivity : Activity() {

finishTimeout(data, duration)

val textAccept = data?.getString(EXTRA_CALLKIT_TEXT_ACCEPT, "")
tvAccept.text = if(TextUtils.isEmpty(textAccept)) getString(R.string.text_accept) else textAccept
val textDecline = data?.getString(EXTRA_CALLKIT_TEXT_DECLINE, "")
tvDecline.text = if(TextUtils.isEmpty(textDecline)) getString(R.string.text_decline) else textDecline

val backgroundColor = data?.getString(EXTRA_CALLKIT_BACKGROUND_COLOR, "#0955fa")
try {
ivBackground.setBackgroundColor(Color.parseColor(backgroundColor))
Expand Down Expand Up @@ -239,7 +250,9 @@ class CallkitIncomingActivity : Activity() {
llAction.layoutParams = params

ivAcceptCall = findViewById(R.id.ivAcceptCall)
tvAccept = findViewById(R.id.tvAccept)
ivDeclineCall = findViewById(R.id.ivDeclineCall)
tvDecline = findViewById(R.id.tvDecline)
animateAcceptCall()

ivAcceptCall.setOnClickListener {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,18 @@ class CallkitIncomingBroadcastReceiver : BroadcastReceiver() {
companion object {

const val ACTION_CALL_INCOMING =
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_INCOMING"
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_INCOMING"
const val ACTION_CALL_START = "com.hiennv.flutter_callkit_incoming.ACTION_CALL_START"
const val ACTION_CALL_ACCEPT =
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_ACCEPT"
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_ACCEPT"
const val ACTION_CALL_DECLINE =
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_DECLINE"
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_DECLINE"
const val ACTION_CALL_ENDED =
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_ENDED"
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_ENDED"
const val ACTION_CALL_TIMEOUT =
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_TIMEOUT"
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_TIMEOUT"
const val ACTION_CALL_CALLBACK =
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_CALLBACK"
"com.hiennv.flutter_callkit_incoming.ACTION_CALL_CALLBACK"


const val EXTRA_CALLKIT_INCOMING_DATA = "EXTRA_CALLKIT_INCOMING_DATA"
Expand All @@ -35,6 +35,10 @@ class CallkitIncomingBroadcastReceiver : BroadcastReceiver() {
const val EXTRA_CALLKIT_TYPE = "EXTRA_CALLKIT_TYPE"
const val EXTRA_CALLKIT_AVATAR = "EXTRA_CALLKIT_AVATAR"
const val EXTRA_CALLKIT_DURATION = "EXTRA_CALLKIT_DURATION"
const val EXTRA_CALLKIT_TEXT_ACCEPT = "EXTRA_CALLKIT_TEXT_ACCEPT"
const val EXTRA_CALLKIT_TEXT_DECLINE = "EXTRA_CALLKIT_TEXT_DECLINE"
const val EXTRA_CALLKIT_TEXT_MISSED_CALL = "EXTRA_CALLKIT_TEXT_MISSED_CALL"
const val EXTRA_CALLKIT_TEXT_CALLBACK = "EXTRA_CALLKIT_TEXT_CALLBACK"
const val EXTRA_CALLKIT_EXTRA = "EXTRA_CALLKIT_EXTRA"
const val EXTRA_CALLKIT_HEADERS = "EXTRA_CALLKIT_HEADERS"
const val EXTRA_CALLKIT_IS_CUSTOM_NOTIFICATION = "EXTRA_CALLKIT_IS_CUSTOM_NOTIFICATION"
Expand All @@ -48,50 +52,49 @@ class CallkitIncomingBroadcastReceiver : BroadcastReceiver() {
const val EXTRA_CALLKIT_ACTION_FROM = "EXTRA_CALLKIT_ACTION_FROM"

fun getIntentIncoming(context: Context, data: Bundle?) =
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_INCOMING
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_INCOMING
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}

fun getIntentStart(context: Context, data: Bundle?) =
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_START
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_START
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}

fun getIntentAccept(context: Context, data: Bundle?) =
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_ACCEPT
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_ACCEPT
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}

fun getIntentDecline(context: Context, data: Bundle?) =
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_DECLINE
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_DECLINE
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}

fun getIntentEnded(context: Context, data: Bundle?) =
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_ENDED
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_ENDED
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}

fun getIntentTimeout(context: Context, data: Bundle?) =
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_TIMEOUT
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_TIMEOUT
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}

fun getIntentCallback(context: Context, data: Bundle?) =
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_CALLBACK
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}
Intent(context, CallkitIncomingBroadcastReceiver::class.java).apply {
action = ACTION_CALL_CALLBACK
putExtra(EXTRA_CALLKIT_INCOMING_DATA, data)
}
}



@SuppressLint("MissingPermission")
override fun onReceive(context: Context, intent: Intent) {
//val callkitSoundPlayer = CallkitSoundPlayer.getInstance(context.applicationContext)
Expand Down Expand Up @@ -176,21 +179,25 @@ class CallkitIncomingBroadcastReceiver : BroadcastReceiver() {
@Suppress("UNCHECKED_CAST")
private fun sendEventFlutter(event: String, data: Bundle) {
val android = mapOf(
"isCustomNotification" to data.getBoolean(EXTRA_CALLKIT_IS_CUSTOM_NOTIFICATION, false),
"ringtonePath" to data.getString(EXTRA_CALLKIT_RINGTONE_PATH, ""),
"backgroundColor" to data.getString(EXTRA_CALLKIT_BACKGROUND_COLOR, ""),
"backgroundUrl" to data.getString(EXTRA_CALLKIT_BACKGROUND_URL, ""),
"actionColor" to data.getString(EXTRA_CALLKIT_ACTION_COLOR, "")
"isCustomNotification" to data.getBoolean(EXTRA_CALLKIT_IS_CUSTOM_NOTIFICATION, false),
"ringtonePath" to data.getString(EXTRA_CALLKIT_RINGTONE_PATH, ""),
"backgroundColor" to data.getString(EXTRA_CALLKIT_BACKGROUND_COLOR, ""),
"backgroundUrl" to data.getString(EXTRA_CALLKIT_BACKGROUND_URL, ""),
"actionColor" to data.getString(EXTRA_CALLKIT_ACTION_COLOR, "")
)
val forwardData = mapOf(
"id" to data.getString(EXTRA_CALLKIT_ID, ""),
"nameCaller" to data.getString(EXTRA_CALLKIT_NAME_CALLER, ""),
"avatar" to data.getString(EXTRA_CALLKIT_AVATAR, ""),
"number" to data.getString(EXTRA_CALLKIT_HANDLE, ""),
"type" to data.getInt(EXTRA_CALLKIT_TYPE, 0),
"duration" to data.getLong(EXTRA_CALLKIT_DURATION, 0L),
"extra" to data.getSerializable(EXTRA_CALLKIT_EXTRA) as HashMap<String, Any?>,
"android" to android
"id" to data.getString(EXTRA_CALLKIT_ID, ""),
"nameCaller" to data.getString(EXTRA_CALLKIT_NAME_CALLER, ""),
"avatar" to data.getString(EXTRA_CALLKIT_AVATAR, ""),
"number" to data.getString(EXTRA_CALLKIT_HANDLE, ""),
"type" to data.getInt(EXTRA_CALLKIT_TYPE, 0),
"duration" to data.getLong(EXTRA_CALLKIT_DURATION, 0L),
"textAccept" to data.getString(EXTRA_CALLKIT_TEXT_ACCEPT, ""),
"textDecline" to data.getString(EXTRA_CALLKIT_TEXT_DECLINE, ""),
"textMissedCall" to data.getString(EXTRA_CALLKIT_TEXT_MISSED_CALL, ""),
"textCallback" to data.getString(EXTRA_CALLKIT_TEXT_CALLBACK, ""),
"extra" to data.getSerializable(EXTRA_CALLKIT_EXTRA) as HashMap<String, Any?>,
"android" to android
)
FlutterCallkitIncomingPlugin.sendEvent(event, forwardData)
}
Expand Down
Loading

0 comments on commit dbd6203

Please sign in to comment.