Update Detail

Système_de_proximité
louwar 2 years ago
parent 1fdca22aa4
commit 9840677f9e

@ -1,55 +0,0 @@
package fr.iut.cinecool
class ApiClient {
companion object {
/*private const val BASE_URL = "https://api.themoviedb.org/3/"
fun create(): ApiService {
val gson = GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
.create()
val logger = HttpLoggingInterceptor()
logger.level = HttpLoggingInterceptor.Level.BASIC
val client = OkHttpClient.Builder()
.addInterceptor(logger)
.build()
val retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(client)
.build()
return retrofit.create(ApiService::class.java)
}
val retrofit = Retrofit.Builder()
.baseUrl("https://api.themoviedb.org/3/")
.addConverterFactory(GsonConverterFactory.create())
.build()
val movieApiService = retrofit.create(ApiService::class.java)
val apiKey = "a97243d7813d31446f6c43284e6854d5"
val call = movieApiService.getPopularMovies(apiKey)
call.enqueue(object : Callback<MovieResponse> {
override fun onResponse(call: Call<MovieResponse>, response: Response<MovieResponse>) {
// Code à exécuter lorsque la réponse est reçue
val movies = response.body()?.results
// Traitez les films renvoyés ici
}
override fun onFailure(call: Call<MovieResponse>, t: Throwable) {
// Code à exécuter en cas d'échec de la requête
}
})
*/
}
}

@ -1,35 +0,0 @@
package fr.iut.cinecool
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
class DetailActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.vu_detail)
// Récupérer l'identifiant du film depuis les extras de l'intent
val movieId = intent.getIntExtra("movieId", -1)
// Appeler la méthode pour charger les détails du film
// loadMovieDetails(movieId)
}
/*private fun loadMovieDetails(movieId: Int) {
val apiClient = TheMovieDbApiClient(getString(R.string.tmdb_api_key))
apiClient.getMovieDetails(movieId, object : ITheMovieDbApiCallback<MovieAPI> {
override fun onSuccess(result: MovieAPI) {
// Afficher les détails du film dans la vue
titreFilm.text = result.title
description.text = result.overview
Picasso.get().load("https://image.tmdb.org/t/p/w500/${result.posterPath}").into(afficheFilm)
}
override fun onError(error: Throwable) {
// Gérer l'erreur de récupération des détails du film
}
})
}*/
}

@ -1,75 +1,53 @@
package fr.iut.cinecool package fr.iut.cinecool
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import androidx.navigation.fragment.findNavController
import androidx.fragment.app.Fragment import com.bumptech.glide.Glide
import kotlinx.coroutines.CoroutineScope import fr.iut.cinecool.API.Movie
import kotlinx.coroutines.Dispatchers // import fr.iut.cinecool.databinding.FragmentMovieDetailBinding
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
class MovieDetailFragment : Fragment() { class MovieDetailFragment : Fragment() {
/* /*private var _binding: FragmentDetailMovieBinding? = null
private lateinit var binding: FragmentMovieDetailBinding private val binding get() = _binding!!
override fun onCreateView(inflater: LayoutInflater,container: ViewGroup?, savedInstanceState: Bundle?): View override fun onCreateView(
{ inflater: LayoutInflater, container: ViewGroup?,
binding = FragmentMovieDetailBinding.inflate(inflater, container, false) savedInstanceState: Bundle?
): View? {
_binding = FragmentDetailMovieBinding.inflate(inflater, container, false)
return binding.root return binding.root
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?)
{
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
val movieId = arguments?.getInt(ARG_MOVIE_ID) // Récupérez le film passé en argument
val movie: Movie? = arguments?.getParcelable("movie")
// Appel de l'API pour récupérer les détails du film // Mettez à jour les vues avec les données du film
CoroutineScope(Dispatchers.IO).launch { if (movie != null) {
val response = movieId?.let { MovieApiService().getMovieDetails(it) }
withContext(Dispatchers.Main)
{
if (response != null) {
if (response.isSuccessful)
{
val movie = response.body()
if (movie != null)
{
// Affichage des détails du film dans l'interface utilisateur
binding.titreFilm.text = movie.title binding.titreFilm.text = movie.title
binding.description.text = movie.overview binding.description.text = movie.overview
binding.afficheFilm.load("https://image.tmdb.org/t/p/w500${movie.posterPath}") // Utilisation de la librairie Coil pour charger l'image
} val imageUrl = "https://image.tmdb.org/t/p/w500${movie.poster_path}"
} else Glide.with(binding.afficheFilm.context)
{ .load(imageUrl)
Toast.makeText( .placeholder(R.drawable.imitation_game)
requireContext(), .into(binding.afficheFilm)
getString(R.string.error_loading_movie),
Toast.LENGTH_SHORT
).show()
}
}
}
} }
// Ajout d'un écouteur de clic pour le bouton de retour
// Gérer le clic sur le bouton de retour
binding.backButton.setOnClickListener { binding.backButton.setOnClickListener {
requireActivity().onBackPressed() findNavController().popBackStack()
} }
} }
companion object { override fun onDestroyView() {
private const val ARG_MOVIE_ID = "movie_id" super.onDestroyView()
_binding = null
fun newInstance(movieId: Int): MovieDetailFragment {
val args = Bundle().apply {
putInt(ARG_MOVIE_ID, movieId)
}
return MovieDetailFragment().apply {
arguments = args
}
}
}*/ }*/
} }

@ -4,6 +4,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph" android:id="@+id/nav_graph"
app:startDestination="@id/fragment_movies"> app:startDestination="@id/fragment_movies">
<fragment <fragment
android:id="@+id/CinemaFragment" android:id="@+id/CinemaFragment"
android:name="fr.iut.cinecool.CinemaFragment" android:name="fr.iut.cinecool.CinemaFragment"
@ -14,6 +15,7 @@
app:destination="@id/fragment_movies"> app:destination="@id/fragment_movies">
</action> </action>
</fragment> </fragment>
<fragment <fragment
android:id="@+id/fragment_movies" android:id="@+id/fragment_movies"
android:name="fr.iut.cinecool.MoviesFragment" android:name="fr.iut.cinecool.MoviesFragment"
@ -25,6 +27,7 @@
app:destination="@id/SessionFragment"> app:destination="@id/SessionFragment">
</action> </action>
</fragment> </fragment>
<fragment <fragment
android:id="@+id/SessionFragment" android:id="@+id/SessionFragment"
android:name="fr.iut.cinecool.SessionFragment" android:name="fr.iut.cinecool.SessionFragment"
@ -34,4 +37,20 @@
android:id="@+id/action_SessionFragment_to_fragment_movies" android:id="@+id/action_SessionFragment_to_fragment_movies"
app:destination="@id/fragment_movies" /> app:destination="@id/fragment_movies" />
</fragment> </fragment>
<fragment
android:id="@+id/moviesFragment"
android:name="fr.iut.cinecool.MoviesFragment"
android:label="Movies"
tools:layout="@layout/fragment_movies">
<action
android:id="@+id/action_moviesFragment_to_movieDetailFragment"
app:destination="@id/movieDetailFragment" />
</fragment>
<fragment
android:id="@+id/movieDetailFragment"
android:name="fr.iut.cinecool.MovieDetailFragment"
android:label="Movie Details"
tools:layout="@layout/vu_detail" />
</navigation> </navigation>
Loading…
Cancel
Save