diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b82f87c..591773d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -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 diff --git a/app/src/main/java/com/example/esp32aldldashboard/ui/blm/BLMTableViewModel.kt b/app/src/main/java/com/example/esp32aldldashboard/ui/blm/BLMTableViewModel.kt new file mode 100644 index 0000000..af6ae4a --- /dev/null +++ b/app/src/main/java/com/example/esp32aldldashboard/ui/blm/BLMTableViewModel.kt @@ -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>> = repository.tableData + val rpmBands: List = repository.rpmBands + val mapBands: List = 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 create(modelClass: Class): T { + if (modelClass.isAssignableFrom(BLMTableViewModel::class.java)) { + @Suppress("UNCHECKED_CAST") + return BLMTableViewModel(repository) as T + } + throw IllegalArgumentException("Unknown ViewModel class") + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 99f7125..904dcbd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -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"}