fix: Fix a bug that caused alarm name to not update

#48
This commit is contained in:
Nishant Mishra
2025-09-27 22:48:27 +05:30
parent 748829f794
commit 816b4f36a9

View File

@@ -12,6 +12,7 @@ import android.content.Intent
import android.media.RingtoneManager
import android.net.Uri
import android.os.Build
import android.provider.MediaStore
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.DrawableRes
@@ -72,6 +73,7 @@ import androidx.compose.ui.tooling.preview.Devices
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.util.fastCoerceAtLeast
import androidx.core.net.toUri
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel
@@ -89,6 +91,7 @@ import org.nsh07.pomodoro.ui.theme.TomatoShapeDefaults.topListItemShape
import org.nsh07.pomodoro.ui.theme.TomatoTheme
import org.nsh07.pomodoro.utils.toColor
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun SettingsScreenRoot(
@@ -197,9 +200,17 @@ private fun SettingsScreen(
val context = LocalContext.current
var alarmName by remember { mutableStateOf("") }
LaunchedEffect(Unit) {
alarmName = RingtoneManager.getRingtone(context, alarmSound.toUri())
?.getTitle(context) ?: ""
LaunchedEffect(alarmSound) {
val returnCursor = context.contentResolver.query(alarmSound.toUri(), null, null, null, null)
returnCursor?.moveToFirst()
alarmName =
returnCursor
?.getString(
returnCursor
.getColumnIndex(MediaStore.MediaColumns.TITLE)
.fastCoerceAtLeast(0)
) ?: ""
returnCursor?.close()
}
val ringtonePickerLauncher = rememberLauncherForActivityResult(