From 42c06983ccfb7cf6c4d559fecf6c14e8fc3670a7 Mon Sep 17 00:00:00 2001 From: OfficialDakari Date: Tue, 3 Jun 2025 13:48:09 +0500 Subject: [PATCH] add call button on ring --- .../ru/officialdakari/fmd/RingActivity.kt | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/ru/officialdakari/fmd/RingActivity.kt b/app/src/main/java/ru/officialdakari/fmd/RingActivity.kt index 9b9d121..da3685a 100644 --- a/app/src/main/java/ru/officialdakari/fmd/RingActivity.kt +++ b/app/src/main/java/ru/officialdakari/fmd/RingActivity.kt @@ -1,7 +1,10 @@ package ru.officialdakari.fmd +import android.Manifest import android.app.KeyguardManager import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager import android.media.AudioAttributes import android.media.MediaPlayer import android.media.RingtoneManager @@ -12,6 +15,7 @@ import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.Button @@ -23,6 +27,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em +import androidx.core.app.ActivityCompat +import androidx.core.net.toUri import ru.officialdakari.fmd.ui.theme.FindMyDeviceTheme class RingActivity : ComponentActivity() { @@ -38,7 +44,7 @@ class RingActivity : ComponentActivity() { setContent { FindMyDeviceTheme { Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> - RingScreen(Modifier.padding(innerPadding), stopRinging = { stopRinging() }) + RingScreen(this@RingActivity, Modifier.padding(innerPadding), stopRinging = { stopRinging() }) } } } @@ -88,7 +94,7 @@ class RingActivity : ComponentActivity() { } @Composable -fun RingScreen(modifier: Modifier, stopRinging: () -> Unit) { +fun RingScreen(context: Context, modifier: Modifier, stopRinging: () -> Unit) { Column( modifier = modifier .fillMaxSize() @@ -105,8 +111,29 @@ fun RingScreen(modifier: Modifier, stopRinging: () -> Unit) { text = Utils.lockMessage ) } - Button(onClick = { stopRinging() }) { - Text(text = "Stop ringing") + Row( + horizontalArrangement = Arrangement.SpaceBetween + ) { + Button(onClick = { stopRinging() }) { + Text(text = "Stop ringing") + } + if (Utils.lockPhoneNum != null) { + Button( + onClick = { + val callIntent = Intent(Intent.ACTION_CALL) + callIntent.setData("tel:${Utils.lockPhoneNum}".toUri()) + if (ActivityCompat.checkSelfPermission( + context, + Manifest.permission.CALL_PHONE + ) == PackageManager.PERMISSION_GRANTED + ) { + context.startActivity(callIntent) + } + } + ) { + Text("Call ${Utils.lockPhoneNum}") + } + } } } }