mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-04-25 06:48:42 +02:00
update the call timer during an active call
This commit is contained in:
parent
b02468e5db
commit
1c45efd986
@ -28,15 +28,18 @@ import com.simplemobiletools.contacts.pro.helpers.DECLINE_CALL
|
|||||||
import com.simplemobiletools.contacts.pro.models.CallContact
|
import com.simplemobiletools.contacts.pro.models.CallContact
|
||||||
import com.simplemobiletools.contacts.pro.receivers.CallActionReceiver
|
import com.simplemobiletools.contacts.pro.receivers.CallActionReceiver
|
||||||
import kotlinx.android.synthetic.main.activity_call.*
|
import kotlinx.android.synthetic.main.activity_call.*
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class CallActivity : SimpleActivity() {
|
class CallActivity : SimpleActivity() {
|
||||||
private val CALL_NOTIFICATION_ID = 1
|
private val CALL_NOTIFICATION_ID = 1
|
||||||
|
|
||||||
private var isSpeakerOn = false
|
private var isSpeakerOn = false
|
||||||
private var isMicrophoneOn = true
|
private var isMicrophoneOn = true
|
||||||
|
private var callDuration = 0
|
||||||
private var callContact: CallContact? = null
|
private var callContact: CallContact? = null
|
||||||
private var callContactAvatar: Bitmap? = null
|
private var callContactAvatar: Bitmap? = null
|
||||||
private var proximityWakeLock: PowerManager.WakeLock? = null
|
private var proximityWakeLock: PowerManager.WakeLock? = null
|
||||||
|
private var callTimer = Timer()
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
supportActionBar?.hide()
|
supportActionBar?.hide()
|
||||||
@ -61,6 +64,7 @@ class CallActivity : SimpleActivity() {
|
|||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
notificationManager.cancel(CALL_NOTIFICATION_ID)
|
notificationManager.cancel(CALL_NOTIFICATION_ID)
|
||||||
CallManager.unregisterCallback(callCallback)
|
CallManager.unregisterCallback(callCallback)
|
||||||
|
callTimer.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initButtons() {
|
private fun initButtons() {
|
||||||
@ -128,6 +132,9 @@ class CallActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
call_status_label.text = getString(statusTextId)
|
call_status_label.text = getString(statusTextId)
|
||||||
|
if (state == Call.STATE_DISCONNECTED || state == Call.STATE_DISCONNECTING) {
|
||||||
|
callTimer.cancel()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun acceptCall() {
|
private fun acceptCall() {
|
||||||
@ -139,6 +146,7 @@ class CallActivity : SimpleActivity() {
|
|||||||
ongoing_call_holder.beVisible()
|
ongoing_call_holder.beVisible()
|
||||||
proximityWakeLock?.acquire(10 * MINUTE_SECONDS * 1000L)
|
proximityWakeLock?.acquire(10 * MINUTE_SECONDS * 1000L)
|
||||||
audioManager.mode = AudioManager.MODE_IN_CALL
|
audioManager.mode = AudioManager.MODE_IN_CALL
|
||||||
|
callTimer.scheduleAtFixedRate(getCallTimerUpdateTask(), 1000, 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun endCall() {
|
private fun endCall() {
|
||||||
@ -150,6 +158,15 @@ class CallActivity : SimpleActivity() {
|
|||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getCallTimerUpdateTask() = object : TimerTask() {
|
||||||
|
override fun run() {
|
||||||
|
callDuration++
|
||||||
|
runOnUiThread {
|
||||||
|
call_status_label.text = callDuration.getFormattedDuration()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
@SuppressLint("NewApi")
|
||||||
private val callCallback = object : Call.Callback() {
|
private val callCallback = object : Call.Callback() {
|
||||||
override fun onStateChanged(call: Call, state: Int) {
|
override fun onStateChanged(call: Call, state: Int) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user