47 lines
1.6 KiB
Kotlin
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
|
|
}
|
|
}
|
|
}
|