diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 1349f8cc..4a46ec8f 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -29,9 +29,6 @@
-
-
-
diff --git a/app/build.gradle b/app/build.gradle
index b541b5bf..3237d35b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -71,11 +71,11 @@ ext {
appcompatVersion = '1.1.0'
cardviewVersion = '1.0.0'
databindingVersion = '3.5.3'
- materialComponentsVersion = '1.0.0'
+ materialComponentsVersion = '1.1.0'
jsr305Version = '3.0.2'
preferenceVersion = '1.1.0'
streamsupportVersion = '1.7.1'
- threetenabpVersion = '1.2.1'
+ threetenabpVersion = '1.2.2'
// ZXING switched minSdk to 24 so we cannot upgrade to 4.0.2 without following suit.
// If you choose to upgrade to minSDK 24 then you should also disable Jetifier from
// gradle.properties.
diff --git a/app/sampledata/interface_names.json b/app/sampledata/interface_names.json
new file mode 100644
index 00000000..1c41cb22
--- /dev/null
+++ b/app/sampledata/interface_names.json
@@ -0,0 +1,34 @@
+{
+ "comment": "Interface names",
+ "names": [
+ {
+ "names": [
+ { "name": "wg0" },
+ { "name": "wg1" },
+ { "name": "wg2" },
+ { "name": "wg3" },
+ { "name": "wg4" },
+ { "name": "wg5" },
+ { "name": "wg6" },
+ { "name": "wg7" },
+ { "name": "wg8" },
+ { "name": "wg9" },
+ { "name": "wg10" },
+ { "name": "wg11" }
+ ],
+ "checked": [
+ { "checked": true },
+ { "checked": false },
+ { "checked": true },
+ { "checked": false },
+ { "checked": true },
+ { "checked": false },
+ { "checked": true },
+ { "checked": false },
+ { "checked": true },
+ { "checked": false },
+ { "checked": true }
+ ]
+ }
+ ]
+}
diff --git a/app/src/main/res/drawable/ic_action_add_white.xml b/app/src/main/res/drawable/ic_action_add_white.xml
index 0706462e..cbb4c4e6 100644
--- a/app/src/main/res/drawable/ic_action_add_white.xml
+++ b/app/src/main/res/drawable/ic_action_add_white.xml
@@ -4,6 +4,6 @@
android:viewportHeight="24.0"
android:viewportWidth="24.0">
diff --git a/app/src/main/res/drawable/ic_action_delete.xml b/app/src/main/res/drawable/ic_action_delete.xml
index 34f27019..d4ebd61f 100644
--- a/app/src/main/res/drawable/ic_action_delete.xml
+++ b/app/src/main/res/drawable/ic_action_delete.xml
@@ -4,6 +4,6 @@
android:viewportHeight="24"
android:viewportWidth="24">
diff --git a/app/src/main/res/drawable/ic_action_edit.xml b/app/src/main/res/drawable/ic_action_edit.xml
index 0a4d120e..fc42d2ef 100644
--- a/app/src/main/res/drawable/ic_action_edit.xml
+++ b/app/src/main/res/drawable/ic_action_edit.xml
@@ -4,6 +4,6 @@
android:viewportHeight="24"
android:viewportWidth="24">
diff --git a/app/src/main/res/drawable/ic_action_edit_white.xml b/app/src/main/res/drawable/ic_action_edit_white.xml
index c1ce5043..fa95f54b 100644
--- a/app/src/main/res/drawable/ic_action_edit_white.xml
+++ b/app/src/main/res/drawable/ic_action_edit_white.xml
@@ -4,6 +4,6 @@
android:viewportHeight="24"
android:viewportWidth="24">
diff --git a/app/src/main/res/drawable/ic_action_open.xml b/app/src/main/res/drawable/ic_action_open.xml
deleted file mode 100644
index ea56ba01..00000000
--- a/app/src/main/res/drawable/ic_action_open.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_action_open_white.xml b/app/src/main/res/drawable/ic_action_open_white.xml
index 74648d14..01b2815c 100644
--- a/app/src/main/res/drawable/ic_action_open_white.xml
+++ b/app/src/main/res/drawable/ic_action_open_white.xml
@@ -4,6 +4,6 @@
android:viewportHeight="24"
android:viewportWidth="24">
diff --git a/app/src/main/res/drawable/ic_action_save.xml b/app/src/main/res/drawable/ic_action_save.xml
index 690d119d..528bd997 100644
--- a/app/src/main/res/drawable/ic_action_save.xml
+++ b/app/src/main/res/drawable/ic_action_save.xml
@@ -5,6 +5,6 @@
android:viewportHeight="24"
android:viewportWidth="24">
diff --git a/app/src/main/res/drawable/ic_action_scan_qr_code_white.xml b/app/src/main/res/drawable/ic_action_scan_qr_code_white.xml
index cdd83361..2383d032 100644
--- a/app/src/main/res/drawable/ic_action_scan_qr_code_white.xml
+++ b/app/src/main/res/drawable/ic_action_scan_qr_code_white.xml
@@ -4,6 +4,6 @@
android:viewportHeight="24"
android:viewportWidth="24">
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_action_select_all.xml b/app/src/main/res/drawable/ic_action_select_all.xml
index 9c560297..28837423 100644
--- a/app/src/main/res/drawable/ic_action_select_all.xml
+++ b/app/src/main/res/drawable/ic_action_select_all.xml
@@ -5,6 +5,6 @@
android:viewportHeight="24"
android:viewportWidth="24">
diff --git a/app/src/main/res/drawable/list_item_background.xml b/app/src/main/res/drawable/list_item_background.xml
index f86d4df1..f967f700 100644
--- a/app/src/main/res/drawable/list_item_background.xml
+++ b/app/src/main/res/drawable/list_item_background.xml
@@ -3,15 +3,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
-
-
-
-
-
- -
-
+
-
+
diff --git a/app/src/main/res/layout/app_list_dialog_fragment.xml b/app/src/main/res/layout/app_list_dialog_fragment.xml
index 50e795d5..c91161e6 100644
--- a/app/src/main/res/layout/app_list_dialog_fragment.xml
+++ b/app/src/main/res/layout/app_list_dialog_fragment.xml
@@ -1,6 +1,7 @@
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
@@ -28,14 +29,17 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"
- android:visibility="@{appData.isEmpty() ? View.VISIBLE : View.GONE}" />
+ android:visibility="@{appData.isEmpty() ? View.VISIBLE : View.GONE}"
+ tools:visibility="gone" />
+ app:layout="@{@layout/app_list_item}"
+ tools:itemCount="10"
+ tools:listitem="@layout/app_list_item" />
diff --git a/app/src/main/res/layout/app_list_item.xml b/app/src/main/res/layout/app_list_item.xml
index 825b828b..382f2e82 100644
--- a/app/src/main/res/layout/app_list_item.xml
+++ b/app/src/main/res/layout/app_list_item.xml
@@ -1,5 +1,6 @@
-
+
@@ -31,7 +32,8 @@
android:id="@+id/app_icon"
android:layout_width="32dp"
android:layout_height="32dp"
- android:src="@{item.icon}" />
+ android:src="@{item.icon}"
+ tools:src="@tools:sample/avatars" />
+ android:text="@{key}"
+ tools:text="@tools:sample/full_names" />
+ android:checked="@={item.excludedFromTunnel}"
+ tools:checked="true" />
diff --git a/app/src/main/res/layout/tunnel_detail_fragment.xml b/app/src/main/res/layout/tunnel_detail_fragment.xml
index 23056ecf..40a79eb7 100644
--- a/app/src/main/res/layout/tunnel_detail_fragment.xml
+++ b/app/src/main/res/layout/tunnel_detail_fragment.xml
@@ -25,7 +25,7 @@
+ android:background="?attr/colorBackground">
diff --git a/app/src/main/res/layout/tunnel_detail_peer.xml b/app/src/main/res/layout/tunnel_detail_peer.xml
index 0f7ae336..181a4a21 100644
--- a/app/src/main/res/layout/tunnel_detail_peer.xml
+++ b/app/src/main/res/layout/tunnel_detail_peer.xml
@@ -18,7 +18,7 @@
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
- android:background="?android:attr/colorBackground"
+ android:background="?attr/colorBackground"
app:cardCornerRadius="4dp"
app:cardElevation="2dp"
app:contentPadding="8dp">
diff --git a/app/src/main/res/layout/tunnel_editor_fragment.xml b/app/src/main/res/layout/tunnel_editor_fragment.xml
index db91df2b..887b3bb7 100644
--- a/app/src/main/res/layout/tunnel_editor_fragment.xml
+++ b/app/src/main/res/layout/tunnel_editor_fragment.xml
@@ -28,7 +28,7 @@
android:id="@+id/main_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="?android:attr/colorBackground">
+ android:background="?attr/colorBackground">
@@ -104,7 +104,7 @@