diff options
-rw-r--r-- | build.gradle | 2 | ||||
-rw-r--r-- | ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt | 11 | ||||
-rw-r--r-- | ui/src/main/res/layout/tunnel_editor_peer.xml | 5 | ||||
-rw-r--r-- | ui/src/main/res/values/strings.xml | 4 |
4 files changed, 20 insertions, 2 deletions
diff --git a/build.gradle b/build.gradle index 7b54cd47..87c86139 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ buildscript { jsr305Version = '3.0.2' junitVersion = '4.13' kotlinVersion = '1.3.71' - materialComponentsVersion = '1.1.0' + materialComponentsVersion = '1.2.0-alpha05' mavenPluginVersion = '2.1' preferenceVersion = '1.1.0' streamsupportVersion = '1.7.2' diff --git a/ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt b/ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt index fe828004..055c2f06 100644 --- a/ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt +++ b/ui/src/main/java/com/wireguard/android/databinding/BindingAdapters.kt @@ -151,4 +151,15 @@ object BindingAdapters { fun setInetAddressSetText(view: TextView, addresses: Iterable<InetAddress?>?) { view.text = if (addresses != null) Attribute.join(addresses.map { it?.hostAddress }) else "" } + + @JvmStatic + fun tryParseInt(s: String?): Int { + if (s == null) + return 0 + return try { + Integer.parseInt(s) + } catch (_: Exception) { + 0 + } + } } diff --git a/ui/src/main/res/layout/tunnel_editor_peer.xml b/ui/src/main/res/layout/tunnel_editor_peer.xml index f4d64e23..88c9044b 100644 --- a/ui/src/main/res/layout/tunnel_editor_peer.xml +++ b/ui/src/main/res/layout/tunnel_editor_peer.xml @@ -8,6 +8,8 @@ <import type="com.wireguard.android.widget.KeyInputFilter" /> + <import type="com.wireguard.android.databinding.BindingAdapters" /> + <variable name="collection" type="androidx.databinding.ObservableList<com.wireguard.android.viewmodel.PeerProxy>" /> @@ -104,6 +106,7 @@ android:layout_height="wrap_content" android:layout_margin="4dp" android:hint="@string/persistent_keepalive" + app:suffixText="@{@plurals/persistent_keepalive_seconds_suffix(BindingAdapters.tryParseInt(item.persistentKeepalive))}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/pre_shared_key_label_layout"> @@ -114,7 +117,7 @@ android:layout_height="wrap_content" android:hint="@string/hint_optional_discouraged" android:inputType="number" - android:text="@={item.persistentKeepalive}" /> + android:text="@={item.persistentKeepalive}"/> </com.google.android.material.textfield.TextInputLayout> <com.google.android.material.textfield.TextInputLayout diff --git a/ui/src/main/res/values/strings.xml b/ui/src/main/res/values/strings.xml index 41bb31ac..5539b24a 100644 --- a/ui/src/main/res/values/strings.xml +++ b/ui/src/main/res/values/strings.xml @@ -43,6 +43,10 @@ <item quantity="one">every second</item> <item quantity="other">every %d seconds</item> </plurals> + <plurals name="persistent_keepalive_seconds_suffix"> + <item quantity="one">second</item> + <item quantity="other">seconds</item> + </plurals> <string name="use_all_applications">Use all apps</string> <string name="add_peer">Add peer</string> <string name="addresses">Addresses</string> |