GigaProjects

← Back to GigaWeather

LocationsViewModel.kt

package com.gigaprojects.gigaweather.ui

import android.app.Application
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import com.gigaprojects.gigaweather.data.LocationDao
import com.gigaprojects.gigaweather.data.LocationDatabase
import com.gigaprojects.gigaweather.data.LocationEntity

class LocationsViewModel(application: Application) : AndroidViewModel(application) {

    private val locationDao: LocationDao = LocationDatabase.getDatabase(application).locationDao()
    val locations: LiveData<List<LocationEntity>> = locationDao.getAllLocations()

    fun addLocation(name: String, latitude: Double, longitude: Double) {
        LocationDatabase.databaseWriteExecutor.execute {
            val newLocation = LocationEntity(name = name, latitude = latitude, longitude = longitude)
            locationDao.insertLocation(newLocation)
        }
    }

    fun deleteLocation(location: LocationEntity) {
        LocationDatabase.databaseWriteExecutor.execute {
            locationDao.deleteLocation(location)
        }
    }
}