Skip to content

Commit

Permalink
ViewBinding in Fragment
Browse files Browse the repository at this point in the history
  • Loading branch information
arifaizin committed Nov 13, 2020
1 parent d76379e commit ab0f667
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 15 deletions.
Expand Up @@ -9,22 +9,24 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.dicoding.tourismapp.R
import com.dicoding.tourismapp.core.ui.TourismAdapter
import com.dicoding.tourismapp.core.ui.ViewModelFactory
import com.dicoding.tourismapp.databinding.FragmentFavoriteBinding
import com.dicoding.tourismapp.detail.DetailTourismActivity
import kotlinx.android.synthetic.main.fragment_favorite.*
import kotlinx.android.synthetic.main.fragment_home.rv_tourism

class FavoriteFragment : Fragment() {

private lateinit var favoriteViewModel: FavoriteViewModel

private var _binding: FragmentFavoriteBinding? = null
private val binding get() = _binding!!

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_favorite, container, false)
_binding = FragmentFavoriteBinding.inflate(inflater, container, false)
return binding.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
Expand All @@ -44,14 +46,19 @@ class FavoriteFragment : Fragment() {

favoriteViewModel.favoriteTourism.observe(viewLifecycleOwner, Observer{ dataTourism ->
tourismAdapter.setData(dataTourism)
view_empty.visibility = if (dataTourism.isNotEmpty()) View.GONE else View.VISIBLE
binding.viewEmpty.root.visibility = if (dataTourism.isNotEmpty()) View.GONE else View.VISIBLE
})

with(rv_tourism) {
with(binding.rvTourism) {
layoutManager = LinearLayoutManager(context)
setHasFixedSize(true)
adapter = tourismAdapter
}
}
}

override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}
26 changes: 17 additions & 9 deletions app/src/main/java/com/dicoding/tourismapp/home/HomeFragment.kt
Expand Up @@ -13,19 +13,22 @@ import com.dicoding.tourismapp.R
import com.dicoding.tourismapp.core.data.Resource
import com.dicoding.tourismapp.core.ui.TourismAdapter
import com.dicoding.tourismapp.core.ui.ViewModelFactory
import com.dicoding.tourismapp.databinding.FragmentHomeBinding
import com.dicoding.tourismapp.detail.DetailTourismActivity
import kotlinx.android.synthetic.main.fragment_home.*
import kotlinx.android.synthetic.main.view_error.*

class HomeFragment : Fragment() {

private lateinit var homeViewModel: HomeViewModel

private var _binding: FragmentHomeBinding? = null
private val binding get() = _binding!!

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_home, container, false)
_binding = FragmentHomeBinding.inflate(inflater, container, false)
return binding.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
Expand All @@ -46,25 +49,30 @@ class HomeFragment : Fragment() {
homeViewModel.tourism.observe(viewLifecycleOwner, Observer{ tourism ->
if (tourism != null) {
when (tourism) {
is Resource.Loading -> progress_bar.visibility = View.VISIBLE
is Resource.Loading -> binding.progressBar.visibility = View.VISIBLE
is Resource.Success -> {
progress_bar.visibility = View.GONE
binding.progressBar.visibility = View.GONE
tourismAdapter.setData(tourism.data)
}
is Resource.Error -> {
progress_bar.visibility = View.GONE
view_error.visibility = View.VISIBLE
tv_error.text = tourism.message ?: getString(R.string.something_wrong)
binding.progressBar.visibility = View.GONE
binding.viewError.root.visibility = View.VISIBLE
binding.viewError.tvError.text = tourism.message ?: getString(R.string.something_wrong)
}
}
}
})

with(rv_tourism) {
with(binding.rvTourism) {
layoutManager = LinearLayoutManager(context)
setHasFixedSize(true)
adapter = tourismAdapter
}
}
}

override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}

0 comments on commit ab0f667

Please sign in to comment.