diff options
author | Mikael Magnusson <mikma@users.sourceforge.net> | 2023-03-03 00:39:07 +0100 |
---|---|---|
committer | Mikael Magnusson <mikma@users.sourceforge.net> | 2023-03-27 00:36:40 +0200 |
commit | 10de11420810449c2d2073c2c6c2c605f92aa427 (patch) | |
tree | 048ac9275c94cc9183ce79dd79f85177345e85a3 /ui/src/main | |
parent | 3dd0270b883d6ca657f8ffdffb5ca21a62196db4 (diff) |
WIP: add dhcp addresses to tunnel details
Diffstat (limited to 'ui/src/main')
-rw-r--r-- | ui/src/main/java/com/wireguard/android/model/ObservableTunnel.kt | 21 | ||||
-rw-r--r-- | ui/src/main/res/layout/tunnel_detail_fragment.xml | 35 | ||||
-rw-r--r-- | ui/src/main/res/values/strings.xml | 1 |
3 files changed, 52 insertions, 5 deletions
diff --git a/ui/src/main/java/com/wireguard/android/model/ObservableTunnel.kt b/ui/src/main/java/com/wireguard/android/model/ObservableTunnel.kt index c3e3405e..49e080f9 100644 --- a/ui/src/main/java/com/wireguard/android/model/ObservableTunnel.kt +++ b/ui/src/main/java/com/wireguard/android/model/ObservableTunnel.kt @@ -8,6 +8,7 @@ import android.util.Log import androidx.databinding.BaseObservable import androidx.databinding.Bindable import com.wireguard.android.BR +import com.wireguard.android.backend.Dhcp import com.wireguard.android.backend.Statistics import com.wireguard.android.backend.Tunnel import com.wireguard.android.databinding.Keyed @@ -55,7 +56,10 @@ class ObservableTunnel internal constructor( } fun onStateChanged(state: Tunnel.State): Tunnel.State { - if (state != Tunnel.State.UP) onStatisticsChanged(null) + if (state != Tunnel.State.UP) { + onStatisticsChanged(null) + onDhcpChanged(null) + } this.state = state notifyPropertyChanged(BR.state) return state @@ -137,6 +141,21 @@ class ObservableTunnel internal constructor( } + @get:Bindable + var dhcp: Dhcp? = null + private set + + override fun onDhcpChange(newDhcp: Dhcp) { + onDhcpChanged(newDhcp) + } + + fun onDhcpChanged(dhcp: Dhcp?): Dhcp? { + this.dhcp = dhcp + notifyPropertyChanged(BR.dhcp) + return dhcp + } + + suspend fun deleteAsync() = manager.delete(this) diff --git a/ui/src/main/res/layout/tunnel_detail_fragment.xml b/ui/src/main/res/layout/tunnel_detail_fragment.xml index 8a8436c7..8237f58c 100644 --- a/ui/src/main/res/layout/tunnel_detail_fragment.xml +++ b/ui/src/main/res/layout/tunnel_detail_fragment.xml @@ -142,8 +142,8 @@ android:layout_height="wrap_content" android:contentDescription="@string/addresses" android:nextFocusUp="@id/public_key_text" - android:nextFocusDown="@id/dns_servers_text" - android:nextFocusForward="@id/dns_servers_text" + android:nextFocusDown="@id/dhcp_addresses_text" + android:nextFocusForward="@id/dhcp_addresses_text" android:onClick="@{ClipboardUtils::copyTextView}" android:text="@{config.interface.addresses}" android:visibility="@{config.interface.addresses.isEmpty() ? android.view.View.GONE : android.view.View.VISIBLE}" @@ -152,6 +152,33 @@ tools:text="fc00:bbbb:bbbb:bb11::3:368b/128" /> <TextView + android:id="@+id/dhcp_addresses_label" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:labelFor="@+id/dhcp_addresses_text" + android:text="@string/dhcp_addresses" + android:visibility="@{tunnel.dhcp == null ? android.view.View.GONE : android.view.View.VISIBLE}" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/addresses_text" /> + + <TextView + android:id="@+id/dhcp_addresses_text" + style="@style/DetailText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:contentDescription="@string/dhcp_addresses" + android:nextFocusUp="@id/addresses_text" + android:nextFocusDown="@id/dns_servers_text" + android:nextFocusForward="@id/dns_servers_text" + android:onClick="@{ClipboardUtils::copyTextView}" + android:text="@{tunnel.dhcp.addresses}" + android:visibility="@{tunnel.dhcp == null ? android.view.View.GONE : android.view.View.VISIBLE}" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/dhcp_addresses_label" + tools:text="fc00:bbbb:bbbb:bb11::3:368b/128" /> + + <TextView android:id="@+id/dns_servers_label" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -160,7 +187,7 @@ android:text="@string/dns_servers" android:visibility="@{config.interface.dnsServers.isEmpty() ? android.view.View.GONE : android.view.View.VISIBLE}" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/addresses_text" /> + app:layout_constraintTop_toBottomOf="@id/dhcp_addresses_text" /> <TextView android:id="@+id/dns_servers_text" @@ -168,7 +195,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:contentDescription="@string/dns_servers" - android:nextFocusUp="@id/addresses_text" + android:nextFocusUp="@id/dhcp_addresses_text" android:nextFocusDown="@id/dns_search_domains_text" android:nextFocusForward="@id/dns_search_domains_text" android:onClick="@{ClipboardUtils::copyTextView}" diff --git a/ui/src/main/res/values/strings.xml b/ui/src/main/res/values/strings.xml index 865c7f07..7b0174ce 100644 --- a/ui/src/main/res/values/strings.xml +++ b/ui/src/main/res/values/strings.xml @@ -105,6 +105,7 @@ <string name="dark_theme_summary_on">Currently using dark (night) theme</string> <string name="dark_theme_title">Use dark theme</string> <string name="delete">Delete</string> + <string name="dhcp_addresses">DHCP Addresses</string> <string name="tv_delete">Select tunnel to delete</string> <string name="tv_select_a_storage_drive">Select a storage drive</string> <string name="tv_no_file_picker">Please install a file management utility to browse files</string> |