Модель просмотра:
Код: Выделить всё
@HiltViewModel
class appViewModel @Inject constructor(
private val appDao: appDao
) : ViewModel() {
private val _Count = MutableStateFlow(0)
val Count: StateFlow = _Count.asStateFlow()
init {
viewModelScope.launch {
appDao.getCount()
.collect { count ->
_Count.value = count
}
}
}
}
Код: Выделить всё
@Composable
fun WkTopBar(navController: NavController?) {
val appViewModel: appViewModel = hiltViewModel()
val Count by appViewModel.Count.collectAsState()
Text(text = "count: $Count", color = Color.Black)
}
Код: Выделить всё
@Entity(tableName = "app")
data class app(
@PrimaryKey(autoGenerate = true) val id: Int = 0,
)
@Dao
interface appDao {
@Query("SELECT COUNT(*) FROM table WHERE something = 0")
fun getCount(): Flow
}
Код: Выделить всё
@Database(entities = [app::class], version = 1, exportSchema = false)
abstract class AppDatabase : RoomDatabase() {
abstract fun appDao(): appDao
companion object {
@Volatile
private var INSTANCE: AppDatabase? = null
fun getDatabase(context: Context): AppDatabase {
return INSTANCE ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
AppDatabase::class.java,
"app_database"
).build()
INSTANCE = instance
instance
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... m-database
Мобильная версия