Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package appsynth.galahad.pattern.presentation.movie.mvp
- import android.os.Bundle
- import android.support.v4.app.Fragment
- import android.support.v7.widget.LinearLayoutManager
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import android.webkit.WebChromeClient
- import appsynth.galahad.pattern.R
- import appsynth.galahad.pattern.model.MovieDetail
- import appsynth.galahad.pattern.presentation.movie.adapter.RelateMovieAdapter
- import com.bumptech.glide.Glide
- import kotlinx.android.synthetic.main.fragment_movie_detail.*
- class MovieFragment : Fragment(), MovieContract.View {
- companion object {
- const val TAG = "MovieFragment"
- }
- private lateinit var presenter: MoviePresenter
- private val relateMovieAdapter: RelateMovieAdapter by lazy {
- RelateMovieAdapter().apply {
- listener = object : RelateMovieAdapter.RelateMovieAdapterInterface {
- override fun onItemClick(movieId: String) {}
- }
- }
- }
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
- presenter = MoviePresenter(view = this)
- return inflater.inflate(R.layout.fragment_movie_detail, container, false)
- }
- override fun onDestroyView() {
- super.onDestroyView()
- presenter.cleanUp()
- }
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- initView()
- presenter.loadMovie("harry_1")
- presenter.loadMovieRelated("harry_1")
- }
- override fun showLoadingMovieDetail() {
- progressView.visibility = View.VISIBLE
- }
- override fun hideLoadingMovieDetail() {
- progressView.visibility = View.GONE
- }
- override fun showMovieDetail() {
- contentScrollView.visibility = View.VISIBLE
- }
- override fun hideMovieDetail() {
- contentScrollView.visibility = View.GONE
- }
- override fun renderMovieName(name: String) {
- movieNameTextView.text = name
- }
- override fun renderMovieDesc(desc: String) {
- movieDescTextView.text = desc
- }
- override fun renderMoviePoster(url: String) {
- Glide.with(this).load(url).into(posterImageView)
- }
- override fun renderVideo(iFrame: String) {
- playerWebView.loadData(iFrame, "text/html", "UTF-8")
- }
- override fun showLoadingRelateMovie() {
- relateMovieProgress.visibility = View.VISIBLE
- }
- override fun hideLoadingRelateMovie() {
- relateMovieProgress.visibility = View.GONE
- }
- override fun showRelatedMovie() {
- relateMovieRecycleView.visibility = View.VISIBLE
- }
- override fun hideRelatedMovie() {
- relateMovieRecycleView.visibility = View.GONE
- }
- override fun renderRelatedMovie(relateMovieList: List<MovieDetail>) {
- relateMovieAdapter.setData(list = relateMovieList)
- relateMovieAdapter.notifyDataSetChanged()
- }
- private fun initView() {
- relateMovieRecycleView.apply {
- layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
- this.adapter = relateMovieAdapter
- }
- playerWebView.apply {
- settings.javaScriptEnabled = true
- settings.javaScriptCanOpenWindowsAutomatically = true
- webChromeClient = WebChromeClient()
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement