From df6045980bf763a27b0100aa2c3eee8fa4c33ff5 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Sat, 16 Oct 2021 14:09:20 +0300 Subject: [PATCH] If more than one missed call, show number of missed calls in notify Moved baresip service constants to constants class --- .../com/tutpro/baresip/BaresipService.kt | 51 +++++++++---------- .../kotlin/com/tutpro/baresip/Constants.kt | 21 ++++++++ app/src/main/res/values-fi/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 4 files changed, 48 insertions(+), 28 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt index 255daf14..41e9adb8 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt @@ -770,20 +770,35 @@ class BaresipService: Service() { PendingIntent.FLAG_UPDATE_CURRENT) val nb = NotificationCompat.Builder(this, HIGH_CHANNEL_ID) nb.setSmallIcon(R.drawable.ic_stat) - .setColor(ContextCompat.getColor(this, - R.color.colorBaresip)) - .setContentIntent(pi) - .setCategory(Notification.CATEGORY_CALL) - .setAutoCancel(true) - .setContentTitle(getString(R.string.missed_call_from)) - .setContentText(caller) + .setColor(ContextCompat.getColor(this, R.color.colorBaresip)) + .setContentIntent(pi) + .setCategory(Notification.CATEGORY_CALL) + .setAutoCancel(true) + if (VERSION.SDK_INT < 23) { + nb.setContentTitle(getString(R.string.missed_call_from)) + nb.setContentText(caller) + } else { + var missedCalls = 0 + for (notification in nm.activeNotifications) + if (notification.id == CALL_MISSED_NOTIFICATION_ID) + missedCalls++ + if (missedCalls == 0) { + nb.setContentTitle(getString(R.string.missed_call_from)) + nb.setContentText(caller) + } else { + nb.setContentTitle(getString(R.string.missed_calls)) + nb.setContentText( + String.format(getString(R.string.missed_calls_count), + missedCalls + 1)) + } + } if (VERSION.SDK_INT < 26) { @Suppress("DEPRECATION") nb.setVibrate(LongArray(0)) .setVisibility(NotificationCompat.VISIBILITY_PRIVATE) .priority = Notification.PRIORITY_HIGH } - nm.notify(CALL_NOTIFICATION_ID, nb.build()) + nm.notify(CALL_MISSED_NOTIFICATION_ID, nb.build()) return } } @@ -1306,26 +1321,6 @@ class BaresipService: Service() { companion object { - const val STATUS_NOTIFICATION_ID = 101 - const val CALL_NOTIFICATION_ID = 102 - const val TRANSFER_NOTIFICATION_ID = 103 - const val MESSAGE_NOTIFICATION_ID = 104 - - const val STATUS_REQ_CODE = 1 - const val CALL_REQ_CODE = 2 - const val ANSWER_REQ_CODE = 3 - const val REJECT_REQ_CODE = 4 - const val TRANSFER_REQ_CODE = 5 - const val ACCEPT_REQ_CODE = 6 - const val DENY_REQ_CODE = 7 - const val MESSAGE_REQ_CODE = 8 - const val REPLY_REQ_CODE = 9 - const val SAVE_REQ_CODE = 10 - const val DELETE_REQ_CODE = 11 - - const val DEFAULT_CHANNEL_ID = "com.tutpro.baresip.default" - const val HIGH_CHANNEL_ID = "com.tutpro.baresip.high" - var isServiceRunning = false var isConfigInitialized = false var libraryLoaded = false diff --git a/app/src/main/kotlin/com/tutpro/baresip/Constants.kt b/app/src/main/kotlin/com/tutpro/baresip/Constants.kt index 67d12e1a..3577ebe3 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Constants.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Constants.kt @@ -2,9 +2,30 @@ package com.tutpro.baresip const val TAG = "Baresip" +const val DEFAULT_CHANNEL_ID = "com.tutpro.baresip.default" +const val HIGH_CHANNEL_ID = "com.tutpro.baresip.high" + const val BACKUP_PERMISSION_REQUEST_CODE = 1 const val RESTORE_PERMISSION_REQUEST_CODE = 2 const val RECORD_PERMISSION_REQUEST_CODE = 3 const val CONTACTS_PERMISSION_REQUEST_CODE = 4 const val READ_CERT_PERMISSION_CODE = 5 const val READ_CA_PERMISSION_CODE = 6 + +const val STATUS_NOTIFICATION_ID = 101 +const val CALL_NOTIFICATION_ID = 102 +const val CALL_MISSED_NOTIFICATION_ID = 103 +const val TRANSFER_NOTIFICATION_ID = 104 +const val MESSAGE_NOTIFICATION_ID = 105 + +const val STATUS_REQ_CODE = 1 +const val CALL_REQ_CODE = 2 +const val ANSWER_REQ_CODE = 3 +const val REJECT_REQ_CODE = 4 +const val TRANSFER_REQ_CODE = 5 +const val ACCEPT_REQ_CODE = 6 +const val DENY_REQ_CODE = 7 +const val MESSAGE_REQ_CODE = 8 +const val REPLY_REQ_CODE = 9 +const val SAVE_REQ_CODE = 10 +const val DELETE_REQ_CODE = 11 diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 19ff89b5..66620a11 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -242,6 +242,8 @@ Hylkää Puhelu soittajalta Vastaamaton puhelu soittajalta + Vastaamattomia puheluita + %1$d vastaamatonta puhelua Puhelun siirtopyyntö kohteeseen Viesti lähettäjältä diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5cb60ad2..3a0eada9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -220,6 +220,8 @@ Reject Incoming call from Missed call from + Missed calls + %1$d missed calls Call transfer request to Message from