Found 1 match for pattern "PrivacyPolicyContent" in the workspace directory (filter: "app/src/main/java/com/servicebook/ui/settings/SettingsScreen.kt"): --- File: app/src/main/java/com/servicebook/ui/settings/SettingsScreen.kt L36- import androidx.compose.material.icons.filled.Speed L37- import androidx.compose.material.icons.filled.Star L38- import androidx.compose.material3.AlertDialog L39- import androidx.compose.material3.Card L40- import androidx.compose.material3.CardDefaults L41- import androidx.compose.material3.CircularProgressIndicator L42- import androidx.compose.material3.ExperimentalMaterial3Api L43- import androidx.compose.material3.Icon L44- import androidx.compose.material3.IconButton L45- import androidx.compose.material3.ListItem L46- import androidx.compose.material3.ListItemDefaults L47- import androidx.compose.material3.MaterialTheme L48- import androidx.compose.material3.OutlinedButton L49- import androidx.compose.material3.RadioButton L50- import androidx.compose.material3.SnackbarHostState L51- import androidx.compose.material3.Surface L52- import androidx.compose.material3.Switch L53- import androidx.compose.material3.Text L54- import androidx.compose.material3.TextButton L55- import androidx.compose.material3.TopAppBar L56- import androidx.compose.runtime.Composable L57- import androidx.compose.runtime.LaunchedEffect L58- import androidx.compose.runtime.getValue L59- import androidx.compose.runtime.mutableStateOf L60- import androidx.compose.runtime.remember L61- import androidx.compose.runtime.setValue L62- import androidx.compose.ui.Alignment L63- import androidx.compose.ui.Modifier L64- import androidx.compose.ui.graphics.Color L65- import androidx.compose.ui.graphics.vector.ImageVector L66- import androidx.compose.ui.platform.LocalContext L67- import androidx.compose.ui.platform.testTag L68- import androidx.compose.ui.res.stringResource L69- import androidx.compose.ui.text.style.TextOverflow L70- import androidx.compose.ui.unit.dp L71- import androidx.lifecycle.compose.collectAsStateWithLifecycle L72- import androidx.lifecycle.viewmodel.compose.viewModel L73- import androidx.navigation3.runtime.NavBackStack L74- import androidx.navigation3.runtime.NavKey L75- import com.servicebook.BuildConfig L76- import com.servicebook.R L77- import com.servicebook.ServiceBookApplication L78- import com.servicebook.data.model.OdometerUnit L79- import com.servicebook.data.preferences.DebugBillingOverrideMode L80- import com.servicebook.ui.TestTags L81- import com.servicebook.ui.components.CurrencyPickerDialog L82- import com.servicebook.ui.components.CustomCurrencyDialog L83- import com.servicebook.ui.components.DismissablePendingDialog L84- import com.servicebook.ui.components.ExpandablePrivacyDisclosure L85- import com.servicebook.ui.components.PaywallScaffold L86: import com.servicebook.ui.components.PrivacyPolicyContent L87- import com.servicebook.ui.navigation.Categories L88- import com.servicebook.ui.navigation.ReportBug L89- import com.servicebook.ui.theme.appTopAppBarColors L90- import com.servicebook.ui.util.ViewModelFactory L91- import com.servicebook.ui.util.rememberUpgradeLauncher L92- import com.servicebook.util.VaultPathHelper L93- L94- @OptIn(ExperimentalMaterial3Api::class) L95- @Composable L96- fun SettingsScreen( L97- backStack: NavBackStack, L98- viewModel: SettingsViewModel = L99- viewModel( L100- factory = ViewModelFactory(LocalContext.current.applicationContext as ServiceBookApplication), L101- ), L102- ) { L103- val state by viewModel.state.collectAsStateWithLifecycle() L104- val context = LocalContext.current L105- val snackbarHostState = remember { SnackbarHostState() } L106- val upgradeLauncher = rememberUpgradeLauncher(snackbarHostState) L107- val fileManagerError = stringResource(R.string.settings_file_manager_error) L108- L109- var showOdometerDialog by remember { mutableStateOf(false) } L110- var showCurrencyDialog by remember { mutableStateOf(false) } L111- var showCustomCurrencyDialog by remember { mutableStateOf(false) } L112- var showCrashConfirmation by remember { mutableStateOf(false) } L113- L114- val folderPicker = L115- rememberLauncherForActivityResult( L116- ActivityResultContracts.OpenDocumentTree(), L117- ) { uri -> L118- if (uri == null) return@rememberLauncherForActivityResult L119- context.contentResolver.takePersistableUriPermission( L120- uri, L121- Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION, L122- ) L123- viewModel.onEvent(SettingsEvent.VaultFolderPicked(uri)) L124- } L125- L126- LaunchedEffect(Unit) { L127- viewModel.effects.collect { effect -> L128- when (effect) { L129- SettingsEffect.NavigateToCategories -> L130- backStack.add(Categories) L131- SettingsEffect.NavigateToReportBug -> L132- backStack.add(ReportBug) L133- is SettingsEffect.ShowSnackbar -> L134- snackbarHostState.showSnackbar(effect.message) L135- is SettingsEffect.LaunchFileManager -> { L136- try { ---