databinding: rewrite in kotlin

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld
2020-03-27 03:08:47 -06:00
parent 8669c01eaa
commit 48a9fd46a6
25 changed files with 533 additions and 919 deletions
@@ -17,11 +17,10 @@ import com.wireguard.android.R
import com.wireguard.android.databinding.AppListDialogFragmentBinding
import com.wireguard.android.model.ApplicationData
import com.wireguard.android.util.ErrorMessages
import com.wireguard.android.util.ObservableKeyedArrayList
import com.wireguard.android.util.ObservableKeyedList
import com.wireguard.android.databinding.ObservableKeyedArrayList
class AppListDialogFragment : DialogFragment() {
private val appData: ObservableKeyedList<String, ApplicationData> = ObservableKeyedArrayList()
private val appData: ObservableKeyedArrayList<String, ApplicationData> = ObservableKeyedArrayList()
private var currentlyExcludedApps = emptyList<String>()
private fun loadData() {
@@ -267,23 +267,26 @@ class TunnelListFragment : BaseFragment() {
binding ?: return
binding!!.fragment = this
Application.getTunnelManager().tunnels.thenAccept { tunnels -> binding!!.tunnels = tunnels }
binding!!.rowConfigurationHandler = RowConfigurationHandler { binding: TunnelListItemBinding, tunnel: ObservableTunnel, position ->
binding.fragment = this
binding.root.setOnClickListener {
if (actionMode == null) {
selectedTunnel = tunnel
} else {
actionModeListener.toggleItemChecked(position)
val parent = this
binding!!.rowConfigurationHandler = object : RowConfigurationHandler<TunnelListItemBinding, ObservableTunnel> {
override fun onConfigureRow(binding: TunnelListItemBinding, item: ObservableTunnel, position: Int) {
binding.fragment = parent
binding.root.setOnClickListener {
if (actionMode == null) {
selectedTunnel = item
} else {
actionModeListener.toggleItemChecked(position)
}
}
binding.root.setOnLongClickListener {
actionModeListener.toggleItemChecked(position)
true
}
if (actionMode != null)
(binding.root as MultiselectableRelativeLayout).setMultiSelected(actionModeListener.checkedItems.contains(position))
else
(binding.root as MultiselectableRelativeLayout).setSingleSelected(selectedTunnel == item)
}
binding.root.setOnLongClickListener {
actionModeListener.toggleItemChecked(position)
true
}
if (actionMode != null)
(binding.root as MultiselectableRelativeLayout).setMultiSelected(actionModeListener.checkedItems.contains(position))
else
(binding.root as MultiselectableRelativeLayout).setSingleSelected(selectedTunnel == tunnel)
}
}