diff --git a/app/build.gradle b/app/build.gradle index 0ae34f20..44b155d0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId = 'com.tutpro.baresip' minSdkVersion 21 targetSdkVersion 27 - versionCode = 48 - versionName = '6.0.2' + versionCode = 49 + versionName = '6.1.0' externalNativeBuild { cmake { cFlags '-DHAVE_INTTYPES_H' diff --git a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt index 96a49595..cbc179ee 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt @@ -271,8 +271,8 @@ class BaresipService: Service() { val intent = Intent(this, MainActivity::class.java) .setAction(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_LAUNCHER) - val pi = PendingIntent.getActivity(this, - System.currentTimeMillis().toInt(), intent, 0) + val pi = PendingIntent.getActivity(this, CALL_REQ_CODE, intent, + 0) val nb = NotificationCompat.Builder(this, HIGH_CHANNEL_ID) val caller = Utils.friendlyUri(ContactsActivity.contactName(peerUri), Utils.aorDomain(aor)) @@ -294,14 +294,14 @@ class BaresipService: Service() { answerIntent.putExtra("action", "answer") answerIntent.putExtra("callp", callp) val answerPendingIntent = PendingIntent.getActivity(this, - 1, answerIntent, PendingIntent.FLAG_UPDATE_CURRENT) + ANSWER_REQ_CODE, answerIntent, PendingIntent.FLAG_UPDATE_CURRENT) val rejectIntent = Intent(this, MainActivity::class.java) rejectIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_SINGLE_TOP) rejectIntent.putExtra("action", "reject") rejectIntent.putExtra("callp", callp) val rejectPendingIntent = PendingIntent.getActivity(this, - 2, rejectIntent, PendingIntent.FLAG_UPDATE_CURRENT) + REJECT_REQ_CODE, rejectIntent, PendingIntent.FLAG_UPDATE_CURRENT) nb.addAction(R.drawable.ic_stat, "Answer", answerPendingIntent) nb.addAction(R.drawable.ic_stat, "Reject", rejectPendingIntent) nm.notify(CALL_NOTIFICATION_ID, nb.build()) @@ -335,8 +335,8 @@ class BaresipService: Service() { val intent = Intent(this, MainActivity::class.java) .setAction(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_LAUNCHER) - val pi = PendingIntent.getActivity(this, - System.currentTimeMillis().toInt(), intent, 0) + val pi = PendingIntent.getActivity(this, TRANSFER_REQ_CODE, + intent, 0) val nb = NotificationCompat.Builder(this, HIGH_CHANNEL_ID) val target = Utils.friendlyUri(ContactsActivity.contactName(ev[1]), Utils.aorDomain(aor)) @@ -361,16 +361,16 @@ class BaresipService: Service() { acceptIntent.putExtra("callp", callp) acceptIntent.putExtra("uri", ev[1]) val acceptPendingIntent = PendingIntent.getActivity(this, - 3, acceptIntent, PendingIntent.FLAG_UPDATE_CURRENT) - val rejectIntent = Intent(this, MainActivity::class.java) - rejectIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or + ACCEPT_REQ_CODE, acceptIntent, PendingIntent.FLAG_UPDATE_CURRENT) + val denyIntent = Intent(this, MainActivity::class.java) + denyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_SINGLE_TOP) - rejectIntent.putExtra("action", "deny") - rejectIntent.putExtra("callp", callp) - val rejectPendingIntent = PendingIntent.getActivity(this, - 4, rejectIntent, PendingIntent.FLAG_UPDATE_CURRENT) + denyIntent.putExtra("action", "deny") + denyIntent.putExtra("callp", callp) + val denyPendingIntent = PendingIntent.getActivity(this, + DENY_REQ_CODE, denyIntent, PendingIntent.FLAG_UPDATE_CURRENT) nb.addAction(R.drawable.ic_stat, "Accept", acceptPendingIntent) - nb.addAction(R.drawable.ic_stat, "Deny", rejectPendingIntent) + nb.addAction(R.drawable.ic_stat, "Deny", denyPendingIntent) nm.notify(CALL_NOTIFICATION_ID, nb.build()) return } @@ -392,13 +392,9 @@ class BaresipService: Service() { } if (Call.calls().size == 0) { am.mode = AudioManager.MODE_NORMAL - } else { - val uaCalls = Call.uaCalls(ua, "") - if (uaCalls.size > 0) - Api.call_start_audio(uaCalls[uaCalls.size - 1].callp) + if (am.isSpeakerphoneOn) am.isSpeakerphoneOn = false + if (audioFocused) abandonAudioFocus() } - if (am.isSpeakerphoneOn) am.isSpeakerphoneOn = false - if (audioFocused) abandonAudioFocus() } "transfer failed" -> { Log.d(LOG_TAG, "AoR $aor hanging up call $callp with ${ev[1]}") @@ -437,8 +433,7 @@ class BaresipService: Service() { .putExtra("action", "show") .putExtra("uap", uap) .putExtra("peer", peer) - val pi = PendingIntent.getActivity(this, - System.currentTimeMillis().toInt(), intent, 0) + val pi = PendingIntent.getActivity(this, MESSAGE_REQ_CODE, intent, 0) val nb = NotificationCompat.Builder(this, HIGH_CHANNEL_ID) val sender = Utils.friendlyUri(ContactsActivity.contactName(peer), Utils.aorDomain(ua.account.aor)) @@ -461,7 +456,7 @@ class BaresipService: Service() { replyIntent.putExtra("uap", uap) replyIntent.putExtra("peer", peer) val replyPendingIntent = PendingIntent.getActivity(this, - 5, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT) + REPLY_REQ_CODE, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT) val saveIntent = Intent(this, MainActivity::class.java) saveIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_SINGLE_TOP) @@ -469,7 +464,7 @@ class BaresipService: Service() { saveIntent.putExtra("uap", uap) saveIntent.putExtra("time", timeStamp) val savePendingIntent = PendingIntent.getActivity(this, - 6, saveIntent, PendingIntent.FLAG_UPDATE_CURRENT) + SAVE_REQ_CODE, saveIntent, PendingIntent.FLAG_UPDATE_CURRENT) val deleteIntent = Intent(this, MainActivity::class.java) deleteIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_SINGLE_TOP) @@ -477,7 +472,7 @@ class BaresipService: Service() { deleteIntent.putExtra("uap", uap) deleteIntent.putExtra("time", timeStamp) val deletePendingIntent = PendingIntent.getActivity(this, - 7, deleteIntent, PendingIntent.FLAG_UPDATE_CURRENT) + DELETE_REQ_CODE, deleteIntent, PendingIntent.FLAG_UPDATE_CURRENT) nb.addAction(R.drawable.ic_stat, "Reply", replyPendingIntent) nb.addAction(R.drawable.ic_stat, "Save", savePendingIntent) nb.addAction(R.drawable.ic_stat, "Delete", deletePendingIntent) @@ -531,7 +526,7 @@ class BaresipService: Service() { val intent = Intent(this, MainActivity::class.java) .setAction(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_LAUNCHER) - val pi = PendingIntent.getActivity(this, 0, intent, 0) + val pi = PendingIntent.getActivity(this, STATUS_REQ_CODE, intent, 0) snb.setVisibility(VISIBILITY_PUBLIC) .setSmallIcon(R.drawable.ic_stat) .setContentIntent(pi) @@ -652,6 +647,18 @@ class BaresipService: Service() { val CALL_NOTIFICATION_ID = 102 val MESSAGE_NOTIFICATION_ID = 103 + val STATUS_REQ_CODE = 1 + val CALL_REQ_CODE = 2 + val ANSWER_REQ_CODE = 3 + val REJECT_REQ_CODE = 4 + val TRANSFER_REQ_CODE = 5 + val ACCEPT_REQ_CODE = 6 + val DENY_REQ_CODE = 7 + val MESSAGE_REQ_CODE = 8 + val REPLY_REQ_CODE = 9 + val SAVE_REQ_CODE = 10 + val DELETE_REQ_CODE = 11 + val DEFAULT_CHANNEL_ID = "com.tutpro.baresip.default" val HIGH_CHANNEL_ID = "com.tutpro.baresip.high" diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index a22baf7b..3e54d02b 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -635,7 +635,7 @@ class MainActivity : AppCompatActivity() { startService(baresipService) } val param = ev[1].trim() - if (param != "") { + if ((param != "") && (Call.uaCalls(ua, "").size == 0)) { if (param.get(0).isDigit()) Toast.makeText(applicationContext, "Call failed: $param", Toast.LENGTH_LONG).show() @@ -1018,9 +1018,9 @@ class MainActivity : AppCompatActivity() { Utils.dtmfWatcher(newCallp)) Call.calls().add(newCall) Api.call_stop_audio(call.callp) - Api.call_start_audio(newCallp) val err = Api.call_connect(newCallp, uri) if (err == 0) { + Api.call_start_audio(newCallp) if (ua != UserAgent.uas()[aorSpinner.selectedItemPosition]) spinToAor(ua.account.aor) showCall(ua) diff --git a/fastlane/metadata/android/en-US/changelogs/6.1.0.txt b/fastlane/metadata/android/en-US/changelogs/6.1.0.txt new file mode 100644 index 00000000..36121f3b --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/6.1.0.txt @@ -0,0 +1,2 @@ +- Go to chat window when message notification is clicked. +- Fixed bug in call transfer.