diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/DialerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/DialerActivity.kt index 718781ba..e93389b5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/DialerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/DialerActivity.kt @@ -25,6 +25,7 @@ import com.simplemobiletools.contacts.pro.R import com.simplemobiletools.contacts.pro.helpers.* import com.simplemobiletools.contacts.pro.models.Contact import com.simplemobiletools.contacts.pro.objects.CallManager +import com.simplemobiletools.contacts.pro.overloads.times import com.simplemobiletools.contacts.pro.services.DialerCallService import kotlinx.android.synthetic.main.activity_dialer.* @@ -33,16 +34,19 @@ import kotlinx.android.synthetic.main.activity_dialer.* class DialerActivity : SimpleActivity(), SensorEventListener { private val SENSOR_SENSITIVITY = 4 private val DISCONNECT_DELAY = 3000L + private val CALLING_DOT_ANIMATION_DELAY = 500L private var callNumber = "" private var callStatus = Call.STATE_NEW private var isIncomingCall = false private var isCallActive = false private var callDuration = 0 + private var callingDotsCnt = 0 private var sensorManager: SensorManager? = null private var proximity: Sensor? = null private var proximityWakeLock: PowerManager.WakeLock? = null private var timerHandler = Handler() + private var callingDotsHandler = Handler() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -59,27 +63,27 @@ class DialerActivity : SimpleActivity(), SensorEventListener { val extras = intent.extras if (extras?.getBoolean(ANSWER_CALL, false) == true) { callNumber = intent.getStringExtra(CALL_NUMBER) - initViews() CallManager.answerCall() - tryFillingOtherEndsName() + tryFillingOtherParticipantsName() + initViews() } else if (action == Intent.ACTION_CALL && intent.data != null && intent.dataString?.contains("tel:") == true) { callNumber = Uri.decode(intent.dataString).substringAfter("tel:") - initViews() - tryFillingOtherEndsName() + tryFillingOtherParticipantsName() initOutgoingCall() + initViews() } else if (action == INCOMING_CALL && extras?.containsKey(CALL_NUMBER) == true && extras.containsKey(CALL_STATUS)) { isIncomingCall = true callNumber = intent.getStringExtra(CALL_NUMBER) initViews() updateUI(intent.getIntExtra(CALL_STATUS, Call.STATE_NEW)) - tryFillingOtherEndsName() + tryFillingOtherParticipantsName() } else if (action == RESUME_DIALER && extras?.containsKey(CALL_NUMBER) == true && extras.containsKey(CALL_STATUS) && extras.containsKey(IS_INCOMING_CALL)) { callNumber = intent.getStringExtra(CALL_NUMBER) callStatus = intent.getIntExtra(CALL_STATUS, Call.STATE_NEW) isIncomingCall = intent.getBooleanExtra(IS_INCOMING_CALL, false) - initViews() updateUI(callStatus) - tryFillingOtherEndsName() + tryFillingOtherParticipantsName() + initViews() } else { toast(R.string.unknown_error_occurred) finish() @@ -103,6 +107,7 @@ class DialerActivity : SimpleActivity(), SensorEventListener { override fun onDestroy() { super.onDestroy() timerHandler.removeCallbacksAndMessages(null) + callingDotsHandler.removeCallbacksAndMessages(null) } private val messageReceiver = object : BroadcastReceiver() { @@ -120,6 +125,17 @@ class DialerActivity : SimpleActivity(), SensorEventListener { } } + // animate the dots after Calling... from 0 to 3 + private fun handleDotsAnimation() { + callingDotsHandler.postDelayed({ + if (callStatus == Call.STATE_DIALING) { + callingDotsCnt = ++callingDotsCnt % 4 + dialer_label_dots.text = ".".times(callingDotsCnt) + handleDotsAnimation() + } + }, CALLING_DOT_ANIMATION_DELAY) + } + private fun initProximityWakeLock() { sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager proximity = sensorManager!!.getDefaultSensor(Sensor.TYPE_PROXIMITY) @@ -141,6 +157,9 @@ class DialerActivity : SimpleActivity(), SensorEventListener { dialer_incoming_accept.beVisibleIf(isIncomingCall) dialer_label.setText(if (isIncomingCall) R.string.incoming_call_from else R.string.calling) + if (!isIncomingCall) { + handleDotsAnimation() + } } @SuppressLint("MissingPermission") @@ -183,7 +202,7 @@ class DialerActivity : SimpleActivity(), SensorEventListener { finish() } - private fun tryFillingOtherEndsName() { + private fun tryFillingOtherParticipantsName() { ContactsHelper(this).getContactWithNumber(callNumber) { runOnUiThread { updateOtherParticipant(it) @@ -200,6 +219,8 @@ class DialerActivity : SimpleActivity(), SensorEventListener { } private fun statusActive() { + callingDotsHandler.removeCallbacksAndMessages(null) + dialer_label_dots.beGone() startNotificationService() isCallActive = true dialer_call_duration.beVisible() @@ -222,8 +243,10 @@ class DialerActivity : SimpleActivity(), SensorEventListener { } private fun statusDisconnected() { - stopNotificationService() + callingDotsHandler.removeCallbacksAndMessages(null) timerHandler.removeCallbacksAndMessages(null) + dialer_label_dots.beGone() + stopNotificationService() dialer_hangup_button.beGone() dialer_label.setText(R.string.disconnected) if (isCallActive) { diff --git a/app/src/main/res/layout/activity_dialer.xml b/app/src/main/res/layout/activity_dialer.xml index 163e4d1d..3fbf37e2 100644 --- a/app/src/main/res/layout/activity_dialer.xml +++ b/app/src/main/res/layout/activity_dialer.xml @@ -9,7 +9,7 @@ + + Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 1136f003..fc739f15 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -111,7 +111,7 @@ Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 28b0493f..32a09788 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -111,7 +111,7 @@ Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index d2aa156e..54c1509e 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -111,7 +111,7 @@ Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 3bc0ea35..ec36df93 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -111,7 +111,7 @@ Numéroteur - Appel en cours… + Appel en cours Appel entrant Appel entrant de… Appel en cours diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index c399b497..d58121ed 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -111,7 +111,7 @@ Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 050c555e..39c3744a 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -111,7 +111,7 @@ Compositore - Chiamata in corso… + Chiamata in corso Chiamata in arrivo Chiamata in arrivo da… Chiamata in corso diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 3a483aa4..2b373afe 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -111,7 +111,7 @@ 電話 - 発信中… + 発信中 Incoming call 着信中… 通話中 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index a6ccabbf..b28f64d1 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -111,7 +111,7 @@ Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index b899039a..4832acc5 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -111,7 +111,7 @@ Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index b447dbf5..715ded7b 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -111,7 +111,7 @@ Marcador - A chamar… + A chamar Chamada recebida Chamada recebida de… Chamada efetuada diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index fa54e7b8..23dbd7d1 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -111,7 +111,7 @@ Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index e8f5a884..993b9302 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -111,7 +111,7 @@ Telefón - Vytáča sa… + Vytáča sa Prichádzajúci hovor Prichádzajúci hovor od… Prebiehajúci hovor diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 10aa4d33..282f5518 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -111,7 +111,7 @@ Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 668cfe43..f1c49df0 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -111,7 +111,7 @@ Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 1cd8bdd2..2421d03f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -111,7 +111,7 @@ 撥號器 - 撥號中… + 撥號中 來電 通話來自於… 持續通話 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e5ea598e..039a360b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -111,7 +111,7 @@ Dialer - Calling… + Calling Incoming call Incoming call from… Ongoing call