|
|
@ -1,6 +1,10 @@
|
|
|
|
package uca.baptistearthur.geocaching.ui.overlay
|
|
|
|
package uca.baptistearthur.geocaching.ui.overlay
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import android.app.AlertDialog
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.Context
|
|
|
|
|
|
|
|
import android.text.InputFilter
|
|
|
|
|
|
|
|
import android.util.Log
|
|
|
|
|
|
|
|
import android.widget.EditText
|
|
|
|
import android.widget.Toast
|
|
|
|
import android.widget.Toast
|
|
|
|
import androidx.lifecycle.ViewModelProvider
|
|
|
|
import androidx.lifecycle.ViewModelProvider
|
|
|
|
import androidx.lifecycle.ViewModelStoreOwner
|
|
|
|
import androidx.lifecycle.ViewModelStoreOwner
|
|
|
@ -15,6 +19,7 @@ import uca.baptistearthur.geocaching.model.Place
|
|
|
|
import uca.baptistearthur.geocaching.model.RoadTripEntity
|
|
|
|
import uca.baptistearthur.geocaching.model.RoadTripEntity
|
|
|
|
import uca.baptistearthur.geocaching.viewModels.RoadTripViewModel
|
|
|
|
import uca.baptistearthur.geocaching.viewModels.RoadTripViewModel
|
|
|
|
import uca.baptistearthur.geocaching.viewModels.RoadTripViewModelFactory
|
|
|
|
import uca.baptistearthur.geocaching.viewModels.RoadTripViewModelFactory
|
|
|
|
|
|
|
|
import java.util.*
|
|
|
|
|
|
|
|
|
|
|
|
class EditRoadtripOverlay(points: MutableCollection<PlaceMarker>, val roadTripEntity: RoadTripEntity) : ConfirmationOverlay(points) {
|
|
|
|
class EditRoadtripOverlay(points: MutableCollection<PlaceMarker>, val roadTripEntity: RoadTripEntity) : ConfirmationOverlay(points) {
|
|
|
|
|
|
|
|
|
|
|
@ -25,13 +30,14 @@ class EditRoadtripOverlay(points: MutableCollection<PlaceMarker>, val roadTripEn
|
|
|
|
RoadTripViewModel::class.java)
|
|
|
|
RoadTripViewModel::class.java)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun confirm(mapView: MapView) {
|
|
|
|
private fun onValidation(mapView: MapView, input: String) {
|
|
|
|
val places: MutableList<Place> = points.map { Place(it.position.latitude, it.position.longitude) }.toMutableList()
|
|
|
|
val places: MutableList<Place> =
|
|
|
|
|
|
|
|
points.map { Place(it.position.latitude, it.position.longitude) }.toMutableList()
|
|
|
|
CoroutineScope(Dispatchers.Main).launch {
|
|
|
|
CoroutineScope(Dispatchers.Main).launch {
|
|
|
|
places.filter{it.address.displayName==="unknown"}.forEach{ it.initAddress() }
|
|
|
|
places.filter { it.address.displayName === "unknown" }.forEach { it.initAddress() }
|
|
|
|
val newRoadTrip = RoadTripEntity(
|
|
|
|
val newRoadTrip = RoadTripEntity(
|
|
|
|
id = roadTripEntity.id,
|
|
|
|
id = roadTripEntity.id,
|
|
|
|
name = roadTripEntity.name,
|
|
|
|
name = input,
|
|
|
|
date = roadTripEntity.date,
|
|
|
|
date = roadTripEntity.date,
|
|
|
|
places = places
|
|
|
|
places = places
|
|
|
|
)
|
|
|
|
)
|
|
|
@ -42,7 +48,33 @@ class EditRoadtripOverlay(points: MutableCollection<PlaceMarker>, val roadTripEn
|
|
|
|
R.string.changesSaved,
|
|
|
|
R.string.changesSaved,
|
|
|
|
Toast.LENGTH_SHORT
|
|
|
|
Toast.LENGTH_SHORT
|
|
|
|
).show()
|
|
|
|
).show()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun confirm(mapView: MapView) {
|
|
|
|
|
|
|
|
val input = EditText(mapView.context)
|
|
|
|
|
|
|
|
input.setText(roadTripEntity.name)
|
|
|
|
|
|
|
|
input.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(50))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val dialog = AlertDialog.Builder(mapView.context)
|
|
|
|
|
|
|
|
.setTitle(R.string.newRoadtripDialog)
|
|
|
|
|
|
|
|
.setView(input)
|
|
|
|
|
|
|
|
.setPositiveButton(R.string.confirm) { _, _ ->
|
|
|
|
|
|
|
|
val userInput = input.text.toString()
|
|
|
|
|
|
|
|
if (userInput.isNotBlank()) {
|
|
|
|
|
|
|
|
onValidation(mapView, input.text.toString())
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
Toast.makeText(
|
|
|
|
|
|
|
|
mapView.context,
|
|
|
|
|
|
|
|
R.string.emptyTextError,
|
|
|
|
|
|
|
|
Toast.LENGTH_SHORT
|
|
|
|
|
|
|
|
).show()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.setNegativeButton(R.string.cancel) { dialog, _ ->
|
|
|
|
|
|
|
|
dialog.cancel()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.create()
|
|
|
|
|
|
|
|
dialog.show()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|