Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. package appsynth.galahad.pattern.presentation.movie.mvp
  2.  
  3. import android.os.Bundle
  4. import android.support.v4.app.Fragment
  5. import android.support.v7.widget.LinearLayoutManager
  6. import android.view.LayoutInflater
  7. import android.view.View
  8. import android.view.ViewGroup
  9. import android.webkit.WebChromeClient
  10. import appsynth.galahad.pattern.R
  11. import appsynth.galahad.pattern.model.MovieDetail
  12. import appsynth.galahad.pattern.presentation.movie.adapter.RelateMovieAdapter
  13. import com.bumptech.glide.Glide
  14. import kotlinx.android.synthetic.main.fragment_movie_detail.*
  15.  
  16. class MovieFragment : Fragment(), MovieContract.View {
  17.  
  18. companion object {
  19. const val TAG = "MovieFragment"
  20. }
  21.  
  22. private lateinit var presenter: MoviePresenter
  23.  
  24. private val relateMovieAdapter: RelateMovieAdapter by lazy {
  25. RelateMovieAdapter().apply {
  26. listener = object : RelateMovieAdapter.RelateMovieAdapterInterface {
  27. override fun onItemClick(movieId: String) {}
  28. }
  29. }
  30. }
  31.  
  32. override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
  33. presenter = MoviePresenter(view = this)
  34.  
  35. return inflater.inflate(R.layout.fragment_movie_detail, container, false)
  36. }
  37.  
  38. override fun onDestroyView() {
  39. super.onDestroyView()
  40.  
  41. presenter.cleanUp()
  42. }
  43.  
  44. override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
  45. super.onViewCreated(view, savedInstanceState)
  46. initView()
  47. presenter.loadMovie("harry_1")
  48. presenter.loadMovieRelated("harry_1")
  49. }
  50.  
  51. override fun showLoadingMovieDetail() {
  52. progressView.visibility = View.VISIBLE
  53. }
  54.  
  55. override fun hideLoadingMovieDetail() {
  56. progressView.visibility = View.GONE
  57. }
  58.  
  59. override fun showMovieDetail() {
  60. contentScrollView.visibility = View.VISIBLE
  61. }
  62.  
  63. override fun hideMovieDetail() {
  64. contentScrollView.visibility = View.GONE
  65. }
  66.  
  67. override fun renderMovieName(name: String) {
  68. movieNameTextView.text = name
  69. }
  70.  
  71. override fun renderMovieDesc(desc: String) {
  72. movieDescTextView.text = desc
  73. }
  74.  
  75. override fun renderMoviePoster(url: String) {
  76. Glide.with(this).load(url).into(posterImageView)
  77. }
  78.  
  79. override fun renderVideo(iFrame: String) {
  80. playerWebView.loadData(iFrame, "text/html", "UTF-8")
  81. }
  82.  
  83. override fun showLoadingRelateMovie() {
  84. relateMovieProgress.visibility = View.VISIBLE
  85. }
  86.  
  87. override fun hideLoadingRelateMovie() {
  88. relateMovieProgress.visibility = View.GONE
  89. }
  90.  
  91. override fun showRelatedMovie() {
  92. relateMovieRecycleView.visibility = View.VISIBLE
  93. }
  94.  
  95. override fun hideRelatedMovie() {
  96. relateMovieRecycleView.visibility = View.GONE
  97. }
  98.  
  99. override fun renderRelatedMovie(relateMovieList: List<MovieDetail>) {
  100. relateMovieAdapter.setData(list = relateMovieList)
  101. relateMovieAdapter.notifyDataSetChanged()
  102. }
  103.  
  104. private fun initView() {
  105. relateMovieRecycleView.apply {
  106. layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
  107. this.adapter = relateMovieAdapter
  108. }
  109.  
  110. playerWebView.apply {
  111. settings.javaScriptEnabled = true
  112. settings.javaScriptCanOpenWindowsAutomatically = true
  113. webChromeClient = WebChromeClient()
  114. }
  115. }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement