From f1269f4d393966cbe3d043fd6de033c3f58f623e Mon Sep 17 00:00:00 2001 From: Han Yin Date: Sat, 30 Aug 2025 23:01:03 -0700 Subject: [PATCH] UI: tracks user's first success on importing a model --- .../app/src/main/java/com/example/llama/MainActivity.kt | 9 +++++++-- .../ui/screens/ModelsManagementAndDeletingScreen.kt | 3 ++- .../java/com/example/llama/ui/screens/ModelsScreen.kt | 2 ++ .../java/com/example/llama/viewmodel/MainViewModel.kt | 1 - 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/examples/llama.android/app/src/main/java/com/example/llama/MainActivity.kt b/examples/llama.android/app/src/main/java/com/example/llama/MainActivity.kt index dad1849e24..da77c5d23e 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/MainActivity.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/MainActivity.kt @@ -96,7 +96,8 @@ fun AppContent( // App core states 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 val modelScreenUiMode by modelsViewModel.modelScreenUiMode.collectAsState() @@ -324,7 +325,7 @@ fun AppContent( toggleMenu = modelsViewModel::toggleFilterMenu ), importing = BottomBarConfig.Models.Managing.ImportConfig( - showTooltip = showUserOnboarding, + showTooltip = showModelImportTooltip, isMenuVisible = showImportModelMenu, toggleMenu = { show -> modelsManagementViewModel.toggleImportMenu(show) }, importFromLocal = { @@ -481,6 +482,10 @@ fun AppContent( navigationActions.navigateToModelLoading() } }, + onFirstModelImportSuccess = + if (showModelImportTooltip) { + { mainViewModel.waiveModelImportTooltip() } + } else null, onScaffoldEvent = handleScaffoldEvent, modelsViewModel = modelsViewModel, managementViewModel = modelsManagementViewModel, diff --git a/examples/llama.android/app/src/main/java/com/example/llama/ui/screens/ModelsManagementAndDeletingScreen.kt b/examples/llama.android/app/src/main/java/com/example/llama/ui/screens/ModelsManagementAndDeletingScreen.kt index 5f2a411206..714a19c814 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/ui/screens/ModelsManagementAndDeletingScreen.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/ui/screens/ModelsManagementAndDeletingScreen.kt @@ -82,6 +82,7 @@ fun ModelsManagementAndDeletingScreen( filteredModels: List?, activeFiltersCount: Int, isDeleting: Boolean, + onFirstModelImportSuccess: (() -> Unit)?, onScaffoldEvent: (ScaffoldEvent) -> Unit, modelsViewModel: ModelsViewModel, managementViewModel: ModelsManagementViewModel, @@ -212,7 +213,7 @@ fun ModelsManagementAndDeletingScreen( message = "Imported model: ${state.model.name}" ) ) - + onFirstModelImportSuccess?.invoke() managementViewModel.resetManagementState() } } diff --git a/examples/llama.android/app/src/main/java/com/example/llama/ui/screens/ModelsScreen.kt b/examples/llama.android/app/src/main/java/com/example/llama/ui/screens/ModelsScreen.kt index 1c4484384b..b2a89cb733 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/ui/screens/ModelsScreen.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/ui/screens/ModelsScreen.kt @@ -34,6 +34,7 @@ import com.example.llama.viewmodel.PreselectedModelToRun.RamWarning @Composable fun ModelsScreen( onConfirmSelection: (ModelInfo, RamWarning) -> Unit, + onFirstModelImportSuccess: (() -> Unit)?, onScaffoldEvent: (ScaffoldEvent) -> Unit, modelsViewModel: ModelsViewModel, managementViewModel: ModelsManagementViewModel, @@ -98,6 +99,7 @@ fun ModelsScreen( isDeleting = currentMode == ModelScreenUiMode.DELETING, onScaffoldEvent = onScaffoldEvent, activeFiltersCount = activeFiltersCount, + onFirstModelImportSuccess = onFirstModelImportSuccess, modelsViewModel = modelsViewModel, managementViewModel = managementViewModel, ) diff --git a/examples/llama.android/app/src/main/java/com/example/llama/viewmodel/MainViewModel.kt b/examples/llama.android/app/src/main/java/com/example/llama/viewmodel/MainViewModel.kt index 052a8a9cb4..dd09f0e49a 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/viewmodel/MainViewModel.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/viewmodel/MainViewModel.kt @@ -51,7 +51,6 @@ class MainViewModel @Inject constructor ( } fun waiveModelImportTooltip() { - android.util.Log.w("JOJO", "WAIVE IMPORT TOOLTIP!") viewModelScope.launch { appPreferences.setUserHasImportedFirstModel(true) }