From 6ceb4b6a1ba48b4f9985c9eb7c60997763f3b6d0 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Thu, 18 Oct 2018 17:03:39 +0300 Subject: [PATCH] make sure that incoming call/message intent is handled also when MainActivity has been killed by Android --- .../kotlin/com/tutpro/baresip/MainActivity.kt | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index f406cf6d..be56436a 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -60,7 +60,8 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) - Log.d("Baresip", "At onCreate") + Log.d("Baresip", "onCreate with intent action " + + intent.getStringExtra("action")) window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON or @@ -419,6 +420,11 @@ class MainActivity : AppCompatActivity() { if (intent.hasExtra("onStartup")) moveTaskToBack(true) + + if (intent.hasExtra("action")) { + // MainActivity was not running when call or message came in + handleIntent(intent) + } } private fun handleServiceEvent(event: String, params: ArrayList) { @@ -703,9 +709,16 @@ class MainActivity : AppCompatActivity() { } override fun onNewIntent(intent: Intent) { - setIntent(intent) + super.onNewIntent(intent) val action = intent.getStringExtra("action") - Log.d("Baresip", "Got onNewIntent action '$action'") + Log.d("Baresip", "onNewIntent action '$action'") + if (action != null) + handleIntent(intent) + } + + private fun handleIntent(intent: Intent) { + val action = intent.getStringExtra("action") + Log.d("Baresip", "Handling intent '$action'") when (action) { "call" -> { if (!calls.isEmpty()) {