show a timer at established calls

This commit is contained in:
tibbi 2018-11-21 11:33:02 +01:00
parent f0c4b012b7
commit 62d0bf3701
2 changed files with 40 additions and 0 deletions

View File

@ -10,6 +10,7 @@ import android.hardware.SensorEventListener
import android.hardware.SensorManager import android.hardware.SensorManager
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.os.Handler
import android.os.PowerManager import android.os.PowerManager
import androidx.localbroadcastmanager.content.LocalBroadcastManager import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
@ -27,9 +28,12 @@ class DialerActivity : SimpleActivity(), SensorEventListener {
private var number = "" private var number = ""
private var isIncomingCall = false private var isIncomingCall = false
private var isCallActive = false
private var callDuration = 0
private var sensorManager: SensorManager? = null private var sensorManager: SensorManager? = null
private var proximity: Sensor? = null private var proximity: Sensor? = null
private var proximityWakeLock: PowerManager.WakeLock? = null private var proximityWakeLock: PowerManager.WakeLock? = null
private var timerHandler = Handler()
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -64,6 +68,11 @@ class DialerActivity : SimpleActivity(), SensorEventListener {
sensorManager!!.unregisterListener(this) sensorManager!!.unregisterListener(this)
} }
override fun onDestroy() {
super.onDestroy()
timerHandler.removeCallbacksAndMessages(null)
}
private val messageReceiver = object : BroadcastReceiver() { private val messageReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
if (intent.extras?.containsKey(CALL_STATUS) == true) { if (intent.extras?.containsKey(CALL_STATUS) == true) {
@ -121,13 +130,29 @@ class DialerActivity : SimpleActivity(), SensorEventListener {
} }
private fun statusActive() { private fun statusActive() {
isCallActive = true
dialer_call_duration.beVisible()
updateCallDuration()
dialer_label.text = "" dialer_label.text = ""
dialer_hangup_button.beVisible() dialer_hangup_button.beVisible()
dialer_incoming_accept.beGone() dialer_incoming_accept.beGone()
dialer_incoming_decline.beGone() dialer_incoming_decline.beGone()
} }
private fun updateCallDuration() {
dialer_call_duration.text = callDuration.getFormattedDuration()
timerHandler.postDelayed({
if (isCallActive) {
callDuration++
updateCallDuration()
}
}, 1000)
}
private fun statusDisconnected() { private fun statusDisconnected() {
isCallActive = false
timerHandler.removeCallbacksAndMessages(null)
dialer_hangup_button.beGone() dialer_hangup_button.beGone()
dialer_hangup_button.postDelayed({ dialer_hangup_button.postDelayed({
finish() finish()

View File

@ -47,6 +47,21 @@
app:layout_constraintTop_toBottomOf="@+id/dialer_big_name_number" app:layout_constraintTop_toBottomOf="@+id/dialer_big_name_number"
tools:text="123 456 789"/> tools:text="123 456 789"/>
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/dialer_call_duration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/medium_margin"
android:gravity="center_horizontal"
android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin"
android:textSize="@dimen/big_text_size"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/dialer_number"
tools:text="00:00"/>
<ImageView <ImageView
android:id="@+id/dialer_hangup_button" android:id="@+id/dialer_hangup_button"
android:layout_width="@dimen/dialer_hangup_button_size" android:layout_width="@dimen/dialer_hangup_button_size"