From a1f6e7e476cf02f27013a4c94fcf3df1696fcacd Mon Sep 17 00:00:00 2001 From: Han Yin Date: Sun, 13 Apr 2025 18:08:24 -0700 Subject: [PATCH] DI: make viewmodels Hilt injectable --- .../com/example/llama/revamp/viewmodel/MainViewModel.kt | 7 +++++-- .../example/llama/revamp/viewmodel/PerformanceViewModel.kt | 5 ++++- .../llama/revamp/viewmodel/SystemPromptViewModel.kt | 5 ++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/MainViewModel.kt b/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/MainViewModel.kt index 178f0126f6..cf18615461 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/MainViewModel.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/MainViewModel.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.example.llama.revamp.data.model.ModelInfo import com.example.llama.revamp.engine.InferenceEngine +import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Job import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -15,12 +16,14 @@ import kotlinx.coroutines.launch import java.text.SimpleDateFormat import java.util.Date import java.util.Locale +import javax.inject.Inject /** * Main ViewModel that handles the LLM engine state and operations. */ -class MainViewModel( - private val inferenceEngine: InferenceEngine = InferenceEngine() +@HiltViewModel +class MainViewModel @Inject constructor ( + private val inferenceEngine: InferenceEngine ) : ViewModel() { // Expose the engine state diff --git a/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/PerformanceViewModel.kt b/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/PerformanceViewModel.kt index 0b0451b2c5..b0eb05f847 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/PerformanceViewModel.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/PerformanceViewModel.kt @@ -9,16 +9,19 @@ import com.example.llama.revamp.monitoring.MemoryMetrics import com.example.llama.revamp.monitoring.PerformanceMonitor import com.example.llama.revamp.monitoring.TemperatureMetrics import com.example.llama.revamp.monitoring.TemperatureWarningLevel +import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch +import javax.inject.Inject /** * ViewModel that manages performance monitoring for the app. */ -class PerformanceViewModel( +@HiltViewModel +class PerformanceViewModel @Inject constructor( private val performanceMonitor: PerformanceMonitor, private val userPreferences: UserPreferences ) : ViewModel() { diff --git a/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/SystemPromptViewModel.kt b/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/SystemPromptViewModel.kt index d3ee2df380..07957a92a1 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/SystemPromptViewModel.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/SystemPromptViewModel.kt @@ -5,15 +5,18 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import com.example.llama.revamp.data.model.SystemPrompt import com.example.llama.revamp.data.repository.SystemPromptRepository +import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch +import javax.inject.Inject /** * ViewModel for handling system prompts. */ -class SystemPromptViewModel( +@HiltViewModel +class SystemPromptViewModel @Inject constructor( private val repository: SystemPromptRepository ) : ViewModel() {