parent
d6f162ce92
commit
a5e9129f61
@ -1,5 +1,6 @@
|
||||
package com.example.cinapp.Request
|
||||
package com.example.cinapp.api
|
||||
|
||||
import com.example.cinapp.api.dto.MediaResponse
|
||||
import com.example.cinapp.model.Media
|
||||
import com.example.cinapp.model.Movie
|
||||
import com.example.cinapp.model.Serie
|
@ -1,6 +1,7 @@
|
||||
package com.example.cinapp.Request
|
||||
package com.example.cinapp.api
|
||||
|
||||
import com.example.cinapp.BuildConfig
|
||||
import com.example.cinapp.api.dto.Demmy
|
||||
import retrofit2.Call
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Query
|
@ -1,6 +1,4 @@
|
||||
package com.example.cinapp.Request
|
||||
|
||||
import com.example.cinapp.model.Movie
|
||||
package com.example.cinapp.api.dto
|
||||
|
||||
|
||||
class Demmy (
|
@ -1,4 +1,4 @@
|
||||
package com.example.cinapp.Request
|
||||
package com.example.cinapp.api.dto
|
||||
|
||||
import com.example.cinapp.model.Season
|
||||
|
@ -0,0 +1,30 @@
|
||||
package com.example.cinapp.ui.activity
|
||||
|
||||
import android.os.Bundle
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.example.cinapp.R
|
||||
import com.example.cinapp.model.Media
|
||||
import com.example.cinapp.ui.viewModel.MediaViewModel
|
||||
|
||||
class MediaDetailActivity : AppCompatActivity() {
|
||||
/*private lateinit var viewModel: MediaViewModel
|
||||
|
||||
public lateinit var media: Media
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.movie_view)
|
||||
|
||||
val media = intent.getIntExtra("MEDIA", 0)
|
||||
viewModel = ViewModelProvider(this).get(MediaViewModel::class.java)
|
||||
|
||||
var textView = findViewById<TextView>(R.id.info_name)
|
||||
|
||||
viewModel.getMediaLiveData(mediaId).observe(this, Observer { media ->
|
||||
textView.text = media.title
|
||||
})
|
||||
}*/
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.example.cinapp.ui.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.cinapp.R
|
||||
import com.example.cinapp.model.Media
|
||||
import com.example.cinapp.ui.viewModel.MediaViewModel
|
||||
|
||||
class InfosMediaAdapter(private val viewModel: MediaViewModel) : RecyclerView.Adapter<InfosMediaAdapter.MediaViewHolder>() {
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MediaViewHolder {
|
||||
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.movie_view, parent, false)
|
||||
return MediaViewHolder(itemView)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: MediaViewHolder, position: Int) {
|
||||
/*val media = mediaList[position]
|
||||
holder.bind(media)*/
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int {
|
||||
/*return mediaList.size*/
|
||||
return 0
|
||||
}
|
||||
|
||||
inner class MediaViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
/*private val titleTextView: TextView = itemView.findViewById(R.id.title_text_view)
|
||||
private val descriptionTextView: TextView = itemView.findViewById(R.id.description_text_view)
|
||||
private val mediaImageView: ImageView = itemView.findViewById(R.id.media_image_view)
|
||||
|
||||
fun bind(media: Media) {
|
||||
titleTextView.text = media.title
|
||||
descriptionTextView.text = media.description
|
||||
// Ajoutez une logique pour charger l'image à partir de l'URL pour le média
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,74 @@
|
||||
package com.example.cinapp.ui.viewModel
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.recyclerview.widget.StaggeredGridLayoutManager
|
||||
import com.example.cinapp.MainActivity
|
||||
import com.example.cinapp.R
|
||||
import com.example.cinapp.api.MediaApi
|
||||
import com.example.cinapp.model.Media
|
||||
import com.example.cinapp.ui.adapter.MediaAdapter
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class HomeViewModel: ViewModel() {
|
||||
|
||||
var popularMovies = MutableLiveData<List<Media>>()
|
||||
|
||||
var popularTvShows = MutableLiveData<List<Media>>()
|
||||
|
||||
var topRatedMovies = MutableLiveData<List<Media>>()
|
||||
|
||||
var topRatedTvShows = MutableLiveData<List<Media>>()
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
val context : MainActivity = MainActivity()
|
||||
|
||||
fun addMedia(rootView: View) {
|
||||
viewModelScope.launch(Dispatchers.IO){
|
||||
MediaApi().getPopularMovies { listMedia ->
|
||||
popularMovies.postValue(listMedia)
|
||||
val recyclerView = rootView.findViewById<RecyclerView>(R.id.rc_popular_movies)
|
||||
addMediaToRecyclerView(recyclerView, popularMovies)
|
||||
}
|
||||
}
|
||||
|
||||
viewModelScope.launch(Dispatchers.IO){
|
||||
MediaApi().getPopularSeries { listMedia ->
|
||||
popularTvShows.postValue(listMedia)
|
||||
val recyclerView = rootView.findViewById<RecyclerView>(R.id.rc_popular_series)
|
||||
addMediaToRecyclerView(recyclerView, popularTvShows)
|
||||
}
|
||||
}
|
||||
|
||||
viewModelScope.launch(Dispatchers.IO){
|
||||
MediaApi().getTopRatedMovie { listMedia ->
|
||||
topRatedMovies.postValue(listMedia)
|
||||
val recyclerView = rootView.findViewById<RecyclerView>(R.id.rc_top_rated_movies)
|
||||
addMediaToRecyclerView(recyclerView, topRatedMovies)
|
||||
}
|
||||
}
|
||||
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
MediaApi().getTopRatedSerie { listMedia ->
|
||||
topRatedTvShows.postValue(listMedia)
|
||||
val recyclerView = rootView.findViewById<RecyclerView>(R.id.rc_top_rated_series)
|
||||
addMediaToRecyclerView(recyclerView, topRatedTvShows)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun addMediaToRecyclerView(recyclerView: RecyclerView, mediaList: MutableLiveData<List<Media>>) {
|
||||
Log.d("HomeViewModel ------", "addMediaToRecyclerView: $recyclerView")
|
||||
val layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.HORIZONTAL)
|
||||
recyclerView.layoutManager = layoutManager
|
||||
recyclerView.adapter = MediaAdapter(mediaList)
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in new issue