From 8e1e373572327c3b748386c53656637fd4a82e4b Mon Sep 17 00:00:00 2001 From: "arthur.valin" Date: Thu, 6 Apr 2023 15:02:05 +0200 Subject: [PATCH] Adding Roadtrip addition dialog --- .../ui/fragment/RoadTripFragment.kt | 37 --------------- .../ui/overlay/NewRoadtripOverlay.kt | 47 ++++++++++++++++++- app/src/main/res/menu/bottom_tabs.xml | 4 +- app/src/main/res/values-fr/strings.xml | 13 +++++ app/src/main/res/values/strings.xml | 18 +++---- app/src/main/res/values/themes.xml | 2 +- 6 files changed, 70 insertions(+), 51 deletions(-) create mode 100644 app/src/main/res/values-fr/strings.xml diff --git a/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/RoadTripFragment.kt b/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/RoadTripFragment.kt index 74b045c..786bbe0 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/RoadTripFragment.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/RoadTripFragment.kt @@ -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) - } - } - } } \ No newline at end of file diff --git a/app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/NewRoadtripOverlay.kt b/app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/NewRoadtripOverlay.kt index 2722928..aba5aca 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/NewRoadtripOverlay.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/NewRoadtripOverlay.kt @@ -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) : Overlay() { @@ -49,10 +56,46 @@ class NewRoadtripOverlay(val points: Collection) : 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.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 = 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() + } } \ No newline at end of file diff --git a/app/src/main/res/menu/bottom_tabs.xml b/app/src/main/res/menu/bottom_tabs.xml index 0fabe7a..2e034d3 100644 --- a/app/src/main/res/menu/bottom_tabs.xml +++ b/app/src/main/res/menu/bottom_tabs.xml @@ -3,11 +3,11 @@ diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml new file mode 100644 index 0000000..fa7d961 --- /dev/null +++ b/app/src/main/res/values-fr/strings.xml @@ -0,0 +1,13 @@ + + RoadTrip + Carte + Voyages + Mes RoadTrips: + + + Vos lieux à visiter: + Supprimer le voyage + Valider + Annuler + Le texte ne peux pas être vide + Entrez le nom de votre voyage + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 96929e0..b8311bf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,13 +1,13 @@ RoadTrip - Carte - Voyages - Mes RoadTrips: + Map + Travels + My RoadTrips: + - Entrez le nom du nouveau voyage - Vos lieux à visiter: - Supprimer le voyage - - - Hello blank fragment + Your places to visit: + Delete travel + Confirm + Cancel + The text cannot be empty + Enter the name of your travel \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 607676c..374bb77 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -2,7 +2,7 @@