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