Found 1 match for pattern "import com.servicebook.ui.TestTags" in the workspace directory (filter: "app/src/main/java/com/servicebook/ui/vehicles/AddEditVehicleScreen.kt"): --- File: app/src/main/java/com/servicebook/ui/vehicles/AddEditVehicleScreen.kt L5- import androidx.compose.foundation.layout.Column L6- import androidx.compose.foundation.layout.Row L7- import androidx.compose.foundation.layout.Spacer L8- import androidx.compose.foundation.layout.fillMaxSize L9- import androidx.compose.foundation.layout.fillMaxWidth L10- import androidx.compose.foundation.layout.height L11- import androidx.compose.foundation.layout.imePadding L12- import androidx.compose.foundation.layout.padding L13- import androidx.compose.foundation.rememberScrollState L14- import androidx.compose.foundation.text.KeyboardOptions L15- import androidx.compose.foundation.verticalScroll L16- import androidx.compose.material.icons.Icons L17- import androidx.compose.material.icons.outlined.ArrowDropDown L18- import androidx.compose.material.icons.outlined.ContentCopy L19- import androidx.compose.material3.ButtonDefaults L20- import androidx.compose.material3.ExperimentalMaterial3Api L21- import androidx.compose.material3.FilterChip L22- import androidx.compose.material3.Icon L23- import androidx.compose.material3.IconButton L24- import androidx.compose.material3.MaterialTheme L25- import androidx.compose.material3.OutlinedTextField L26- import androidx.compose.material3.OutlinedTextFieldDefaults L27- import androidx.compose.material3.SnackbarHostState L28- import androidx.compose.material3.Text L29- import androidx.compose.material3.TextButton L30- import androidx.compose.material3.TopAppBar L31- import androidx.compose.runtime.Composable L32- import androidx.compose.runtime.LaunchedEffect L33- import androidx.compose.runtime.getValue L34- import androidx.compose.runtime.mutableStateOf L35- import androidx.compose.runtime.remember L36- import androidx.compose.runtime.setValue L37- import androidx.compose.ui.Alignment L38- import androidx.compose.ui.Modifier L39- import androidx.compose.ui.platform.LocalContext L40- import androidx.compose.ui.platform.testTag L41- import androidx.compose.ui.res.stringResource L42- import androidx.compose.ui.semantics.Role L43- import androidx.compose.ui.semantics.role L44- import androidx.compose.ui.semantics.semantics L45- import androidx.compose.ui.semantics.stateDescription L46- import androidx.compose.ui.text.input.KeyboardType L47- import androidx.compose.ui.unit.dp L48- import androidx.lifecycle.compose.collectAsStateWithLifecycle L49- import androidx.lifecycle.viewmodel.compose.viewModel L50- import androidx.navigation3.runtime.NavBackStack L51- import androidx.navigation3.runtime.NavKey L52- import com.servicebook.R L53- import com.servicebook.ServiceBookApplication L54- import com.servicebook.data.model.OdometerUnit L55: import com.servicebook.ui.TestTags L56- import com.servicebook.ui.components.CustomMakeDialog L57- import com.servicebook.ui.components.MakePickerDialog L58- import com.servicebook.ui.components.PaywallScaffold L59- import com.servicebook.ui.components.RequiredLabel L60- import com.servicebook.ui.theme.appTopAppBarColors L61- import com.servicebook.ui.util.ViewModelFactory L62- L63- @OptIn(ExperimentalMaterial3Api::class) L64- @Composable L65- fun AddEditVehicleScreen( L66- vehicleId: String?, L67- backStack: NavBackStack, L68- viewModel: AddEditVehicleViewModel = L69- viewModel( L70- key = vehicleId ?: "new", L71- factory = L72- ViewModelFactory( L73- application = LocalContext.current.applicationContext as ServiceBookApplication, L74- extraParams = if (vehicleId != null) mapOf("vehicleId" to vehicleId) else emptyMap(), L75- ), L76- ), L77- ) { L78- val state by viewModel.state.collectAsStateWithLifecycle() L79- val snackbarHostState = remember { SnackbarHostState() } L80- val vinCopiedMsg = stringResource(R.string.vehicle_vin_copied) L81- val disabledDescription = stringResource(R.string.disabled_upgrade_description) L82- L83- var showMakeDialog by remember { mutableStateOf(false) } L84- var showCustomMakeDialog by remember { mutableStateOf(false) } L85- L86- LaunchedEffect(Unit) { L87- viewModel.effects.collect { effect -> L88- when (effect) { L89- AddEditVehicleEffect.NavigateBack -> backStack.removeLastOrNull() L90- AddEditVehicleEffect.VinCopied -> snackbarHostState.showSnackbar(vinCopiedMsg) L91- } L92- } L93- } L94- L95- PaywallScaffold( L96- showPaywallSheet = state.showPaywallSheet, L97- isPremiumPending = state.isPremiumPending, L98- onDismissPaywallSheet = { viewModel.onEvent(AddEditVehicleEvent.DismissPaywallSheet) }, L99- snackbarHostState = snackbarHostState, L100- topBar = { L101- TopAppBar( L102- title = { L103- Text( L104- if (state.isEditMode) { L105- stringResource(R.string.vehicle_edit) ---