From dc002d77fa514eb6526516f23beb7093654c23db Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 22 Sep 2020 14:33:04 +0200 Subject: tv: begin to wire up databindings Signed-off-by: Jason A. Donenfeld --- .../wireguard/android/activity/TvMainActivity.kt | 22 +++----- ui/src/main/res/layout/tv_activity.xml | 64 +++++++++++++--------- ui/src/main/res/layout/tv_tunnel_list_item.xml | 9 --- 3 files changed, 48 insertions(+), 47 deletions(-) diff --git a/ui/src/main/java/com/wireguard/android/activity/TvMainActivity.kt b/ui/src/main/java/com/wireguard/android/activity/TvMainActivity.kt index 4b110a30..16873642 100644 --- a/ui/src/main/java/com/wireguard/android/activity/TvMainActivity.kt +++ b/ui/src/main/java/com/wireguard/android/activity/TvMainActivity.kt @@ -8,14 +8,14 @@ package com.wireguard.android.activity import android.os.Bundle import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts +import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope -import com.google.android.material.button.MaterialButton -import com.wireguard.android.R -import com.wireguard.android.model.ObservableTunnel +import com.wireguard.android.Application +import com.wireguard.android.databinding.TvActivityBinding import com.wireguard.android.util.TunnelImporter import kotlinx.coroutines.launch -class TvMainActivity : BaseActivity() { +class TvMainActivity : AppCompatActivity() { private val tunnelFileImportResultLauncher = registerForActivityResult(ActivityResultContracts.GetContent()) { data -> lifecycleScope.launch { TunnelImporter.importTunnel(contentResolver, data) { @@ -24,18 +24,14 @@ class TvMainActivity : BaseActivity() { } } - override fun onSelectedTunnelChanged(oldTunnel: ObservableTunnel?, newTunnel: ObservableTunnel?) { - } - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.tv_activity) - findViewById(R.id.import_button).setOnClickListener { + val binding = TvActivityBinding.inflate(layoutInflater) + lifecycleScope.launch { binding.tunnels = Application.getTunnelManager().getTunnels() } + binding.importButton.setOnClickListener { tunnelFileImportResultLauncher.launch("*/*") } - } - - companion object { - const val TAG = "WireGuard/TvMainActivity" + binding.executePendingBindings() + setContentView(binding.root) } } diff --git a/ui/src/main/res/layout/tv_activity.xml b/ui/src/main/res/layout/tv_activity.xml index 03caa311..33f13a17 100644 --- a/ui/src/main/res/layout/tv_activity.xml +++ b/ui/src/main/res/layout/tv_activity.xml @@ -1,31 +1,45 @@ - + xmlns:tools="http://schemas.android.com/tools"> - + + + + + + + + android:layout_height="match_parent"> + + - + - + + \ No newline at end of file diff --git a/ui/src/main/res/layout/tv_tunnel_list_item.xml b/ui/src/main/res/layout/tv_tunnel_list_item.xml index a48b977b..5611d579 100644 --- a/ui/src/main/res/layout/tv_tunnel_list_item.xml +++ b/ui/src/main/res/layout/tv_tunnel_list_item.xml @@ -9,10 +9,6 @@ - - @@ -20,11 +16,6 @@ - - -