From 6c15c19420df37d68930c5c5aac395527b5ca1fc Mon Sep 17 00:00:00 2001 From: Bastien Jacquelin Date: Wed, 5 Apr 2023 09:48:32 +0200 Subject: [PATCH] add viewModel -> send data between fragment need to bind data btw master and detail in the detail ! images never load ? --- .../main/java/fr/iut/cinecool/MoviesFragment.kt | 16 +++++++++++----- .../main/java/fr/iut/cinecool/SessionFragment.kt | 10 ++++++---- .../java/fr/iut/cinecool/model/cineViewModel.kt | 16 ++++++++++++++++ .../app/src/main/res/layout/fragment_session.xml | 2 +- 4 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 CineCool/app/src/main/java/fr/iut/cinecool/model/cineViewModel.kt diff --git a/CineCool/app/src/main/java/fr/iut/cinecool/MoviesFragment.kt b/CineCool/app/src/main/java/fr/iut/cinecool/MoviesFragment.kt index e7b3104..eede28b 100644 --- a/CineCool/app/src/main/java/fr/iut/cinecool/MoviesFragment.kt +++ b/CineCool/app/src/main/java/fr/iut/cinecool/MoviesFragment.kt @@ -9,6 +9,7 @@ import android.view.ViewGroup import android.widget.Button import androidx.fragment.app.viewModels import android.widget.LinearLayout +import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -16,8 +17,10 @@ import fr.iut.cinecool.adapter.MovieAdapter import fr.iut.cinecool.databinding.FragmentMoviesBinding import fr.iut.cinecool.model.Movie import fr.iut.cinecool.model.Stub +import fr.iut.cinecool.model.cineViewModel class MoviesFragment : Fragment() { + private val sharedViewModel: cineViewModel by activityViewModels() private var _binding: FragmentMoviesBinding? = null private val binding get() = _binding!! @@ -31,7 +34,6 @@ class MoviesFragment : Fragment() { ): View? { _binding = FragmentMoviesBinding.inflate(inflater, container, false) return binding.root - } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -60,10 +62,14 @@ class MoviesFragment : Fragment() { movieAdapter = MovieAdapter(ArrayList()) binding.recyclerMovie.adapter = movieAdapter movieAdapter.onItemClick = { - val fragment = SessionFragment() - val myBundle = Bundle() - myBundle.putParcelable("movie",it) - fragment.arguments=myBundle + /*val fragment = SessionFragment() + fragment.arguments = Bundle().apply { + putParcelable("movie",it) + }*/ + + + sharedViewModel.setCine(it) + findNavController().navigate(R.id.movies_to_sessions) } diff --git a/CineCool/app/src/main/java/fr/iut/cinecool/SessionFragment.kt b/CineCool/app/src/main/java/fr/iut/cinecool/SessionFragment.kt index bbb6c0f..742f0b4 100644 --- a/CineCool/app/src/main/java/fr/iut/cinecool/SessionFragment.kt +++ b/CineCool/app/src/main/java/fr/iut/cinecool/SessionFragment.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button +import android.widget.ImageButton import android.widget.TextView import androidx.navigation.fragment.findNavController import fr.iut.cinecool.API.Movie @@ -18,14 +19,15 @@ class SessionFragment : Fragment() { ): View? { // Inflate the layout for this fragment val view = inflater.inflate(R.layout.fragment_session, container, false) - val button = view.findViewById