From 1b662d76aa6c795614dffabff590247c766f39d8 Mon Sep 17 00:00:00 2001 From: Nishant Mishra Date: Sun, 28 Sep 2025 14:58:42 +0530 Subject: [PATCH] fix: Fix crash that occurred on navigating to settings screen Closes: #50 --- .../ui/settingsScreen/SettingsScreen.kt | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/settingsScreen/SettingsScreen.kt b/app/src/main/java/org/nsh07/pomodoro/ui/settingsScreen/SettingsScreen.kt index 1be245c..29434cc 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/settingsScreen/SettingsScreen.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/settingsScreen/SettingsScreen.kt @@ -12,7 +12,6 @@ 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 @@ -74,10 +73,11 @@ 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 +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.nsh07.pomodoro.R import org.nsh07.pomodoro.service.TimerService import org.nsh07.pomodoro.ui.settingsScreen.viewModel.PreferencesState @@ -199,19 +199,12 @@ private fun SettingsScreen( ) } - var alarmName by remember { mutableStateOf("") } + var alarmName by remember { mutableStateOf("...") } 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() + withContext(Dispatchers.IO) { + alarmName = RingtoneManager.getRingtone(context, alarmSound.toUri()).getTitle(context) + } } val ringtonePickerLauncher = rememberLauncherForActivityResult(