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" />
+
+
+
+