diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt index 6378dc3c..3d8cd375 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/CallActivity.kt @@ -131,6 +131,18 @@ class CallActivity : SimpleActivity() { dialpad_wrapper.beGone() } + call_toggle_hold.setOnClickListener { + toggleHold() + } + + call_conference.setOnClickListener { + /*if (is conference) { + // show manage conference screen + } else { + // show dialpad and contacts + }*/ + } + call_end.setOnClickListener { endCall() } @@ -306,6 +318,12 @@ class CallActivity : SimpleActivity() { } } + private fun toggleHold() { + val isOnHold = CallManager.toggleHold() + val drawable = if (!isOnHold) R.drawable.ic_play_vector else R.drawable.ic_pause_vector + call_toggle_hold.setImageDrawable(getDrawable(drawable)) + } + private fun updateOtherPersonsInfo(avatar: Bitmap?) { if (callContact == null) { return diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/CallManager.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/CallManager.kt index 728f5801..9da7ac54 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/CallManager.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/CallManager.kt @@ -32,6 +32,16 @@ class CallManager { } } + fun toggleHold(): Boolean { + val isOnHold = getState() == Call.STATE_HOLDING + if (isOnHold) { + call?.unhold() + } else { + call?.hold() + } + return !isOnHold + } + fun registerCallback(callback: Call.Callback) { call?.registerCallback(callback) } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/services/CallService.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/services/CallService.kt index d8a28fb2..27e6501a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/services/CallService.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/services/CallService.kt @@ -2,6 +2,7 @@ package com.simplemobiletools.dialer.services import android.telecom.Call import android.telecom.InCallService +import android.util.Log import com.simplemobiletools.dialer.activities.CallActivity import com.simplemobiletools.dialer.extensions.powerManager import com.simplemobiletools.dialer.helpers.CallManager @@ -13,6 +14,7 @@ class CallService : InCallService() { private val callListener = object : Call.Callback() { override fun onStateChanged(call: Call, state: Int) { super.onStateChanged(call, state) + Log.d("CallService", "onStateChanged: $call") if (state != Call.STATE_DISCONNECTED) { callNotificationManager.setupNotification() } diff --git a/app/src/main/res/layout/activity_call.xml b/app/src/main/res/layout/activity_call.xml index abd9089c..e7b7f230 100644 --- a/app/src/main/res/layout/activity_call.xml +++ b/app/src/main/res/layout/activity_call.xml @@ -106,7 +106,7 @@ app:layout_constraintHorizontal_bias="0.15" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.75" /> + app:layout_constraintVertical_bias="0.6" /> + app:layout_constraintVertical_bias="0.6" /> + app:layout_constraintVertical_bias="0.6" /> + + + +