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 uca.baptistearthur.geocaching.recyclerview.RoadTripAdapter
import java.util.* 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() { 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 model = Stub().load()
private var roadTripRecyclerView : RecyclerView? = null private var roadTripRecyclerView : RecyclerView? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
} }
@SuppressLint("MissingInflatedId") @SuppressLint("MissingInflatedId")
@ -53,24 +36,4 @@ class RoadTripFragment : Fragment() {
return view 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 package uca.baptistearthur.geocaching.ui.overlay
import android.app.AlertDialog
import android.content.Context
import android.graphics.Canvas import android.graphics.Canvas
import android.graphics.Color import android.graphics.Color
import android.graphics.Paint import android.graphics.Paint
import android.graphics.RectF import android.graphics.RectF
import android.text.InputFilter
import android.util.Log import android.util.Log
import android.view.MotionEvent import android.view.MotionEvent
import android.widget.EditText
import android.widget.Toast
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import org.osmdroid.util.GeoPoint
import org.osmdroid.views.MapView import org.osmdroid.views.MapView
import org.osmdroid.views.overlay.Overlay import org.osmdroid.views.overlay.Overlay
import uca.baptistearthur.geocaching.R 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() { 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?) = override fun onSingleTapConfirmed(e: MotionEvent?, mapView: MapView?) =
if (e != null && circleRectF.contains(e.x, e.y)) { 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) Log.d("GeoRoad", "CONFIRM : "+points.size)
true true
}else{ }else{
false 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 <item
android:id="@+id/map" android:id="@+id/map"
android:enabled="true" android:enabled="true"
android:title="@string/carte" android:title="@string/map"
android:icon="@drawable/map"/> android:icon="@drawable/map"/>
<item <item
android:id="@+id/roadTrip" android:id="@+id/roadTrip"
android:enabled="true" android:enabled="true"
android:title="@string/voyages" android:title="@string/travels"
android:icon="@drawable/road_trip" /> android:icon="@drawable/road_trip" />
</menu> </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> <resources>
<string name="app_name">RoadTrip</string> <string name="app_name">RoadTrip</string>
<string name="carte">Carte</string> <string name="map">Map</string>
<string name="voyages">Voyages</string> <string name="travels">Travels</string>
<string name="roadtrip_title">Mes RoadTrips:</string> <string name="roadtrip_title">My RoadTrips:</string>
<string name="add_roadtrip_button">+</string> <string name="add_roadtrip_button">+</string>
<string name="textaddNewRoadTrip">Entrez le nom du nouveau voyage</string> <string name="placesList">Your places to visit:</string>
<string name="placesList">Vos lieux à visiter:</string> <string name="btnDeleteRoadTrip">Delete travel</string>
<string name="btnDeleteRoadTrip">Supprimer le voyage</string> <string name="confirm">Confirm</string>
<string name="cancel">Cancel</string>
<!-- TODO: Remove or change this placeholder text --> <string name="emptyTextError">The text cannot be empty</string>
<string name="hello_blank_fragment">Hello blank fragment</string> <string name="newRoadtripDialog">Enter the name of your travel</string>
</resources> </resources>

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

Loading…
Cancel
Save