Keep screen on when there is active call
Avoid lint warning
This commit is contained in:
@ -20,6 +20,7 @@ import android.os.SystemClock
|
|||||||
import android.provider.DocumentsContract
|
import android.provider.DocumentsContract
|
||||||
import android.provider.MediaStore
|
import android.provider.MediaStore
|
||||||
import android.telecom.TelecomManager
|
import android.telecom.TelecomManager
|
||||||
|
import android.view.WindowManager
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.activity.compose.rememberLauncherForActivityResult
|
import androidx.activity.compose.rememberLauncherForActivityResult
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
@ -239,6 +240,12 @@ private fun MainScreen(
|
|||||||
BaresipService.isMainVisible = true
|
BaresipService.isMainVisible = true
|
||||||
viewModel.updateSpeakerPhoneStatus(BaresipService.speakerPhone)
|
viewModel.updateSpeakerPhoneStatus(BaresipService.speakerPhone)
|
||||||
viewModel.updateCalls(Call.calls().toList())
|
viewModel.updateCalls(Call.calls().toList())
|
||||||
|
|
||||||
|
if (Call.inCall())
|
||||||
|
(ctx as? Activity)?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
|
else
|
||||||
|
(ctx as? Activity)?.window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
|
|
||||||
(Call.call("incoming") ?: Call.calls().lastOrNull())?.let {
|
(Call.call("incoming") ?: Call.calls().lastOrNull())?.let {
|
||||||
spinToAor(viewModel, it.ua.account.aor)
|
spinToAor(viewModel, it.ua.account.aor)
|
||||||
} ?: run {
|
} ?: run {
|
||||||
@ -2117,7 +2124,7 @@ private fun makeCall(ctx: Context, viewModel: ViewModel, uriText: String,
|
|||||||
viewModel.dialerState.callButtonsEnabled.value = false
|
viewModel.dialerState.callButtonsEnabled.value = false
|
||||||
var error = ""
|
var error = ""
|
||||||
val tm = ctx.getSystemService(Context.TELECOM_SERVICE) as TelecomManager
|
val tm = ctx.getSystemService(Context.TELECOM_SERVICE) as TelecomManager
|
||||||
if (ua.account.isMobile) {
|
if (VERSION.SDK_INT >= 29 && ua.account.isMobile) {
|
||||||
val phoneAccountHandle = Utils.pstnAccountHandle(ctx)
|
val phoneAccountHandle = Utils.pstnAccountHandle(ctx)
|
||||||
if (phoneAccountHandle != null) {
|
if (phoneAccountHandle != null) {
|
||||||
val extras = Bundle().apply {
|
val extras = Bundle().apply {
|
||||||
@ -2423,6 +2430,7 @@ fun handleServiceEvent(ctx: Context, viewModel: ViewModel, event: String, params
|
|||||||
showCall(ctx, viewModel, ua)
|
showCall(ctx, viewModel, ua)
|
||||||
}
|
}
|
||||||
"call established" -> {
|
"call established" -> {
|
||||||
|
(ctx as? Activity)?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
if (aor == viewModel.selectedAor.value) {
|
if (aor == viewModel.selectedAor.value) {
|
||||||
viewModel.dialerState.callButtonsEnabled.value = true // Re-enable dialer
|
viewModel.dialerState.callButtonsEnabled.value = true // Re-enable dialer
|
||||||
val callp = params[1] as Long
|
val callp = params[1] as Long
|
||||||
@ -2521,6 +2529,8 @@ fun handleServiceEvent(ctx: Context, viewModel: ViewModel, event: String, params
|
|||||||
showCall(ctx, viewModel, ua)
|
showCall(ctx, viewModel, ua)
|
||||||
}
|
}
|
||||||
"call closed" -> {
|
"call closed" -> {
|
||||||
|
if (Call.calls().isEmpty())
|
||||||
|
(ctx as? Activity)?.window?.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
viewModel.updateCalls(Call.calls().toList())
|
viewModel.updateCalls(Call.calls().toList())
|
||||||
val activity = ctx as? Activity
|
val activity = ctx as? Activity
|
||||||
if (activity != null) {
|
if (activity != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user