android/app/src/main/java/io/annaclemens/xivchat/ui/targeting/TargetingListFragment.kt

47 lines
1.6 KiB
Kotlin

package io.annaclemens.xivchat.ui.targeting
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.activity.viewModels
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import io.annaclemens.xivchat.databinding.FragmentTargetingBinding
import io.annaclemens.xivchat.util.getApp
class TargetingListFragment : Fragment() {
private lateinit var viewAdapter: TargetingListAdapter
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
val vm: TargetingListViewModel by this.getApp().viewModels()
val binding = FragmentTargetingBinding.inflate(inflater)
this.viewAdapter = TargetingListAdapter(this.requireContext())
binding.targetingList.apply {
this.setHasFixedSize(true)
this.layoutManager = LinearLayoutManager(this.context)
this.adapter = this@TargetingListFragment.viewAdapter
}
this.updateEmptyText(binding, vm.targeting.value.orEmpty().isEmpty())
vm.targeting.observe(this.viewLifecycleOwner) {
this.updateEmptyText(binding, it.orEmpty().isEmpty())
this.viewAdapter.setTargetingList(it.orEmpty())
this.viewAdapter.notifyDataSetChanged()
}
return binding.root
}
private fun updateEmptyText(binding: FragmentTargetingBinding, visible: Boolean) {
binding.textView.visibility = if (visible) {
View.VISIBLE
} else {
View.GONE
}
}
}