@@ -19,8 +19,11 @@ package io.getstream.chat.android.compose.sample.ui.location
1919import android.Manifest
2020import android.app.Activity
2121import android.content.Context
22+ import android.content.Intent
2223import android.content.pm.PackageManager
2324import android.location.Location
25+ import android.net.Uri
26+ import android.provider.Settings
2427import androidx.activity.compose.rememberLauncherForActivityResult
2528import androidx.activity.result.IntentSenderRequest
2629import androidx.activity.result.contract.ActivityResultContracts
@@ -68,7 +71,6 @@ import io.getstream.chat.android.compose.sample.vm.SharedLocationViewModel
6871import io.getstream.chat.android.compose.sample.vm.SharedLocationViewModelFactory
6972import io.getstream.chat.android.compose.ui.components.LoadingIndicator
7073import io.getstream.chat.android.compose.ui.theme.ChatTheme
71- import io.getstream.chat.android.uiutils.util.openSystemSettings
7274import kotlinx.coroutines.tasks.await
7375import java.util.Date
7476
@@ -220,10 +222,11 @@ private fun LocationContent(
220222 longitude = location!! .longitude,
221223 )
222224 } else if (showLocationPermissionRequired) {
225+ val context = LocalContext .current
223226 LocationPermissionRequired (
224227 modifier = modifier,
225228 onClick = {
226- context. openSystemSettings()
229+ openSystemSettings(context )
227230 onDismiss()
228231 },
229232 )
@@ -353,6 +356,15 @@ private suspend fun Context.isLocationEnabled(priority: Int): Boolean {
353356 }
354357}
355358
359+ private fun openSystemSettings (context : Context ) {
360+ val intent = Intent (Settings .ACTION_APPLICATION_DETAILS_SETTINGS ).apply {
361+ val uri: Uri = Uri .fromParts(" package" , context.packageName, null )
362+ addFlags(Intent .FLAG_ACTIVITY_NEW_TASK )
363+ data = uri
364+ }
365+ context.startActivity(intent)
366+ }
367+
356368@Preview(showBackground = true )
357369@Composable
358370private fun LocationPickerContentPreview () {
0 commit comments