feat: add BLMTableViewModel with factory and extended Material icons dependency
This commit is contained in:
@@ -63,6 +63,7 @@ dependencies {
|
||||
implementation(libs.androidx.compose.ui.tooling.preview)
|
||||
implementation(libs.androidx.compose.material3)
|
||||
implementation(libs.androidx.compose.material.icons.core)
|
||||
implementation(libs.androidx.compose.material.icons.extended)
|
||||
// Tooling
|
||||
debugImplementation(libs.androidx.compose.ui.tooling)
|
||||
// Instrumented tests
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.example.esp32aldldashboard.ui.blm
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.example.esp32aldldashboard.repository.BLMCellData
|
||||
import com.example.esp32aldldashboard.repository.BLMTableRepository
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
||||
class BLMTableViewModel(private val repository: BLMTableRepository) : ViewModel() {
|
||||
|
||||
val tableData: StateFlow<Array<Array<BLMCellData>>> = repository.tableData
|
||||
val rpmBands: List<Int> = repository.rpmBands
|
||||
val mapBands: List<Int> = repository.mapBands
|
||||
|
||||
fun clearTable() {
|
||||
repository.clearTable()
|
||||
}
|
||||
|
||||
fun getBLMColor(blm: Int): Long {
|
||||
return repository.getBLMColor(blm)
|
||||
}
|
||||
}
|
||||
|
||||
class BLMTableViewModelFactory(private val repository: BLMTableRepository) : ViewModelProvider.Factory {
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
if (modelClass.isAssignableFrom(BLMTableViewModel::class.java)) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
return BLMTableViewModel(repository) as T
|
||||
}
|
||||
throw IllegalArgumentException("Unknown ViewModel class")
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,7 @@ androidx-activity-compose = { module = "androidx.activity:activity-compose", ver
|
||||
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
|
||||
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3"}
|
||||
androidx-compose-material-icons-core = { group = "androidx.compose.material", name = "material-icons-core" }
|
||||
androidx-compose-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended" }
|
||||
androidx-compose-ui = { group = "androidx.compose.ui", name = "ui"}
|
||||
androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview"}
|
||||
androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4"}
|
||||
|
||||
Reference in New Issue
Block a user