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 c0ac081..ed233d6 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 @@ -1,42 +1,45 @@ package uca.baptistearthur.geocaching.ui.fragment -import android.annotation.SuppressLint import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.Button -import android.widget.EditText +import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import uca.baptistearthur.geocaching.R -import uca.baptistearthur.geocaching.data.Stub +import uca.baptistearthur.geocaching.application.RTApplication +import uca.baptistearthur.geocaching.model.Place import uca.baptistearthur.geocaching.model.RoadTripEntity import uca.baptistearthur.geocaching.recyclerview.RoadTripAdapter +import uca.baptistearthur.geocaching.viewModels.RoadTripViewModel +import uca.baptistearthur.geocaching.viewModels.RoadTripViewModelFactory import java.util.* class RoadTripFragment : Fragment() { private var roadTripRecyclerView : RecyclerView? = null - private var model = Stub().load() - -// private val roadTripViewModel: RoadTripViewModel by viewModels { -// RoadTripViewModelFactory((MainWindow().application as RTApplication).db.roadTripDAO()) // MainWindow().application ????? bof bof -// } - + private val roadTripViewModel: RoadTripViewModel by viewModels { + RoadTripViewModelFactory((requireActivity().application as RTApplication).db.roadTripDAO()) + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + roadTripViewModel.insertRoadTrip(RoadTripEntity(0, "Test", Date(), + listOf(Place(0.15, 45.2)) as MutableList + )) } - - @SuppressLint("MissingInflatedId") override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_roadtrip, container, false) roadTripRecyclerView = view?.findViewById(R.id.recyclerViewRoadTripList) - roadTripRecyclerView?.adapter = RoadTripAdapter(model, findNavController()) + + roadTripViewModel.getAllRoadTrips().observe(viewLifecycleOwner, { roadTrips -> + roadTripRecyclerView?.adapter = RoadTripAdapter(roadTrips, findNavController()) + }) + roadTripRecyclerView?.layoutManager = LinearLayoutManager(context) return view 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 1596a79..e6ee640 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 @@ -8,14 +8,21 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import android.util.Log +import android.widget.Button import android.widget.TextView import androidx.annotation.RequiresApi +import androidx.fragment.app.viewModels +import androidx.navigation.findNavController +import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import uca.baptistearthur.geocaching.R +import uca.baptistearthur.geocaching.application.RTApplication import uca.baptistearthur.geocaching.converters.Converters import uca.baptistearthur.geocaching.converters.toFrenchFormat import uca.baptistearthur.geocaching.recyclerview.PlacesAdapter +import uca.baptistearthur.geocaching.viewModels.RoadTripViewModel +import uca.baptistearthur.geocaching.viewModels.RoadTripViewModelFactory import java.time.format.DateTimeFormatter import java.util.* @@ -23,8 +30,12 @@ class RoadtripDetail : Fragment() { private var placesRecyclerView : RecyclerView? = null + private val roadTripViewModel: RoadTripViewModel by viewModels { + RoadTripViewModelFactory((requireActivity().application as RTApplication).db.roadTripDAO()) + } + + @SuppressLint("ResourceType") 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) @@ -38,6 +49,11 @@ class RoadtripDetail : Fragment() { view?.findViewById(R.id.roadTripDetailTitle)?.text = roadTrip.name view?.findViewById(R.id.roadTripDetailDate)?.text = roadTrip.date.toFrenchFormat() + view?.findViewById