|
16 | 16 |
|
17 | 17 | package com.skydoves.themovies2.view.ui.main
|
18 | 18 |
|
19 |
| -import android.content.Context |
20 | 19 | import android.os.Bundle
|
21 | 20 | import android.view.LayoutInflater
|
22 | 21 | import android.view.View
|
23 | 22 | import android.view.ViewGroup
|
24 |
| -import androidx.lifecycle.observe |
25 |
| -import androidx.recyclerview.widget.GridLayoutManager |
26 |
| -import com.skydoves.baserecyclerviewadapter.RecyclerViewPaginator |
27 | 23 | import com.skydoves.themovies2.R
|
28 | 24 | import com.skydoves.themovies2.compose.ViewModelFragment
|
29 | 25 | import com.skydoves.themovies2.databinding.MainFragmentMovieBinding
|
30 |
| -import com.skydoves.themovies2.models.entity.Movie |
31 | 26 | import com.skydoves.themovies2.view.adapter.MovieListAdapter
|
32 |
| -import com.skydoves.themovies2.view.ui.details.movie.MovieDetailActivity |
33 |
| -import com.skydoves.themovies2.view.viewholder.MovieListViewHolder |
34 |
| -import kotlinx.android.synthetic.main.main_fragment_movie.* |
35 |
| -import org.jetbrains.anko.support.v4.toast |
36 |
| -import org.koin.android.viewmodel.ext.android.viewModel |
| 27 | +import org.koin.android.viewmodel.ext.android.getViewModel |
37 | 28 |
|
38 |
| -class MovieListFragment : ViewModelFragment(), MovieListViewHolder.Delegate { |
39 |
| - |
40 |
| - private val viewModel by viewModel<MainActivityViewModel>() |
41 |
| - private lateinit var binding: MainFragmentMovieBinding |
| 29 | +class MovieListFragment : ViewModelFragment() { |
42 | 30 |
|
43 | 31 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
44 |
| - binding = binding(inflater, R.layout.main_fragment_movie, container) |
45 |
| - binding.viewModel = viewModel |
46 |
| - binding.lifecycleOwner = this |
47 |
| - return binding.root |
48 |
| - } |
49 |
| - |
50 |
| - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
51 |
| - super.onViewCreated(view, savedInstanceState) |
52 |
| - initializeUI() |
53 |
| - } |
54 |
| - |
55 |
| - override fun onAttach(context: Context) { |
56 |
| - super.onAttach(context) |
57 |
| - loadMore(page = 1) |
58 |
| - observeMessages() |
| 32 | + return binding<MainFragmentMovieBinding>(inflater, R.layout.main_fragment_movie, container).apply { |
| 33 | + viewModel = getViewModel<MainActivityViewModel>().apply { postMoviePage(1) } |
| 34 | + lifecycleOwner = this@MovieListFragment |
| 35 | + adapter = MovieListAdapter() |
| 36 | + }.root |
59 | 37 | }
|
60 |
| - |
61 |
| - private fun initializeUI() { |
62 |
| - recyclerView.adapter = MovieListAdapter(this) |
63 |
| - recyclerView.layoutManager = GridLayoutManager(context, 2) |
64 |
| - RecyclerViewPaginator( |
65 |
| - recyclerView = recyclerView, |
66 |
| - isLoading = { false }, |
67 |
| - loadMore = { loadMore(it) }, |
68 |
| - onLast = { false } |
69 |
| - ).apply { |
70 |
| - threshold = 4 |
71 |
| - currentPage = 1 |
72 |
| - } |
73 |
| - } |
74 |
| - |
75 |
| - private fun loadMore(page: Int) = viewModel.postMoviePage(page) |
76 |
| - |
77 |
| - override fun onItemClick(movie: Movie) = |
78 |
| - MovieDetailActivity.startActivityModel(context, movie) |
79 |
| - |
80 |
| - private fun observeMessages() = |
81 |
| - this.viewModel.toastLiveData.observe(this) { toast(it) } |
82 | 38 | }
|
0 commit comments