Added the name of the location.
This commit is contained in:
parent
f39414ddff
commit
5e518ddc0e
@ -74,13 +74,18 @@ dependencies {
|
|||||||
implementation 'com.github.bumptech.glide:glide:4.1.1'
|
implementation 'com.github.bumptech.glide:glide:4.1.1'
|
||||||
implementation 'com.github.bumptech.glide:okhttp3-integration:4.1.1'
|
implementation 'com.github.bumptech.glide:okhttp3-integration:4.1.1'
|
||||||
|
|
||||||
|
|
||||||
|
// Room + lifecycle
|
||||||
implementation "androidx.lifecycle:lifecycle-livedata:2.2.0-alpha02"
|
implementation "androidx.lifecycle:lifecycle-livedata:2.2.0-alpha02"
|
||||||
implementation "androidx.lifecycle:lifecycle-common-java8:2.2.0-alpha02"
|
implementation "androidx.lifecycle:lifecycle-common-java8:2.2.0-alpha02"
|
||||||
|
|
||||||
implementation "androidx.room:room-runtime:2.2.0-alpha01"
|
implementation "androidx.room:room-runtime:2.2.0-alpha01"
|
||||||
kapt "androidx.room:room-compiler:2.2.0-alpha01"
|
kapt "androidx.room:room-compiler:2.2.0-alpha01"
|
||||||
|
|
||||||
implementation "android.arch.work:work-runtime-ktx:1.0.1"
|
implementation "android.arch.work:work-runtime-ktx:1.0.1"
|
||||||
|
|
||||||
|
|
||||||
|
// Dialog for adding a new location
|
||||||
|
implementation 'com.afollestad.material-dialogs:core:3.1.0'
|
||||||
|
implementation 'com.afollestad.material-dialogs:input:3.1.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"formatVersion": 1,
|
||||||
|
"database": {
|
||||||
|
"version": 2,
|
||||||
|
"identityHash": "503cac2cbbdac52d55e38fb7f11e6365",
|
||||||
|
"entities": [
|
||||||
|
{
|
||||||
|
"tableName": "locations",
|
||||||
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `lat` REAL NOT NULL, `lng` REAL NOT NULL, `name` TEXT NOT NULL)",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldPath": "id",
|
||||||
|
"columnName": "id",
|
||||||
|
"affinity": "INTEGER",
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "lat",
|
||||||
|
"columnName": "lat",
|
||||||
|
"affinity": "REAL",
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "lng",
|
||||||
|
"columnName": "lng",
|
||||||
|
"affinity": "REAL",
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldPath": "name",
|
||||||
|
"columnName": "name",
|
||||||
|
"affinity": "TEXT",
|
||||||
|
"notNull": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"primaryKey": {
|
||||||
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
|
"autoGenerate": true
|
||||||
|
},
|
||||||
|
"indices": [],
|
||||||
|
"foreignKeys": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"views": [],
|
||||||
|
"setupQueries": [
|
||||||
|
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||||
|
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '503cac2cbbdac52d55e38fb7f11e6365')"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -13,8 +13,11 @@ import androidx.core.content.ContextCompat
|
|||||||
import androidx.room.Room
|
import androidx.room.Room
|
||||||
import bou.amine.apps.mteo.api.DarkSkyApi
|
import bou.amine.apps.mteo.api.DarkSkyApi
|
||||||
import bou.amine.apps.mteo.api.ForecastResponse
|
import bou.amine.apps.mteo.api.ForecastResponse
|
||||||
|
import bou.amine.apps.mteo.persistence.MIGRATION_1_2
|
||||||
import bou.amine.apps.mteo.persistence.database.AppDatabase
|
import bou.amine.apps.mteo.persistence.database.AppDatabase
|
||||||
import bou.amine.apps.mteo.persistence.entities.LocationView
|
import bou.amine.apps.mteo.persistence.entities.LocationView
|
||||||
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
|
import com.afollestad.materialdialogs.input.input
|
||||||
import retrofit2.Call
|
import retrofit2.Call
|
||||||
import retrofit2.Callback
|
import retrofit2.Callback
|
||||||
import retrofit2.Response
|
import retrofit2.Response
|
||||||
@ -38,7 +41,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
db = Room.databaseBuilder(
|
db = Room.databaseBuilder(
|
||||||
applicationContext,
|
applicationContext,
|
||||||
AppDatabase::class.java, "mteo-database"
|
AppDatabase::class.java, "mteo-database"
|
||||||
).build()
|
).addMigrations(MIGRATION_1_2).build()
|
||||||
|
|
||||||
thread {
|
thread {
|
||||||
val locations = db.locationDao().locations()
|
val locations = db.locationDao().locations()
|
||||||
@ -109,13 +112,17 @@ class MainActivity : AppCompatActivity() {
|
|||||||
override fun onLocationChanged(location: Location) {
|
override fun onLocationChanged(location: Location) {
|
||||||
Toast.makeText(this@MainActivity, "location", Toast.LENGTH_SHORT).show()
|
Toast.makeText(this@MainActivity, "location", Toast.LENGTH_SHORT).show()
|
||||||
mLocationManager.removeUpdates(this)
|
mLocationManager.removeUpdates(this)
|
||||||
currentLocation = LocationView(location.latitude, location.longitude)
|
MaterialDialog(this@MainActivity).show {
|
||||||
|
input { _, text ->
|
||||||
|
currentLocation = LocationView(location.latitude, location.longitude, text.toString())
|
||||||
fetchForecastData()
|
fetchForecastData()
|
||||||
thread {
|
thread {
|
||||||
db.locationDao().insertLocation(currentLocation)
|
db.locationDao().insertLocation(currentLocation)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 10F, mLocationListener)
|
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 10F, mLocationListener)
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import androidx.room.RoomDatabase
|
|||||||
import bou.amine.apps.mteo.persistence.dao.LocationsDao
|
import bou.amine.apps.mteo.persistence.dao.LocationsDao
|
||||||
import bou.amine.apps.mteo.persistence.entities.LocationView
|
import bou.amine.apps.mteo.persistence.entities.LocationView
|
||||||
|
|
||||||
@Database(entities = [LocationView::class], version = 1)
|
@Database(entities = [LocationView::class], version = 2)
|
||||||
abstract class AppDatabase : RoomDatabase() {
|
abstract class AppDatabase : RoomDatabase() {
|
||||||
abstract fun locationDao(): LocationsDao
|
abstract fun locationDao(): LocationsDao
|
||||||
}
|
}
|
@ -9,7 +9,9 @@ data class LocationView(
|
|||||||
@ColumnInfo(name = "lat")
|
@ColumnInfo(name = "lat")
|
||||||
val lat: Double,
|
val lat: Double,
|
||||||
@ColumnInfo(name = "lng")
|
@ColumnInfo(name = "lng")
|
||||||
val lng: Double
|
val lng: Double,
|
||||||
|
@ColumnInfo(name = "name")
|
||||||
|
val name: String
|
||||||
) {
|
) {
|
||||||
@PrimaryKey(autoGenerate = true)
|
@PrimaryKey(autoGenerate = true)
|
||||||
var id: Int = 0
|
var id: Int = 0
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
package bou.amine.apps.mteo.persistence
|
||||||
|
|
||||||
|
import androidx.room.migration.Migration
|
||||||
|
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||||
|
|
||||||
|
val MIGRATION_1_2: Migration = object : Migration(1, 2) {
|
||||||
|
override fun migrate(database: SupportSQLiteDatabase) {
|
||||||
|
database.execSQL("ALTER TABLE 'locations' ADD COLUMN 'name' TEXT NOT NULL")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user