UI: tracks user's first success on importing a model
This commit is contained in:
parent
c87ff9c1b3
commit
f1269f4d39
|
|
@ -96,7 +96,8 @@ fun AppContent(
|
||||||
|
|
||||||
// App core states
|
// App core states
|
||||||
val engineState by mainViewModel.engineState.collectAsState()
|
val engineState by mainViewModel.engineState.collectAsState()
|
||||||
val showUserOnboarding by mainViewModel.showUserOnboarding.collectAsState()
|
val showModelImportTooltip by mainViewModel.showModelImportTooltip.collectAsState()
|
||||||
|
val showChatTooltip by mainViewModel.showModelImportTooltip.collectAsState()
|
||||||
|
|
||||||
// Model state
|
// Model state
|
||||||
val modelScreenUiMode by modelsViewModel.modelScreenUiMode.collectAsState()
|
val modelScreenUiMode by modelsViewModel.modelScreenUiMode.collectAsState()
|
||||||
|
|
@ -324,7 +325,7 @@ fun AppContent(
|
||||||
toggleMenu = modelsViewModel::toggleFilterMenu
|
toggleMenu = modelsViewModel::toggleFilterMenu
|
||||||
),
|
),
|
||||||
importing = BottomBarConfig.Models.Managing.ImportConfig(
|
importing = BottomBarConfig.Models.Managing.ImportConfig(
|
||||||
showTooltip = showUserOnboarding,
|
showTooltip = showModelImportTooltip,
|
||||||
isMenuVisible = showImportModelMenu,
|
isMenuVisible = showImportModelMenu,
|
||||||
toggleMenu = { show -> modelsManagementViewModel.toggleImportMenu(show) },
|
toggleMenu = { show -> modelsManagementViewModel.toggleImportMenu(show) },
|
||||||
importFromLocal = {
|
importFromLocal = {
|
||||||
|
|
@ -481,6 +482,10 @@ fun AppContent(
|
||||||
navigationActions.navigateToModelLoading()
|
navigationActions.navigateToModelLoading()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onFirstModelImportSuccess =
|
||||||
|
if (showModelImportTooltip) {
|
||||||
|
{ mainViewModel.waiveModelImportTooltip() }
|
||||||
|
} else null,
|
||||||
onScaffoldEvent = handleScaffoldEvent,
|
onScaffoldEvent = handleScaffoldEvent,
|
||||||
modelsViewModel = modelsViewModel,
|
modelsViewModel = modelsViewModel,
|
||||||
managementViewModel = modelsManagementViewModel,
|
managementViewModel = modelsManagementViewModel,
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,7 @@ fun ModelsManagementAndDeletingScreen(
|
||||||
filteredModels: List<ModelInfo>?,
|
filteredModels: List<ModelInfo>?,
|
||||||
activeFiltersCount: Int,
|
activeFiltersCount: Int,
|
||||||
isDeleting: Boolean,
|
isDeleting: Boolean,
|
||||||
|
onFirstModelImportSuccess: (() -> Unit)?,
|
||||||
onScaffoldEvent: (ScaffoldEvent) -> Unit,
|
onScaffoldEvent: (ScaffoldEvent) -> Unit,
|
||||||
modelsViewModel: ModelsViewModel,
|
modelsViewModel: ModelsViewModel,
|
||||||
managementViewModel: ModelsManagementViewModel,
|
managementViewModel: ModelsManagementViewModel,
|
||||||
|
|
@ -212,7 +213,7 @@ fun ModelsManagementAndDeletingScreen(
|
||||||
message = "Imported model: ${state.model.name}"
|
message = "Imported model: ${state.model.name}"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
onFirstModelImportSuccess?.invoke()
|
||||||
managementViewModel.resetManagementState()
|
managementViewModel.resetManagementState()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import com.example.llama.viewmodel.PreselectedModelToRun.RamWarning
|
||||||
@Composable
|
@Composable
|
||||||
fun ModelsScreen(
|
fun ModelsScreen(
|
||||||
onConfirmSelection: (ModelInfo, RamWarning) -> Unit,
|
onConfirmSelection: (ModelInfo, RamWarning) -> Unit,
|
||||||
|
onFirstModelImportSuccess: (() -> Unit)?,
|
||||||
onScaffoldEvent: (ScaffoldEvent) -> Unit,
|
onScaffoldEvent: (ScaffoldEvent) -> Unit,
|
||||||
modelsViewModel: ModelsViewModel,
|
modelsViewModel: ModelsViewModel,
|
||||||
managementViewModel: ModelsManagementViewModel,
|
managementViewModel: ModelsManagementViewModel,
|
||||||
|
|
@ -98,6 +99,7 @@ fun ModelsScreen(
|
||||||
isDeleting = currentMode == ModelScreenUiMode.DELETING,
|
isDeleting = currentMode == ModelScreenUiMode.DELETING,
|
||||||
onScaffoldEvent = onScaffoldEvent,
|
onScaffoldEvent = onScaffoldEvent,
|
||||||
activeFiltersCount = activeFiltersCount,
|
activeFiltersCount = activeFiltersCount,
|
||||||
|
onFirstModelImportSuccess = onFirstModelImportSuccess,
|
||||||
modelsViewModel = modelsViewModel,
|
modelsViewModel = modelsViewModel,
|
||||||
managementViewModel = managementViewModel,
|
managementViewModel = managementViewModel,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,6 @@ class MainViewModel @Inject constructor (
|
||||||
}
|
}
|
||||||
|
|
||||||
fun waiveModelImportTooltip() {
|
fun waiveModelImportTooltip() {
|
||||||
android.util.Log.w("JOJO", "WAIVE IMPORT TOOLTIP!")
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
appPreferences.setUserHasImportedFirstModel(true)
|
appPreferences.setUserHasImportedFirstModel(true)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue