CyclomaticComplexMethod:ListDetailScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable private fun ItemDetailSheet( item: ListDetailViewModel.ShoppingListItemUi, otherLists: List<com.safebite.app.data.local.database.entity.ShoppingListEntity>, categories: List<String>, onDismiss: () -> Unit, onUpdateNote: (String) -> Unit, onUpdateCategory: (String) -> Unit, onUpdateEmoji: (String?) -> Unit, onToggleTag: (String) -> Unit, onUpdateImage: (String?) -> Unit, onMoveTo: (Long) -> Unit, onDelete: () -> Unit, onOpenProduct: (() -> Unit)?, onRequestCrop: (Bitmap) -> Unit, )
CyclomaticComplexMethod:ListDetailScreen.kt$@OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class) @Composable fun ListDetailScreen( listId: Long, listName: String, onBack: () -> Unit, onOpenScanner: () -> Unit, onOpenProduct: (String) -> Unit, onOpenCatalog: (Long) -> Unit = {}, viewModel: ListDetailViewModel = hiltViewModel(), )
CyclomaticComplexMethod:ListSortScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable fun ListSortScreen( listId: Long, onBack: () -> Unit, viewModel: ListsViewModel = hiltViewModel(), )
CyclomaticComplexMethod:ListsScreen.kt$@Composable private fun ShoppingListCard( item: ListsViewModel.ShoppingListWithStats, isEditMode: Boolean, onClick: () -> Unit, onSettingsClick: () -> Unit, )
FunctionOnlyReturningConstant:Screen.kt$Screen.ListEdit$fun new()
FunctionOnlyReturningConstant:Screen.kt$Screen.ProfileEdit$fun new()
LongMethod:AllergenAnalysisEngine.kt$AllergenAnalysisEngine$fun analyze( product: Product, profiles: List<UserProfile>, source: DataSource, language: DetectionLanguage = DetectionLanguage.BOTH, healthStrictness: HealthStrictness = HealthStrictness.NORMAL, ): ScanResult
LongMethod:IconPickerSheet.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable fun IconPickerSheet( currentEmoji: String, categories: List<String>, onDismiss: () -> Unit, onSelectIcon: (String) -> Unit, catalogProvider: CatalogProvider = hiltViewModel<ListDetailViewModel>().catalog, )
LongMethod:ImageCropBottomSheet.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable fun ImageCropBottomSheet( bitmap: Bitmap, onCropComplete: (String?) -> Unit, onDismiss: () -> Unit, sheetState: SheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true), )
LongMethod:ListDetailScreen.kt$@Composable private fun ItemDetailPanel( pending: ListDetailViewModel.PendingItem, onQuantity: (Int?) -> Unit, onVariant: (String?) -> Unit, onToggleTag: (String) -> Unit, onNote: (String) -> Unit, )
LongMethod:ListDetailScreen.kt$@OptIn(ExperimentalFoundationApi::class) @Composable private fun ListDetailContent( ready: ListDetailViewModel.UiState.Ready, catalogDomains: List<com.safebite.app.data.local.database.relation.DomainWithCategoriesAndItems>, recentlyExpanded: Boolean, onToggleRecently: () -> Unit, expandedDomains: Map<String, Boolean>, onToggleDomain: (String) -> Unit, expandedRoomCategories: Map<String, Boolean>, onToggleRoomCategory: (String) -> Unit, onTapActive: (Long) -> Unit, onLongPressActive: (Long) -> Unit, onTapRecent: (Long) -> Unit, onLongPressRecent: (Long) -> Unit, onTapCatalogItem: (com.safebite.app.data.local.database.entity.CatalogItemEntity) -> Unit, )
LongMethod:ListDetailScreen.kt$@OptIn(ExperimentalFoundationApi::class) @Composable private fun Tile( data: TileData, onTap: () -> Unit, onLongPress: () -> Unit, )
LongMethod:ListDetailScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable private fun ItemDetailSheet( item: ListDetailViewModel.ShoppingListItemUi, otherLists: List<com.safebite.app.data.local.database.entity.ShoppingListEntity>, categories: List<String>, onDismiss: () -> Unit, onUpdateNote: (String) -> Unit, onUpdateCategory: (String) -> Unit, onUpdateEmoji: (String?) -> Unit, onToggleTag: (String) -> Unit, onUpdateImage: (String?) -> Unit, onMoveTo: (Long) -> Unit, onDelete: () -> Unit, onOpenProduct: (() -> Unit)?, onRequestCrop: (Bitmap) -> Unit, )
LongMethod:ListDetailScreen.kt$@OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class) @Composable fun ListDetailScreen( listId: Long, listName: String, onBack: () -> Unit, onOpenScanner: () -> Unit, onOpenProduct: (String) -> Unit, onOpenCatalog: (Long) -> Unit = {}, viewModel: ListDetailViewModel = hiltViewModel(), )
LongMethod:ListNameImageScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable fun ListNameImageScreen( listId: Long, onBack: () -> Unit, viewModel: ListsViewModel = hiltViewModel(), )
LongMethod:ListSettingsScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable fun ListSettingsScreen( listId: Long, onBack: () -> Unit, onOpenSort: () -> Unit, onOpenRegion: () -> Unit, onOpenNameImage: () -> Unit, onOpenMembers: () -> Unit, viewModel: ListsViewModel = hiltViewModel(), )
LongMethod:ListSortScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable fun ListSortScreen( listId: Long, onBack: () -> Unit, viewModel: ListsViewModel = hiltViewModel(), )
LongMethod:ListsScreen.kt$@Composable private fun ShoppingListCard( item: ListsViewModel.ShoppingListWithStats, isEditMode: Boolean, onClick: () -> Unit, onSettingsClick: () -> Unit, )
LongMethod:ProductNotFoundScreen.kt$@OptIn(androidx.compose.material3.ExperimentalMaterial3Api::class) @Composable fun ProductNotFoundScreen( barcode: String, onBack: () -> Unit, onOpenOcr: () -> Unit, onManualSubmit: (String) -> Unit, onScanAgain: () -> Unit, )
LongMethod:ResultScreen.kt$@OptIn(ExperimentalLayoutApi::class, ExperimentalMaterial3Api::class) @Composable private fun ResultContent( result: ScanResult, onScanAgain: () -> Unit, onOcr: () -> Unit, onAddToList: () -> Unit, onOpenAlternatives: () -> Unit, )
LongMethod:TrackingScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable fun TrackingScreen( onOpenHistoryItem: (String) -> Unit, onOpenScanner: () -> Unit, viewModel: TrackingViewModel = hiltViewModel(), )
LongParameterList:ListDetailScreen.kt$( item: ListDetailViewModel.ShoppingListItemUi, otherLists: List<com.safebite.app.data.local.database.entity.ShoppingListEntity>, categories: List<String>, onDismiss: () -> Unit, onUpdateNote: (String) -> Unit, onUpdateCategory: (String) -> Unit, onUpdateEmoji: (String?) -> Unit, onToggleTag: (String) -> Unit, onUpdateImage: (String?) -> Unit, onMoveTo: (Long) -> Unit, onDelete: () -> Unit, onOpenProduct: (() -> Unit)?, onRequestCrop: (Bitmap) -> Unit, )
LongParameterList:ListDetailScreen.kt$( ready: ListDetailViewModel.UiState.Ready, catalogDomains: List<com.safebite.app.data.local.database.relation.DomainWithCategoriesAndItems>, recentlyExpanded: Boolean, onToggleRecently: () -> Unit, expandedDomains: Map<String, Boolean>, onToggleDomain: (String) -> Unit, expandedRoomCategories: Map<String, Boolean>, onToggleRoomCategory: (String) -> Unit, onTapActive: (Long) -> Unit, onLongPressActive: (Long) -> Unit, onTapRecent: (Long) -> Unit, onLongPressRecent: (Long) -> Unit, onTapCatalogItem: (com.safebite.app.data.local.database.entity.CatalogItemEntity) -> Unit, )
LongParameterList:OnboardingScreen.kt$( name: String, onNameChange: (String) -> Unit, avatar: String, onAvatarChange: (String) -> Unit, isDefault: Boolean, onSetDefault: (Boolean) -> Unit, allergenLevels: Map<AllergenType, AllergenLevel>, onSetAllergenLevel: (AllergenType, AllergenLevel) -> Unit, restrictions: Set<DietaryRestriction>, onToggleRestriction: (DietaryRestriction) -> Unit, customItems: List<CustomDietItem>, onAddCustomItem: (String, CustomItemTag) -> Unit, onRemoveCustomItem: (CustomDietItem) -> Unit, onNext: () -> Unit, )
MagicNumber:AllergenGrid.kt$0xFFE74C3C
MagicNumber:AllergenGrid.kt$0xFFF39C12
MagicNumber:AllergenGrid.kt$0xFFFDEDEC
MagicNumber:AllergenGrid.kt$0xFFFEF5E7
MagicNumber:AllergenGrid.kt$3
MagicNumber:CatalogScreens.kt$3
MagicNumber:CatalogViewModel.kt$CatalogViewModel$5_000
MagicNumber:Charts.kt$0.4f
MagicNumber:Charts.kt$0.5f
MagicNumber:Charts.kt$0xFFE3E2EC
MagicNumber:Charts.kt$360f
MagicNumber:CreateListScreen.kt$1.5f
MagicNumber:DashboardScreen.kt$3_600_000
MagicNumber:DashboardScreen.kt$604_800_000
MagicNumber:DashboardScreen.kt$60_000
MagicNumber:DashboardScreen.kt$86_400_000
MagicNumber:DashboardViewModel.kt$DashboardViewModel$19
MagicNumber:DashboardViewModel.kt$DashboardViewModel$4
MagicNumber:DashboardViewModel.kt$DashboardViewModel$5
MagicNumber:DashboardViewModel.kt$DashboardViewModel$5000
MagicNumber:DashboardViewModel.kt$DashboardViewModel$8
MagicNumber:FamilyViewModel.kt$FamilyViewModel$5_000
MagicNumber:Feedback.kt$0.5f
MagicNumber:Feedback.kt$0.8f
MagicNumber:Feedback.kt$500f
MagicNumber:HealthClassifier.kt$HealthClassifier$3
MagicNumber:HealthClassifier.kt$HealthClassifier$4
MagicNumber:HomeViewModel.kt$HomeViewModel$3
MagicNumber:HomeViewModel.kt$HomeViewModel$5_000
MagicNumber:IconPickerSheet.kt$3
MagicNumber:IconPickerSheet.kt$90f
MagicNumber:ImageCropBottomSheet.kt$0.15f
MagicNumber:ImageCropBottomSheet.kt$0.85f
MagicNumber:ImageCropBottomSheet.kt$0xFF1976D2
MagicNumber:ImageCropBottomSheet.kt$85
MagicNumber:ListDetailScreen.kt$0xFF26A69A
MagicNumber:ListDetailScreen.kt$3
MagicNumber:ListDetailScreen.kt$5
MagicNumber:ListDetailViewModel.kt$ListDetailViewModel$3
MagicNumber:ListDetailViewModel.kt$ListDetailViewModel$4
MagicNumber:ListDetailViewModel.kt$ListDetailViewModel$5000
MagicNumber:ListNameImageScreen.kt$1.5f
MagicNumber:ListSettingsScreen.kt$1.2f
MagicNumber:ListSortScreen.kt$1.02f
MagicNumber:ListsScreen.kt$1.02f
MagicNumber:ListsScreen.kt$3
MagicNumber:ListsScreen.kt$8
MagicNumber:ListsViewModel.kt$ListsViewModel$3
MagicNumber:ListsViewModel.kt$ListsViewModel$5000
MagicNumber:MainScreen.kt$15
MagicNumber:MainScreen.kt$200
MagicNumber:NavGraph.kt$200
MagicNumber:NavGraph.kt$24
MagicNumber:NavGraph.kt$250
MagicNumber:NetworkModule.kt$NetworkModule$15
MagicNumber:NetworkModule.kt$NetworkModule$20
MagicNumber:OcrCaptureScreen.kt$0xAA000000
MagicNumber:OcrCaptureScreen.kt$300
MagicNumber:OnboardingScreen.kt$3
MagicNumber:OnboardingScreen.kt$4
MagicNumber:ProductDetailScreen.kt$0xFF1E8E3E
MagicNumber:ProductDetailScreen.kt$0xFF2E7D32
MagicNumber:ProductDetailScreen.kt$0xFF2ECC71
MagicNumber:ProductDetailScreen.kt$0xFF3498DB
MagicNumber:ProductDetailScreen.kt$0xFF7CB342
MagicNumber:ProductDetailScreen.kt$0xFFC62828
MagicNumber:ProductDetailScreen.kt$0xFFE74C3C
MagicNumber:ProductDetailScreen.kt$0xFFE8F8F5
MagicNumber:ProductDetailScreen.kt$0xFFEF6C00
MagicNumber:ProductDetailScreen.kt$0xFFF39C12
MagicNumber:ProductDetailScreen.kt$0xFFF57C00
MagicNumber:ProductDetailScreen.kt$0xFFFBC02D
MagicNumber:ProductDetailScreen.kt$0xFFFDEDEC
MagicNumber:ProductDetailScreen.kt$0xFFFEF5E7
MagicNumber:ProductDetailScreen.kt$3
MagicNumber:ProductDetailScreen.kt$50.0
MagicNumber:ProductDetailScreen.kt$6.0
MagicNumber:ProfileComponents.kt$0xFF9575CD
MagicNumber:ProfileComponents.kt$0xFFFFA000
MagicNumber:ProfileViewModel.kt$ProfileViewModel$5_000
MagicNumber:ResultScreen.kt$0xFF1E8E3E
MagicNumber:ResultScreen.kt$0xFF2E7D32
MagicNumber:ResultScreen.kt$0xFF558B2F
MagicNumber:ResultScreen.kt$0xFF757575
MagicNumber:ResultScreen.kt$0xFF7CB342
MagicNumber:ResultScreen.kt$0xFFC62828
MagicNumber:ResultScreen.kt$0xFFEF6C00
MagicNumber:ResultScreen.kt$0xFFF57C00
MagicNumber:ResultScreen.kt$0xFFFBC02D
MagicNumber:ResultScreen.kt$10
MagicNumber:ResultScreen.kt$250
MagicNumber:ResultScreen.kt$3
MagicNumber:ResultScreen.kt$4
MagicNumber:ResultScreen.kt$8
MagicNumber:ResultViewModel.kt$ResultViewModel$5000
MagicNumber:ScannerScreen.kt$0.3f
MagicNumber:ScannerScreen.kt$0.8f
MagicNumber:ScannerScreen.kt$0x99000000
MagicNumber:ScannerScreen.kt$0xB3000000
MagicNumber:ScannerScreen.kt$0xFF00E676
MagicNumber:ScannerScreen.kt$13
MagicNumber:ScannerScreen.kt$1800
MagicNumber:ScannerScreen.kt$60
MagicNumber:ScannerScreen.kt$8
MagicNumber:SettingsViewModel.kt$SettingsViewModel$5_000
MagicNumber:SplashScreen.kt$0.6f
MagicNumber:TrackingViewModel.kt$TrackingViewModel$11
MagicNumber:TrackingViewModel.kt$TrackingViewModel$12
MagicNumber:TrackingViewModel.kt$TrackingViewModel$23
MagicNumber:TrackingViewModel.kt$TrackingViewModel$24
MagicNumber:TrackingViewModel.kt$TrackingViewModel$30
MagicNumber:TrackingViewModel.kt$TrackingViewModel$365
MagicNumber:TrackingViewModel.kt$TrackingViewModel$5
MagicNumber:TrackingViewModel.kt$TrackingViewModel$59
MagicNumber:TrackingViewModel.kt$TrackingViewModel$5_000
MagicNumber:TrackingViewModel.kt$TrackingViewModel$60
MagicNumber:TrackingViewModel.kt$TrackingViewModel$7
SwallowedException:ScannerScreen.kt$t: Throwable
TooManyFunctions:CatalogDao.kt$CatalogDao
TooManyFunctions:ListDetailViewModel.kt$ListDetailViewModel : ViewModel
TooManyFunctions:ShoppingListDao.kt$ShoppingListDao
TooManyFunctions:ShoppingListRepositoryImpl.kt$ShoppingListRepositoryImpl : ShoppingListRepository
UnusedParameter:FamilyScreen.kt$onDelete: () -> Unit
UnusedParameter:FamilyScreen.kt$onOpenSettings: () -> Unit
UnusedParameter:FamilyScreen.kt$onSetDefault: () -> Unit
UnusedParameter:IconPickerSheet.kt$count: Int
UnusedParameter:ListDetailScreen.kt$onAddCustom: () -> Unit
UnusedParameter:ListDetailScreen.kt$onUpdateImage: (String?) -> Unit
UnusedParameter:ListsScreen.kt$onOpenScanner: () -> Unit
UnusedParameter:OcrCaptureScreen.kt$onCapture: () -> Unit
UnusedParameter:OnboardingScreen.kt$rationale: Boolean
UnusedParameter:ProductDetailScreen.kt$onOpenProduct: (String) -> Unit
UnusedParameter:TrackingScreen.kt$onOpenScanner: () -> Unit
UnusedPrivateProperty:ListDetailScreen.kt$val expandedCategories = remember { mutableStateMapOf<String, Boolean>() }
UnusedPrivateProperty:ListsScreen.kt$val scope = rememberCoroutineScope()
UnusedPrivateProperty:OcrCaptureScreen.kt$val context = LocalContext.current