DI: make viewmodels Hilt injectable

This commit is contained in:
Han Yin 2025-04-13 18:08:24 -07:00
parent 564b095427
commit a1f6e7e476
3 changed files with 13 additions and 4 deletions

View File

@ -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

View File

@ -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() {

View File

@ -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() {