less hardcoding
This commit is contained in:
		
							parent
							
								
									e73cc798f0
								
							
						
					
					
						commit
						05860345b6
					
				
					 2 changed files with 16 additions and 12 deletions
				
			
		|  | @ -12,12 +12,14 @@ import androidx.compose.material.icons.outlined.DateRange | ||||||
| import androidx.compose.runtime.Composable | import androidx.compose.runtime.Composable | ||||||
| import androidx.compose.ui.tooling.preview.Preview | import androidx.compose.ui.tooling.preview.Preview | ||||||
| import androidx.compose.ui.unit.dp | import androidx.compose.ui.unit.dp | ||||||
|  | import be.ugent.sel.studeez.navigation.StudeezDestinations.HOME_SCREEN | ||||||
|  | import be.ugent.sel.studeez.navigation.StudeezDestinations.PROFILE_SCREEN | ||||||
| import be.ugent.sel.studeez.resources | import be.ugent.sel.studeez.resources | ||||||
| import be.ugent.sel.studeez.ui.theme.StudeezTheme | import be.ugent.sel.studeez.ui.theme.StudeezTheme | ||||||
| import be.ugent.sel.studeez.R.string as AppText | import be.ugent.sel.studeez.R.string as AppText | ||||||
| 
 | 
 | ||||||
| data class NavigationBarActions( | data class NavigationBarActions( | ||||||
|     val selectedTab: (Int) -> Boolean, |     val selectedTab: (String) -> Boolean, | ||||||
|     val onHomeClick: () -> Unit, |     val onHomeClick: () -> Unit, | ||||||
|     val onTasksClick: () -> Unit, |     val onTasksClick: () -> Unit, | ||||||
|     val onSessionsClick: () -> Unit, |     val onSessionsClick: () -> Unit, | ||||||
|  | @ -56,7 +58,7 @@ fun NavigationBar( | ||||||
|         BottomNavigationItem( |         BottomNavigationItem( | ||||||
|             icon = { Icon(imageVector = Icons.Default.List, resources().getString(AppText.home)) }, |             icon = { Icon(imageVector = Icons.Default.List, resources().getString(AppText.home)) }, | ||||||
|             label = { Text(text = resources().getString(AppText.home)) }, |             label = { Text(text = resources().getString(AppText.home)) }, | ||||||
|             selected = navigationBarActions.selectedTab(0), |             selected = navigationBarActions.selectedTab(HOME_SCREEN), | ||||||
|             onClick = navigationBarActions.onHomeClick |             onClick = navigationBarActions.onHomeClick | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|  | @ -67,7 +69,8 @@ fun NavigationBar( | ||||||
|                 ) |                 ) | ||||||
|             }, |             }, | ||||||
|             label = { Text(text = resources().getString(AppText.tasks)) }, |             label = { Text(text = resources().getString(AppText.tasks)) }, | ||||||
|             selected = navigationBarActions.selectedTab(1), |             // TODO selected = navigationBarActions.selectedTab(TASKS_SCREEN), | ||||||
|  |             selected = false, | ||||||
|             onClick = navigationBarActions.onTasksClick |             onClick = navigationBarActions.onTasksClick | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|  | @ -81,7 +84,8 @@ fun NavigationBar( | ||||||
|                 ) |                 ) | ||||||
|             }, |             }, | ||||||
|             label = { Text(text = resources().getString(AppText.sessions)) }, |             label = { Text(text = resources().getString(AppText.sessions)) }, | ||||||
|             selected = navigationBarActions.selectedTab(2), |             // TODO selected = navigationBarActions.selectedTab(SESSIONS_SCREEN), | ||||||
|  |             selected = false, | ||||||
|             onClick = navigationBarActions.onSessionsClick |             onClick = navigationBarActions.onSessionsClick | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|  | @ -92,7 +96,7 @@ fun NavigationBar( | ||||||
|                 ) |                 ) | ||||||
|             }, |             }, | ||||||
|             label = { Text(text = resources().getString(AppText.profile)) }, |             label = { Text(text = resources().getString(AppText.profile)) }, | ||||||
|             selected = navigationBarActions.selectedTab(3), |             selected = navigationBarActions.selectedTab(PROFILE_SCREEN), | ||||||
|             onClick = navigationBarActions.onProfileClick |             onClick = navigationBarActions.onProfileClick | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -16,32 +16,32 @@ class NavigationBarViewModel @Inject constructor( | ||||||
|     logService: LogService |     logService: LogService | ||||||
| ) : StudeezViewModel(logService) { | ) : StudeezViewModel(logService) { | ||||||
| 
 | 
 | ||||||
|     fun isSelected(index: Int): Boolean { |     fun isSelected(screen: String): Boolean { | ||||||
|         return index == selectedTab.selectedTab |         return screen == selectedTab.selectedTab | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     fun onHomeClick(open: (String) -> Unit) { |     fun onHomeClick(open: (String) -> Unit) { | ||||||
|         selectedTab.selectedTab = 0 |         selectedTab.selectedTab = HOME_SCREEN | ||||||
|         open(HOME_SCREEN) |         open(HOME_SCREEN) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     fun onTasksClick(open: (String) -> Unit) { |     fun onTasksClick(open: (String) -> Unit) { | ||||||
|         // TODO |         // TODO | ||||||
|         selectedTab.selectedTab = 1 |         // selectedTab.selectedTab = TASKS_SCREEN | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     fun onSessionsClick(open: (String) -> Unit) { |     fun onSessionsClick(open: (String) -> Unit) { | ||||||
|         // TODO |         // TODO | ||||||
|         selectedTab.selectedTab = 2 |         // selectedTab.selectedTab = SESSIONS_SCREEN | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     fun onProfileClick(open: (String) -> Unit) { |     fun onProfileClick(open: (String) -> Unit) { | ||||||
|         selectedTab.selectedTab = 3 |         selectedTab.selectedTab = PROFILE_SCREEN | ||||||
|         open(PROFILE_SCREEN) |         open(PROFILE_SCREEN) | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @Singleton | @Singleton | ||||||
| class SelectedTabState @Inject constructor() { | class SelectedTabState @Inject constructor() { | ||||||
|     var selectedTab: Int = 0 |     var selectedTab: String = HOME_SCREEN | ||||||
| } | } | ||||||
		Reference in a new issue