feat: FEATURE_CAMERA_ENABLED compile flag für KI-Kamera

- build.gradle.kts: buildConfigField FEATURE_CAMERA_ENABLED (default: true)
- ItemListScreen: Camera-Icon nur wenn Flag gesetzt, onCameraClick optional
- KrisenvorratNavGraph: CameraCapture-Route und Lambda nur wenn Flag gesetzt
- SettingsScreen: KI-Erkennung-Section nur wenn Flag gesetzt
This commit is contained in:
Jens Reinemann 2026-05-16 18:06:12 +02:00
parent dd571f46fc
commit 809e6aa069
4 changed files with 46 additions and 37 deletions

View file

@ -19,6 +19,7 @@ android {
versionName = "1.2"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
buildConfigField("boolean", "FEATURE_CAMERA_ENABLED", "true")
}
buildTypes {

View file

@ -50,7 +50,7 @@ internal fun ItemListScreen(
onItemClick: (String) -> Unit,
onCategoriesClick: () -> Unit,
onLocationsClick: () -> Unit,
onCameraClick: () -> Unit,
onCameraClick: () -> Unit = {},
viewModel: ItemListViewModel = hiltViewModel()
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
@ -61,12 +61,14 @@ internal fun ItemListScreen(
TopAppBar(
title = { Text("Artikel") },
actions = {
if (de.krisenvorrat.app.BuildConfig.FEATURE_CAMERA_ENABLED) {
IconButton(onClick = onCameraClick) {
Icon(
imageVector = Icons.Default.PhotoCamera,
contentDescription = "Foto erfassen"
)
}
}
IconButton(onClick = { isMenuExpanded = true }) {
Icon(
imageVector = Icons.Default.MoreVert,

View file

@ -42,8 +42,10 @@ internal fun KrisenvorratNavGraph(
onLocationsClick = {
navController.navigate(Screen.LocationManagement)
},
onCameraClick = {
navController.navigate(Screen.CameraCapture)
onCameraClick = if (de.krisenvorrat.app.BuildConfig.FEATURE_CAMERA_ENABLED) {
{ navController.navigate(Screen.CameraCapture) }
} else {
{}
}
)
}
@ -56,6 +58,7 @@ internal fun KrisenvorratNavGraph(
)
}
if (de.krisenvorrat.app.BuildConfig.FEATURE_CAMERA_ENABLED) {
composable<Screen.CameraCapture> {
CameraScreen(
onNavigateToItemForm = { prefillJson ->
@ -64,6 +67,7 @@ internal fun KrisenvorratNavGraph(
onNavigateBack = { navController.popBackStack() }
)
}
}
composable<Screen.CategoryManagement> {
CategoryListScreen(

View file

@ -316,6 +316,7 @@ internal fun SettingsScreen(
)
}
if (de.krisenvorrat.app.BuildConfig.FEATURE_CAMERA_ENABLED) {
Spacer(modifier = Modifier.height(32.dp))
HorizontalDivider()
@ -348,6 +349,7 @@ internal fun SettingsScreen(
}
}
}
}
if (uiState.pendingImportUri != null) {
AlertDialog(