diff --git a/app/src/main/java/uca/baptistearthur/geocaching/converters/Converters.kt b/app/src/main/java/uca/baptistearthur/geocaching/converters/Converters.kt index 7cd664f..525ab4e 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/converters/Converters.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/converters/Converters.kt @@ -1,10 +1,14 @@ package uca.baptistearthur.geocaching.converters +import android.os.Build +import androidx.annotation.RequiresApi import androidx.room.TypeConverter -import java.util.Date import com.google.gson.Gson import com.google.gson.reflect.TypeToken import uca.baptistearthur.geocaching.model.Place +import uca.baptistearthur.geocaching.model.RoadTripEntity +import java.time.format.DateTimeFormatter +import java.util.* class Converters { @TypeConverter @@ -28,5 +32,13 @@ class Converters { return Gson().fromJson(value, listType) } + @TypeConverter + fun toRoadTripEntity(value: String?): RoadTripEntity { + return Gson().fromJson(value, RoadTripEntity::class.java) + } + +} +fun Date.toFrenchFormat(): String { + return "${this.day}/${this.month}/${this.year} - ${this.hours}h${this.minutes}" } \ No newline at end of file diff --git a/app/src/main/java/uca/baptistearthur/geocaching/data/Stub.kt b/app/src/main/java/uca/baptistearthur/geocaching/data/Stub.kt index f6b8e29..8cbdffe 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/data/Stub.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/data/Stub.kt @@ -17,7 +17,7 @@ class Stub { 2, "Italie", Date(), - listOf(Place(48.866667, 2.333333), Place(48.866667, 2.333333)).toMutableList() + listOf(Place(48.866667, 2.34533), Place(98.866667, 2.333333)).toMutableList() ), RoadTripEntity( 3, diff --git a/app/src/main/java/uca/baptistearthur/geocaching/model/RoadTripEntity.kt b/app/src/main/java/uca/baptistearthur/geocaching/model/RoadTripEntity.kt index 5777854..847a6a2 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/model/RoadTripEntity.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/model/RoadTripEntity.kt @@ -3,6 +3,7 @@ package uca.baptistearthur.geocaching.model import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey +import com.google.gson.Gson import java.util.Date @Entity(tableName = "Roadtrip") @@ -15,5 +16,6 @@ class RoadTripEntity( fun addPlaceToRoadTripList(place: Place) = places.add(place) fun addPlaceToRoadTripList(latitude: Double, longitude: Double) = places.add(Place(latitude, longitude)) + fun toJSON(): String = Gson().toJson(this) } \ No newline at end of file diff --git a/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/PlacesAdapter.kt b/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/PlacesAdapter.kt index fcfbbc3..2e3c2f8 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/PlacesAdapter.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/PlacesAdapter.kt @@ -11,12 +11,12 @@ import uca.baptistearthur.geocaching.model.Place class PlacesAdapter (val places: List) : RecyclerView.Adapter(){ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PlacesViewHolder { - return PlacesViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.cell_one_roadtrip, parent, false)) + return PlacesViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.cell_place, parent, false)) } @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: PlacesViewHolder, position: Int) { - holder.placeText.text = "> " + places[position].longitude + " - " + places[position].latitude + holder.placeText.text = "" + (position+1) + ") LAT: " + places[position].latitude + " - LONG: " + places[position].longitude } override fun getItemCount(): Int = places.size } \ No newline at end of file diff --git a/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/RoadTripAdapter.kt b/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/RoadTripAdapter.kt index 3ae541e..3fb49b0 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/RoadTripAdapter.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/RoadTripAdapter.kt @@ -18,6 +18,7 @@ class RoadTripAdapter(val voyages: List, val navController: NavC @SuppressLint("SetTextI18n", "ClickableViewAccessibility") override fun onBindViewHolder(holder: RoadTripViewHolder, position: Int) { holder.roadTripAccessButton.text = "> " + voyages[position].name + holder.clickedRoadTrip = voyages[position] } override fun getItemCount(): Int = voyages.size } \ No newline at end of file diff --git a/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/RoadTripViewHolder.kt b/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/RoadTripViewHolder.kt index 8d4c656..3181062 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/RoadTripViewHolder.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/recyclerview/RoadTripViewHolder.kt @@ -3,23 +3,33 @@ package uca.baptistearthur.geocaching.recyclerview import android.util.Log import android.view.View import android.widget.Button +import androidx.core.os.bundleOf import androidx.navigation.NavController import androidx.recyclerview.widget.RecyclerView.ViewHolder import uca.baptistearthur.geocaching.R +import uca.baptistearthur.geocaching.converters.Converters +import uca.baptistearthur.geocaching.model.RoadTripEntity class RoadTripViewHolder(val cellule: View, val navController: NavController): ViewHolder(cellule) { var roadTripAccessButton: Button = cellule.findViewById(R.id.btnGetRoadTripsInfo) + var clickedRoadTrip: RoadTripEntity? = null init{ roadTripAccessButton.setOnClickListener{ - val roadTripName = roadTripAccessButton.text.substring(3) - Log.d("RoadTripViewHolder", "RoadTripViewHolder clicked: ${roadTripName}") - navController.navigate(R.id.action_roadTripFragment_to_roadtripDetail) -// val roadTrip: RoadTrip = Find roadtrip by name here -// FragmentService().loadFragment(DetailledRoadTripFragment(roadTrip), (cellule.context as MainWindow).supportFragmentManager) + Log.d("RoadTripViewHolder", "RoadTripViewHolder clicked: ${clickedRoadTrip?.name}") + var clickRoadTripJSON = clickedRoadTrip?.toJSON() +// navController.navigate(R.id.action_roadTripFragment_to_roadtripDetail) + + val bundle = bundleOf("roadTrip" to clickRoadTripJSON) + + navController.navigate(R.id.action_roadTripFragment_to_roadtripDetail, bundle) + + Log.d("RoadTripViewHolder", "Data sent: ${clickedRoadTrip?.name}") + } + } } \ No newline at end of file diff --git a/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/RoadtripDetail.kt b/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/RoadtripDetail.kt index 44cfe88..1596a79 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/RoadtripDetail.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/RoadtripDetail.kt @@ -1,57 +1,43 @@ package uca.baptistearthur.geocaching.ui.fragment -import android.content.Context -import android.content.pm.PackageManager -import android.location.LocationManager +import android.annotation.SuppressLint +import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment -import org.osmdroid.config.Configuration -import org.osmdroid.util.GeoPoint -import org.osmdroid.views.MapView -import org.osmdroid.views.overlay.ScaleBarOverlay -import android.Manifest.permission.ACCESS_FINE_LOCATION -import android.location.Location -import android.location.LocationListener import android.util.Log -import android.widget.ProgressBar -import androidx.activity.result.contract.ActivityResultContracts +import android.widget.TextView +import androidx.annotation.RequiresApi import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import org.osmdroid.bonuspack.routing.OSRMRoadManager -import org.osmdroid.bonuspack.routing.RoadManager -import org.osmdroid.config.IConfigurationProvider -import org.osmdroid.library.BuildConfig -import org.osmdroid.tileprovider.tilesource.TileSourceFactory -import org.osmdroid.tileprovider.util.StorageUtils.getStorage -import org.osmdroid.views.overlay.compass.CompassOverlay -import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider -import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider -import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay import uca.baptistearthur.geocaching.R +import uca.baptistearthur.geocaching.converters.Converters +import uca.baptistearthur.geocaching.converters.toFrenchFormat import uca.baptistearthur.geocaching.recyclerview.PlacesAdapter -import uca.baptistearthur.geocaching.ui.overlay.AddMarkerOverlay -import uca.baptistearthur.geocaching.ui.overlay.RecenterOverlay +import java.time.format.DateTimeFormatter +import java.util.* class RoadtripDetail : Fragment() { private var placesRecyclerView : RecyclerView? = null + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { Log.d("GeoMap", "MAP ON CREATE VIEW") // Inflate the layout for this fragment val view = inflater.inflate(R.layout.roadtrip_detail, container, false) -// val roadTrip = // récupérer le roadtrip cliqué -// placesRecyclerView = view?.findViewById(R.id.recyclerViewPlacesList) -// placesRecyclerView?.adapter = PlacesAdapter(roadTrip.places) -// placesRecyclerView?.layoutManager = LinearLayoutManager(context) - - return view - } + var roadTripJSON = arguments?.getString("roadTrip") + val roadTrip = Converters().toRoadTripEntity(roadTripJSON) + placesRecyclerView = view?.findViewById(R.id.recyclerViewPlacesList) + placesRecyclerView?.adapter = PlacesAdapter(roadTrip.places) + placesRecyclerView?.layoutManager = LinearLayoutManager(context) + view?.findViewById(R.id.roadTripDetailTitle)?.text = roadTrip.name + view?.findViewById(R.id.roadTripDetailDate)?.text = roadTrip.date.toFrenchFormat() + return view + } } \ No newline at end of file diff --git a/app/src/main/res/drawable/bottom_border.xml b/app/src/main/res/drawable/bottom_border.xml new file mode 100644 index 0000000..d117938 --- /dev/null +++ b/app/src/main/res/drawable/bottom_border.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/main_window.xml b/app/src/main/res/layout-land/main_window.xml deleted file mode 100644 index 8320c0f..0000000 --- a/app/src/main/res/layout-land/main_window.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/cell_one_roadtrip.xml b/app/src/main/res/layout/cell_one_roadtrip.xml index a29b808..c233193 100644 --- a/app/src/main/res/layout/cell_one_roadtrip.xml +++ b/app/src/main/res/layout/cell_one_roadtrip.xml @@ -6,10 +6,15 @@ android:layout_width="match_parent" android:layout_height="45dp" android:layout_gravity="start" - android:background="@color/white" + android:backgroundTint="@color/white" android:drawableStart="@drawable/right_arrow" android:drawableLeft="@drawable/right_arrow" android:gravity="left" android:textColor="@color/black" android:textSize="20sp" - tools:ignore="RtlHardcoded" /> + android:text="> TMP name" + tools:ignore="RtlHardcoded" + android:layout_marginRight="10dp" + android:layout_marginLeft="10dp" + android:background="@drawable/bottom_border" +/> diff --git a/app/src/main/res/layout/cell_place.xml b/app/src/main/res/layout/cell_place.xml index b1f5495..1fb7913 100644 --- a/app/src/main/res/layout/cell_place.xml +++ b/app/src/main/res/layout/cell_place.xml @@ -1,31 +1,29 @@ + android:layout_marginRight="10dp" + android:layout_marginLeft="10dp"> - + -