diff --git a/Sources/app/src/main/java/fr/iut/pm/movieapplication/api/MovieApplicationAPI.kt b/Sources/app/src/main/java/fr/iut/pm/movieapplication/api/MovieApplicationAPI.kt index 6212409..cd84a60 100644 --- a/Sources/app/src/main/java/fr/iut/pm/movieapplication/api/MovieApplicationAPI.kt +++ b/Sources/app/src/main/java/fr/iut/pm/movieapplication/api/MovieApplicationAPI.kt @@ -1,9 +1,8 @@ package fr.iut.pm.movieapplication.api -import fr.iut.pm.movieapplication.api.config.GlobalImageConfig -import fr.iut.pm.movieapplication.api.config.ImageConfig import fr.iut.pm.movieapplication.api.dtos.MovieResultDTO import fr.iut.pm.movieapplication.api.dtos.PopularDTO +import fr.iut.pm.movieapplication.utils.Constants.Companion.API_KEY import retrofit2.Call import retrofit2.http.GET import retrofit2.http.Path @@ -12,9 +11,12 @@ import retrofit2.http.Query interface MovieApplicationAPI { @GET("movie/popular") - fun getPopularMovies(@Query("api_key") apiKey : String) : Call + fun getPopularMovies(@Query("api_key") apiKey : String = API_KEY) : Call + + @GET("trending/{media_type}/{time_window}") + fun getTrending(@Path("media_type") mediaType : String = "all", @Path("time_window") timeWindow : String = "day", @Query("api_key") apiKey: String = API_KEY ) : Call @GET("movie/{movie_id") - fun getMovieDetails(@Path("movie_id") movieId : Int, @Query("api_key") apiKey: String) : Call + fun getMovieDetails(@Path("movie_id") movieId : Int, @Query("api_key") apiKey: String = API_KEY) : Call } \ No newline at end of file diff --git a/Sources/app/src/main/java/fr/iut/pm/movieapplication/api/RetrofitInstance.kt b/Sources/app/src/main/java/fr/iut/pm/movieapplication/api/RetrofitInstance.kt index cbc1f53..1ade6b0 100644 --- a/Sources/app/src/main/java/fr/iut/pm/movieapplication/api/RetrofitInstance.kt +++ b/Sources/app/src/main/java/fr/iut/pm/movieapplication/api/RetrofitInstance.kt @@ -19,5 +19,5 @@ object RetrofitInstance { .addConverterFactory(MoshiConverterFactory.create(moshi)) .build() - val api = retrofit.create(MovieApplicationAPI::class.java) + val api: MovieApplicationAPI = retrofit.create(MovieApplicationAPI::class.java) } \ No newline at end of file diff --git a/Sources/app/src/main/java/fr/iut/pm/movieapplication/repository/MovieRepository.kt b/Sources/app/src/main/java/fr/iut/pm/movieapplication/repository/MovieRepository.kt index 6293e23..c099d8e 100644 --- a/Sources/app/src/main/java/fr/iut/pm/movieapplication/repository/MovieRepository.kt +++ b/Sources/app/src/main/java/fr/iut/pm/movieapplication/repository/MovieRepository.kt @@ -4,7 +4,6 @@ import android.util.Log import fr.iut.pm.movieapplication.api.RetrofitInstance import fr.iut.pm.movieapplication.api.dtos.PopularDTO import fr.iut.pm.movieapplication.model.Movie -import fr.iut.pm.movieapplication.utils.Constants import fr.iut.pm.movieapplication.utils.Constants.Companion.API_KEY import fr.iut.pm.movieapplication.utils.Mapper import retrofit2.Call @@ -17,7 +16,7 @@ class MovieRepository() { val listMovie : MutableList = mutableListOf() - RetrofitInstance.api.getPopularMovies(API_KEY).enqueue(object : + RetrofitInstance.api.getPopularMovies().enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { @@ -41,4 +40,27 @@ class MovieRepository() { }) } + + fun getTrends(callback: (List) -> Unit) { + val listMovie : MutableList = mutableListOf() + + RetrofitInstance.api.getTrending().enqueue(object : Callback { + override fun onResponse(call: Call, response: Response) { + if(response.isSuccessful) { + Log.d("Response",response.body().toString()) + val popularDTO = response.body() + popularDTO?.results?.forEach { + val movie = Mapper.MapToMovie(it) + listMovie.add(movie) + movie.title?.let { it1 -> Log.d("Movie", it1) } + } + } + callback(listMovie) + } + + override fun onFailure(call: Call, t: Throwable) { + Log.d("Error failure", t.message.toString()) + } + }) + } } \ No newline at end of file diff --git a/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/activity/MainActivity.kt b/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/activity/MainActivity.kt index 6a0f405..f6fb97a 100644 --- a/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/activity/MainActivity.kt +++ b/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/activity/MainActivity.kt @@ -9,6 +9,7 @@ import com.google.android.material.bottomnavigation.BottomNavigationView import fr.iut.pm.movieapplication.R import fr.iut.pm.movieapplication.api.RetrofitInstance import fr.iut.pm.movieapplication.api.config.GlobalImageConfig +import fr.iut.pm.movieapplication.repository.MovieRepository import fr.iut.pm.movieapplication.ui.fragments.HomeSectionsFragment import fr.iut.pm.movieapplication.ui.fragments.MoviesFragment import fr.iut.pm.movieapplication.utils.Constants @@ -18,6 +19,9 @@ import kotlinx.coroutines.launch import retrofit2.awaitResponse class MainActivity : AppCompatActivity() { + + val movieRepository : MovieRepository = MovieRepository() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) diff --git a/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/fragments/HomeSectionsFragment.kt b/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/fragments/HomeSectionsFragment.kt index cd8244f..d321a90 100644 --- a/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/fragments/HomeSectionsFragment.kt +++ b/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/fragments/HomeSectionsFragment.kt @@ -14,7 +14,9 @@ import fr.iut.pm.movieapplication.ui.adapter.HomeItemAdapter import fr.iut.pm.movieapplication.ui.adapter.HomeItemDecoration import fr.iut.pm.movieapplication.ui.viewmodel.HomeSectionsVM -class HomeSectionsFragment(private val context : MainActivity) : Fragment() { +class HomeSectionsFragment( + private val context : MainActivity + ) : Fragment() { private lateinit var homeSectionsViewModel : HomeSectionsVM @@ -22,15 +24,18 @@ class HomeSectionsFragment(private val context : MainActivity) : Fragment() { val view = inflater.inflate(R.layout.fragment_home_sections, container, false) //get the trends RecyclerView + context.movieRepository.getTrends { val homeTrendsRecyclerView = view?.findViewById(R.id.home_trends_recycler_view) - homeTrendsRecyclerView?.adapter = HomeItemAdapter(context,R.layout.item_horizontal_home_page,ArrayList()) + homeTrendsRecyclerView?.adapter = HomeItemAdapter(context,R.layout.item_horizontal_home_page,it) homeTrendsRecyclerView?.addItemDecoration(HomeItemDecoration()) + } //get the popularity RecyclerView + context.movieRepository.getPopularMovies { val homePopularityRecyclerView = view?.findViewById(R.id.home_popularity_recycler_view) - homePopularityRecyclerView?.adapter = HomeItemAdapter(context,R.layout.item_horizontal_home_page,ArrayList()) + homePopularityRecyclerView?.adapter = HomeItemAdapter(context,R.layout.item_horizontal_home_page,it) homePopularityRecyclerView?.addItemDecoration(HomeItemDecoration()) - + } //get the free RecyclerView val homeFreeRecyclerView = view?.findViewById(R.id.home_free_recycler_view) homeFreeRecyclerView?.adapter = HomeItemAdapter(context,R.layout.item_horizontal_home_page,ArrayList()) diff --git a/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/fragments/MoviesFragment.kt b/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/fragments/MoviesFragment.kt index 7e17ebb..eaa3d22 100644 --- a/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/fragments/MoviesFragment.kt +++ b/Sources/app/src/main/java/fr/iut/pm/movieapplication/ui/fragments/MoviesFragment.kt @@ -30,10 +30,7 @@ class MoviesFragment( override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_movies, container, false) - - - val repository = MovieRepository() - repository.getPopularMovies { listMovies -> + context.movieRepository.getPopularMovies { listMovies -> val moviesRecyclerView = view?.findViewById(R.id.movies_item_recycler_view) moviesRecyclerView?.adapter = HomeItemAdapter(context, R.layout.item_vertical_fragment, listMovies) moviesRecyclerView ?. layoutManager = GridLayoutManager (context, 2) diff --git a/Sources/app/src/main/res/layout/item_horizontal_home_page.xml b/Sources/app/src/main/res/layout/item_horizontal_home_page.xml index d7dc465..1864ae7 100644 --- a/Sources/app/src/main/res/layout/item_horizontal_home_page.xml +++ b/Sources/app/src/main/res/layout/item_horizontal_home_page.xml @@ -10,13 +10,13 @@ android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="200dp" - app:cardCornerRadius="15dp" + app:cardCornerRadius="5dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> + app:layout_constraintTop_toBottomOf="@+id/item_name" /> \ No newline at end of file diff --git a/Sources/app/src/main/res/layout/item_vertical_fragment.xml b/Sources/app/src/main/res/layout/item_vertical_fragment.xml index 706f15c..c9a8ae4 100644 --- a/Sources/app/src/main/res/layout/item_vertical_fragment.xml +++ b/Sources/app/src/main/res/layout/item_vertical_fragment.xml @@ -1,12 +1,12 @@ @@ -36,7 +36,7 @@