Adding Roadtrip addition dialog

master
Arthur VALIN 2 years ago
parent 63100d9f98
commit 8e1e373572

@ -17,30 +17,13 @@ import uca.baptistearthur.geocaching.model.RoadTripEntity
import uca.baptistearthur.geocaching.recyclerview.RoadTripAdapter
import java.util.*
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private const val ARG_PARAM1 = "param1"
private const val ARG_PARAM2 = "param2"
/**
* A simple [Fragment] subclass.
* Use the [RoadTripEntity.newInstance] factory method to
* create an instance of this fragment.
*/
class RoadTripFragment : Fragment() {
// TODO: Rename and change types of parameters
private var param1: String? = null
private var param2: String? = null
private var model = Stub().load()
private var roadTripRecyclerView : RecyclerView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
}
@SuppressLint("MissingInflatedId")
@ -53,24 +36,4 @@ class RoadTripFragment : Fragment() {
return view
}
companion object {
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment List.
*/
// TODO: Rename and change types and number of parameters
@JvmStatic
fun newInstance(param1: String, param2: String) =
RoadTripFragment().apply {
arguments = Bundle().apply {
putString(ARG_PARAM1, param1)
putString(ARG_PARAM2, param2)
}
}
}
}

@ -1,17 +1,24 @@
package uca.baptistearthur.geocaching.ui.overlay
import android.app.AlertDialog
import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.graphics.RectF
import android.text.InputFilter
import android.util.Log
import android.view.MotionEvent
import android.widget.EditText
import android.widget.Toast
import androidx.core.content.ContextCompat
import org.osmdroid.util.GeoPoint
import org.osmdroid.views.MapView
import org.osmdroid.views.overlay.Overlay
import uca.baptistearthur.geocaching.R
import uca.baptistearthur.geocaching.model.Place
import uca.baptistearthur.geocaching.model.RoadTripEntity
import java.util.*
class NewRoadtripOverlay(val points: Collection<PlaceMarker>) : Overlay() {
@ -49,10 +56,46 @@ class NewRoadtripOverlay(val points: Collection<PlaceMarker>) : Overlay() {
override fun onSingleTapConfirmed(e: MotionEvent?, mapView: MapView?) =
if (e != null && circleRectF.contains(e.x, e.y)) {
// TODO: Sauvegarder le trajet (dans la variable points).
mapView?.let{
createDialog(it.context)
}
Log.d("GeoRoad", "CONFIRM : "+points.size)
true
}else{
false
}
private fun createDialog(context: Context){
val input = EditText(context)
input.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(50))
val dialog = AlertDialog.Builder(context)
.setTitle(R.string.newRoadtripDialog)
.setView(input)
.setPositiveButton(R.string.confirm) { _, _ ->
val userInput = input.text.toString()
if (userInput.isNotBlank()) {
val places: MutableList<Place> = points.map { Place(it.position.latitude, it.position.longitude) }.toMutableList()
val newRoadTrip = RoadTripEntity(
id = 0, // auto-generated ID
name = input.text.toString(),
date = Date(),
places = places
)
// TODO: Persister le RoadTrip
} else {
Toast.makeText(
context,
R.string.emptyTextError,
Toast.LENGTH_SHORT
).show()
}
}
.setNegativeButton(R.string.cancel) { dialog, _ ->
dialog.cancel()
}
.create()
dialog.show()
}
}

@ -3,11 +3,11 @@
<item
android:id="@+id/map"
android:enabled="true"
android:title="@string/carte"
android:title="@string/map"
android:icon="@drawable/map"/>
<item
android:id="@+id/roadTrip"
android:enabled="true"
android:title="@string/voyages"
android:title="@string/travels"
android:icon="@drawable/road_trip" />
</menu>

@ -0,0 +1,13 @@
<resources>
<string name="app_name">RoadTrip</string>
<string name="map">Carte</string>
<string name="travels">Voyages</string>
<string name="roadtrip_title">Mes RoadTrips:</string>
<string name="add_roadtrip_button">+</string>
<string name="placesList">Vos lieux à visiter:</string>
<string name="btnDeleteRoadTrip">Supprimer le voyage</string>
<string name="confirm">Valider</string>
<string name="cancel">Annuler</string>
<string name="emptyTextError">Le texte ne peux pas être vide</string>
<string name="newRoadtripDialog">Entrez le nom de votre voyage</string>
</resources>

@ -1,13 +1,13 @@
<resources>
<string name="app_name">RoadTrip</string>
<string name="carte">Carte</string>
<string name="voyages">Voyages</string>
<string name="roadtrip_title">Mes RoadTrips:</string>
<string name="map">Map</string>
<string name="travels">Travels</string>
<string name="roadtrip_title">My RoadTrips:</string>
<string name="add_roadtrip_button">+</string>
<string name="textaddNewRoadTrip">Entrez le nom du nouveau voyage</string>
<string name="placesList">Vos lieux à visiter:</string>
<string name="btnDeleteRoadTrip">Supprimer le voyage</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<string name="placesList">Your places to visit:</string>
<string name="btnDeleteRoadTrip">Delete travel</string>
<string name="confirm">Confirm</string>
<string name="cancel">Cancel</string>
<string name="emptyTextError">The text cannot be empty</string>
<string name="newRoadtripDialog">Enter the name of your travel</string>
</resources>

@ -2,7 +2,7 @@
<!-- Base application theme. -->
<style name="Theme.Geocaching" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/main_turquoise_50</item>
<item name="colorPrimary">@color/main_turquoise_200</item>
<item name="colorPrimaryVariant">@color/main_turquoise_500</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->

Loading…
Cancel
Save