diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 86232802..b624337b 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -46,6 +46,7 @@ class MainActivity : AppCompatActivity() { internal lateinit var aorSpinner: Spinner internal lateinit var imm: InputMethodManager internal lateinit var nm: NotificationManager + internal lateinit var kgm: KeyguardManager internal lateinit var serviceEventReceiver: BroadcastReceiver internal lateinit var quitTimer: CountDownTimer internal lateinit var stopState: String @@ -58,11 +59,11 @@ class MainActivity : AppCompatActivity() { val intentAction = intent.getStringExtra("action") Log.d("Baresip", "Main created with action '$intentAction'") + kgm = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { setShowWhenLocked(true) setTurnScreenOn(true) - val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager - keyguardManager.requestDismissKeyguard(this, null) + kgm.requestDismissKeyguard(this, null) } else { window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON or @@ -191,7 +192,18 @@ class MainActivity : AppCompatActivity() { Contact.contacts().map { Contact -> Contact.name })) callUri.threshold = 2 callUri.setOnFocusChangeListener { view, b -> - if (b) imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT) + if (b) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { + kgm.requestDismissKeyguard(this, null) + } + imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT) + } + } + callUri.setOnClickListener { view -> + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { + kgm.requestDismissKeyguard(this, null) + } + imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT) } securityButton.setOnClickListener {