summaryrefslogtreecommitdiff
path: root/main/src/ui/res/layout
diff options
context:
space:
mode:
authorArne Schwabe <arne@rfc2549.org>2019-08-02 12:50:57 +0200
committerArne Schwabe <arne@rfc2549.org>2019-08-05 16:01:34 +0200
commit32b080261845c7508581f9c452d48ffd2401c450 (patch)
tree76d194fedd0ec9e9250a96b4157aa32b3eead627 /main/src/ui/res/layout
parentf72ab87b31044eb5df3a8b6ed802208444d226e3 (diff)
Add skeleton build variant
Diffstat (limited to 'main/src/ui/res/layout')
-rw-r--r--main/src/ui/res/layout/about.xml207
-rw-r--r--main/src/ui/res/layout/allowed_application_layout.xml61
-rw-r--r--main/src/ui/res/layout/allowed_application_settings.xml65
-rw-r--r--main/src/ui/res/layout/allowed_vpn_apps.xml47
-rw-r--r--main/src/ui/res/layout/basic_settings.xml244
-rw-r--r--main/src/ui/res/layout/config_converter.xml81
-rw-r--r--main/src/ui/res/layout/connection_fab.xml11
-rw-r--r--main/src/ui/res/layout/connections.xml74
-rw-r--r--main/src/ui/res/layout/extauth_provider.xml70
-rw-r--r--main/src/ui/res/layout/faq.xml15
-rw-r--r--main/src/ui/res/layout/faqcard.xml41
-rw-r--r--main/src/ui/res/layout/file_dialog.xml19
-rw-r--r--main/src/ui/res/layout/file_dialog_inline.xml27
-rw-r--r--main/src/ui/res/layout/file_dialog_main.xml71
-rw-r--r--main/src/ui/res/layout/file_dialog_row.xml31
-rw-r--r--main/src/ui/res/layout/file_select.xml77
-rw-r--r--main/src/ui/res/layout/fragment_senddump.xml38
-rw-r--r--main/src/ui/res/layout/graph.xml33
-rw-r--r--main/src/ui/res/layout/graph_item.xml30
-rw-r--r--main/src/ui/res/layout/keystore_selector.xml85
-rw-r--r--main/src/ui/res/layout/log_fragment.xml37
-rw-r--r--main/src/ui/res/layout/log_silders.xml73
-rw-r--r--main/src/ui/res/layout/log_window.xml12
-rw-r--r--main/src/ui/res/layout/main_activity.xml18
-rw-r--r--main/src/ui/res/layout/openssl_speed.xml40
-rw-r--r--main/src/ui/res/layout/padersliding_tab.xml13
-rw-r--r--main/src/ui/res/layout/profile_list_fabs.xml7
-rw-r--r--main/src/ui/res/layout/save_fab.xml11
-rw-r--r--main/src/ui/res/layout/server_card.xml403
-rw-r--r--main/src/ui/res/layout/server_footer.xml13
-rw-r--r--main/src/ui/res/layout/settings_usereditable.xml30
-rw-r--r--main/src/ui/res/layout/share_fab.xml9
-rw-r--r--main/src/ui/res/layout/speedviewitem.xml54
-rw-r--r--main/src/ui/res/layout/tabs.xml12
-rw-r--r--main/src/ui/res/layout/tlsremote.xml50
-rw-r--r--main/src/ui/res/layout/viewconfig.xml23
-rw-r--r--main/src/ui/res/layout/vpn_list_item.xml86
-rw-r--r--main/src/ui/res/layout/vpn_profile_list.xml79
-rw-r--r--main/src/ui/res/layout/vpnstatus.xml52
39 files changed, 2349 insertions, 0 deletions
diff --git a/main/src/ui/res/layout/about.xml b/main/src/ui/res/layout/about.xml
new file mode 100644
index 00000000..8b40520b
--- /dev/null
+++ b/main/src/ui/res/layout/about.xml
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingLeft="@dimen/stdpadding"
+ android:scrollbarStyle="outsideOverlay"
+ android:paddingRight="@dimen/stdpadding" >
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/version"
+ tools:text="OpenVPN for Anroid 1.2.3"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ tools:ignore="SelectableText" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="6sp" />
+
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:autoLink="all"
+ android:text="@string/copyright_blinktgui" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="12sp" />
+ <TextView
+ android:id="@+id/version_ovpn2"
+
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ tools:text="OpenVPN version 874981723" />
+ <TextView
+ android:id="@+id/version_ovpn3"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ tools:text="OpenVPN3 core version 8df8718283" />
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="12sp" />
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:autoLink="all"
+ android:text="@string/copyright_logo" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="12sp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:autoLink="all"
+ android:text="@string/copyright_guicode" />
+
+
+ <TextView
+ android:paddingTop="12sp"
+ android:id="@+id/donategms"
+ android:text="@string/donatePlayStore"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ tools:ignore="SelectableText"/>
+
+
+ <TextView
+ android:id="@+id/translation"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:autoLink="all"
+ tools:ignore="SelectableText" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="12sp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:autoLink="all"
+ android:text="@string/help_translate" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="12sp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/copyright_others" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="12sp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/openvpn"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+ <!--
+ ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:contentDescription="@string/openvpn_logo_descr"
+ android:src="@drawable/openvpnLogo" />
+ -->
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/opevpn_copyright" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="20sp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/file_dialog"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/copyright_file_dialog" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="20sp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/lzo"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/lzo_copyright" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="20sp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/openssl"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/copyright_openssl" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="20sp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/bouncy_castle"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/copyright_bouncycastle" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="150dp" />
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/full_licenses"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:id="@+id/full_licenses"
+ android:layout_gravity="center_horizontal" />
+ </LinearLayout>
+
+</ScrollView>
diff --git a/main/src/ui/res/layout/allowed_application_layout.xml b/main/src/ui/res/layout/allowed_application_layout.xml
new file mode 100644
index 00000000..d8d846f9
--- /dev/null
+++ b/main/src/ui/res/layout/allowed_application_layout.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:paddingTop="8dip"
+ android:paddingBottom="8dip"
+ android:columnCount="4"
+ tools:ignore="RtlCompat">
+
+ <ImageView
+ android:id="@+id/app_icon"
+ android:layout_width="@android:dimen/app_icon_size"
+ android:layout_height="@android:dimen/app_icon_size"
+ android:layout_rowSpan="1"
+ android:layout_marginEnd="8dip"
+ android:scaleType="centerInside"
+ tools:background="@drawable/icon"
+ android:contentDescription="@null" />
+
+ <TextView
+ tools:text="@string/app"
+ android:id="@+id/app_name"
+ android:layout_width="0dip"
+ android:layout_columnSpan="2"
+ android:layout_rowSpan="1"
+ android:layout_gravity="fill_horizontal|center_vertical"
+ android:layout_marginTop="2dip"
+ android:singleLine="true"
+ android:ellipsize="marquee"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textAlignment="viewStart" />
+
+ <CheckBox android:id="@+id/app_selected"
+ android:layout_marginStart="8dip"
+ android:layout_gravity="center_vertical"
+ android:layout_rowSpan="1"
+ android:visibility="visible" />
+
+<!-- <TextView
+ android:id="@+id/app_size"
+ android:layout_width="0dip"
+ android:layout_gravity="fill_horizontal|top"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textAlignment="viewStart" /> -->
+
+ <!-- <TextView
+ android:id="@+id/app_disabled"
+ android:layout_marginStart="8dip"
+ android:layout_gravity="top"
+ android:textAppearance="?android:attr/textAppearanceSmall" /> -->
+
+</GridLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/allowed_application_settings.xml b/main/src/ui/res/layout/allowed_application_settings.xml
new file mode 100644
index 00000000..96170965
--- /dev/null
+++ b/main/src/ui/res/layout/allowed_application_settings.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2019 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ tools:ignore="RtlCompat"
+ android:layout_marginTop="10dp">
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/actionBarSize"
+ android:background="@drawable/bg_switchbar"
+ android:paddingStart="@dimen/switchbar_pad"
+ android:elevation="1dp"
+ android:paddingEnd="@dimen/switchbar_pad"
+ >
+
+ <Switch
+ android:id="@+id/default_allow"
+ android:layout_alignParentEnd="true"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ />
+ <TextView
+ android:id="@+id/default_allow_text"
+ style="@android:style/TextAppearance.Medium.Inverse"
+ tools:text="@string/vpn_disallow_radio"
+ android:layout_toStartOf="@id/default_allow"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+
+ </RelativeLayout>
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/actionBarSize"
+ android:background="@drawable/bg_switchbar"
+ android:paddingStart="@dimen/switchbar_pad"
+ android:elevation="1dp"
+ android:paddingEnd="@dimen/switchbar_pad"
+ >
+
+ <Switch
+ android:id="@+id/allow_bypass"
+ android:layout_alignParentEnd="true"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+
+ />
+ <TextView
+ style="@android:style/TextAppearance.Medium.Inverse"
+ android:text="@string/vpn_allow_bypass"
+ android:layout_toStartOf="@id/allow_bypass"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+ </RelativeLayout>
+</LinearLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/allowed_vpn_apps.xml b/main/src/ui/res/layout/allowed_vpn_apps.xml
new file mode 100644
index 00000000..7f5e7b8b
--- /dev/null
+++ b/main/src/ui/res/layout/allowed_vpn_apps.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ tools:ignore="RtlCompat">
+
+ <ListView
+ android:id="@android:id/list"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:clipToPadding="false"
+ android:drawSelectorOnTop="false"
+ android:scrollbarStyle="outsideOverlay"
+ android:visibility="gone" />
+
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:visibility="visible">
+
+ <ProgressBar
+ style="?android:attr/progressBarStyleLarge"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingTop="4dip"
+ android:singleLine="true"
+ android:text="@string/loading"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ </LinearLayout>
+
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/basic_settings.xml b/main/src/ui/res/layout/basic_settings.xml
new file mode 100644
index 00000000..66f8b1fa
--- /dev/null
+++ b/main/src/ui/res/layout/basic_settings.xml
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:blinkt="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="wrap_content"
+ android:padding="@dimen/vpn_setting_padding"
+ android:layout_height="wrap_content" >
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="4dp" >
+
+ <TextView
+ style="@style/item"
+ android:text="@string/profilename"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ />
+
+ <EditText
+ android:id="@+id/profilename"
+ style="@style/item"
+ android:inputType="text" />
+
+
+
+ <CheckBox
+ android:id="@+id/lzo"
+ style="@style/item"
+ android:text="@string/useLZO" />
+
+ <TextView
+ style="@style/item"
+ android:text="@string/vpn_type"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <Spinner
+ android:id="@+id/type"
+ style="@style/item"
+ android:entries="@array/vpn_types"
+ android:prompt="@string/vpn_type" />
+
+ <LinearLayout
+ android:id="@+id/keystore"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone"
+ tools:visibility="gone">
+
+ <include layout="@layout/keystore_selector" />
+
+ <TextView
+ style="@style/item"
+ android:singleLine="false"
+ android:text="@string/extracahint"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/external_auth"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone"
+ tools:visibility="gone">
+
+ <include layout="@layout/extauth_provider"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/cacert"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ tools:visibility="visible"
+ android:visibility="gone" >
+
+ <de.blinkt.openvpn.views.FileSelectLayout
+ android:id="@+id/caselect"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ blinkt:showClear="true"
+ blinkt:fileTitle="@string/ca_title" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/certs"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone" >
+
+ <de.blinkt.openvpn.views.FileSelectLayout
+ android:id="@+id/certselect"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ blinkt:fileTitle="@string/client_certificate_title" />
+
+ <de.blinkt.openvpn.views.FileSelectLayout
+ android:id="@+id/keyselect"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ blinkt:certificate="false"
+ blinkt:fileTitle="@string/client_key_title" />
+
+ <LinearLayout
+ android:id="@+id/key_password_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone"
+ tools:visibility="visible">
+
+ <TextView
+ style="@style/item"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:text="@string/private_key_password"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <EditText
+ android:id="@+id/key_password"
+ style="@style/item"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:hint="@string/pw_query_hint"
+ android:inputType="textPassword" />
+ </LinearLayout>
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/pkcs12"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone" >
+
+ <de.blinkt.openvpn.views.FileSelectLayout
+ android:id="@+id/pkcs12select"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ blinkt:certificate="false"
+ blinkt:fileTitle="@string/client_pkcs12_title" />
+
+ <TextView
+ style="@style/item"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:text="@string/pkcs12pwquery"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <EditText
+ android:id="@+id/pkcs12password"
+ style="@style/item"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:hint="@string/pw_query_hint"
+ android:inputType="textPassword" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/userpassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ tools:visibility="visible"
+ android:visibility="gone" >
+
+ <TextView
+ style="@style/item"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:text="@string/auth_username"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <EditText
+ android:id="@+id/auth_username"
+ style="@style/item"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:inputType="textNoSuggestions" />
+
+ <TextView
+ style="@style/item"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:text="@string/auth_pwquery"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <EditText
+ android:id="@+id/auth_password"
+ style="@style/item"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:hint="@string/pw_query_hint"
+ android:inputType="textPassword" />
+
+ <TextView
+ style="@style/item"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:text="@string/auth_failed_behaviour"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <Spinner
+ android:id="@+id/auth_retry"
+ style="@style/item"
+ android:layout_marginLeft="8dip"
+ android:layout_marginRight="8dip"
+ android:prompt="@string/auth_failed_behaviour"
+ android:entries="@array/auth_retry_type"
+ />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/statickeys"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone" >
+
+ <TextView
+ style="@style/item"
+ android:singleLine="false"
+ android:text="@string/static_keys_info" />
+ </LinearLayout>
+ <de.blinkt.openvpn.views.FileSelectLayout
+ android:id="@+id/crlfile"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ blinkt:certificate="false"
+ blinkt:showClear="true"
+ blinkt:fileTitle="@string/crl_title" />
+ </LinearLayout>
+
+</ScrollView>
diff --git a/main/src/ui/res/layout/config_converter.xml b/main/src/ui/res/layout/config_converter.xml
new file mode 100644
index 00000000..4070ff7c
--- /dev/null
+++ b/main/src/ui/res/layout/config_converter.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+<ScrollView android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_margin="@dimen/stdpadding"
+ android:orientation="vertical">
+
+
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:id="@+id/config_convert_root"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:visibility="gone"
+ android:id="@+id/profilename_label"
+ style="@style/item"
+ android:labelFor="@id/profilename"
+ android:text="@string/profilename"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ />
+
+ <EditText
+ android:visibility="gone"
+ android:id="@+id/profilename"
+ style="@style/item"
+ android:inputType="text" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/files_missing_hint"
+ android:visibility="gone"
+ android:id="@+id/files_missing_hint"
+ tools:visibilty="visible"/>
+
+ <TextView
+ android:text="@string/query_permissions_sdcard"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ tools:visibility="visible"
+ android:visibility="gone"
+ android:id="@+id/permssion_hint"
+ android:padding="5dp"
+ android:textStyle="bold" />
+
+ <CheckBox
+ android:id="@+id/importpkcs12"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:checked="true"
+ tools:visibilty="visible"
+ android:text="@string/importpkcs12fromconfig"
+ android:visibility="gone"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="10dp"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:text="@string/import_log"
+ android:id="@+id/textView"/>
+ <Space
+ android:id="@+id/fab_footerspace"
+ android:visibility="gone"
+ android:layout_width="40dp"
+ android:layout_height="@dimen/round_button_diameter" />
+ </LinearLayout>
+
+ </ScrollView>
+ <include layout="@layout/save_fab" />
+</RelativeLayout>
diff --git a/main/src/ui/res/layout/connection_fab.xml b/main/src/ui/res/layout/connection_fab.xml
new file mode 100644
index 00000000..681348e5
--- /dev/null
+++ b/main/src/ui/res/layout/connection_fab.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical" android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+</merge> \ No newline at end of file
diff --git a/main/src/ui/res/layout/connections.xml b/main/src/ui/res/layout/connections.xml
new file mode 100644
index 00000000..598ddd92
--- /dev/null
+++ b/main/src/ui/res/layout/connections.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+
+ <RelativeLayout
+ android:animateLayoutChanges="true"
+ android:id="@+id/switchBar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/actionBarSize"
+ android:background="@drawable/bg_switchbar"
+ android:elevation="1dp"
+ android:paddingStart="@dimen/switchbar_pad"
+ android:paddingEnd="@dimen/switchbar_pad"
+ >
+ <Switch
+ android:id="@+id/remote_random"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+ <TextView
+ android:id="@+id/default_allow_text"
+ style="@android:style/TextAppearance.Medium.Inverse"
+ android:text="@string/remote_random"
+ android:layout_toStartOf="@id/remote_random"
+ android:layout_toLeftOf="@id/remote_random"
+ android:layout_width="wrap_content"
+ android:layout_centerVertical="true"
+ android:layout_height="wrap_content" />
+
+ </RelativeLayout>
+
+
+
+ <android.support.v7.widget.RecyclerView
+ android:layout_margin="@dimen/vpn_setting_padding"
+ android:id="@+id/connection_recycler_view"
+ android:layout_below="@id/switchBar"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:verticalSpacing="@dimen/stdpadding"
+ android:horizontalSpacing="@dimen/stdpadding"
+ />
+
+
+ <TextView
+ android:id="@+id/noserver_active_warning"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_margin="10dp"
+ android:background="@drawable/white_rect"
+ android:drawableLeft="@drawable/ic_dialog_alert"
+ android:drawableStart="@drawable/ic_dialog_alert"
+ android:drawablePadding="10dp"
+ android:elevation="2dp"
+ android:gravity="center_vertical"
+ android:padding="@dimen/stdpadding"
+ android:text="@string/remote_no_server_selected"
+ android:visibility="visible"
+ tools:visibility="visible" />
+
+ <include layout="@layout/connection_fab" />
+
+</RelativeLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/extauth_provider.xml b/main/src/ui/res/layout/extauth_provider.xml
new file mode 100644
index 00000000..69d1f3d8
--- /dev/null
+++ b/main/src/ui/res/layout/extauth_provider.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- A layout to select a certificate, akin to a file selector on web pages. -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_margin="8dip"
+ android:gravity="center_vertical">
+ <TextView
+ android:textStyle="bold"
+ android:id="@+id/extauth_title"
+ style="@style/item"
+ android:text="@string/external_authenticator"
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
+
+ <Spinner
+ android:id="@+id/extauth_spinner"
+ style="@style/item"
+ android:layout_below="@id/extauth_title"
+ android:layout_marginBottom="20dp"
+ />
+
+ <Button
+ android:layout_below="@id/extauth_spinner"
+ android:id="@+id/configure_extauth_button"
+ style="@style/accountSetupButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:text="@string/configure"/>
+
+ <TextView
+ android:layout_below="@id/extauth_spinner"
+ android:id="@+id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_toLeftOf="@+id/select_keystore_button"
+ android:text="@string/client_certificate_title"
+ android:textStyle="bold"
+ android:layout_alignParentStart="true"
+ android:layout_toStartOf="@+id/select_keystore_button"/>
+
+ <TextView
+ android:id="@+id/extauth_detail"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_below="@+id/title"
+ android:layout_marginLeft="16dip"
+ android:layout_toLeftOf="@+id/select_keystore_button"
+ android:ellipsize="end"
+ android:singleLine="false"
+ android:text="@string/no_certificate"/>
+</RelativeLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/faq.xml b/main/src/ui/res/layout/faq.xml
new file mode 100644
index 00000000..aa3febd0
--- /dev/null
+++ b/main/src/ui/res/layout/faq.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/faq_recycler_view"
+ android:paddingLeft="@dimen/stdpadding"
+ android:paddingRight="@dimen/stdpadding"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:verticalSpacing="@dimen/stdpadding"
+ android:horizontalSpacing="@dimen/stdpadding"
+ /> \ No newline at end of file
diff --git a/main/src/ui/res/layout/faqcard.xml b/main/src/ui/res/layout/faqcard.xml
new file mode 100644
index 00000000..360f3752
--- /dev/null
+++ b/main/src/ui/res/layout/faqcard.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:card_view="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ card_view:cardCornerRadius="10dp"
+ android:elevation="10dp"
+ android:layout_margin="10dp"
+ android:layout_height="wrap_content">
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <TextView
+ style="@style/faqhead"
+ android:paddingLeft="10dp"
+ android:paddingRight="10dp"
+ android:paddingTop="10dp"
+ android:paddingBottom="5dp"
+ android:id="@+id/faq_head"
+ android:elevation="5dp"
+ tools:text="@string/faq_howto_title" />
+
+ <TextView
+ android:paddingLeft="10dp"
+ android:paddingRight="10dp"
+ android:paddingTop="5dp"
+ android:paddingBottom="10dp"
+ android:id="@+id/faq_body"
+ style="@style/faqitem"
+ tools:text="@string/faq_howto"
+ tools:ignore="SelectableText" />
+
+ </LinearLayout>
+</android.support.v7.widget.CardView>
diff --git a/main/src/ui/res/layout/file_dialog.xml b/main/src/ui/res/layout/file_dialog.xml
new file mode 100644
index 00000000..b068015e
--- /dev/null
+++ b/main/src/ui/res/layout/file_dialog.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <LinearLayout
+ android:id="@+id/fragment_place"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" >
+ </LinearLayout>
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/file_dialog_inline.xml b/main/src/ui/res/layout/file_dialog_inline.xml
new file mode 100644
index 00000000..6525da7f
--- /dev/null
+++ b/main/src/ui/res/layout/file_dialog_inline.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
+<!-- The header already states Inline File
+ <TextView
+ android:id="@+id/textView1"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Inline File Data"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+ -->
+ <EditText
+ android:id="@+id/inlineFileData"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:inputType="textMultiLine|textNoSuggestions"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/file_dialog_main.xml b/main/src/ui/res/layout/file_dialog_main.xml
new file mode 100644
index 00000000..8df879f0
--- /dev/null
+++ b/main/src/ui/res/layout/file_dialog_main.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/relativeLayout01"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <LinearLayout
+ android:id="@+id/fdLinearLayoutList"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:orientation="horizontal" >
+
+ <Button
+ android:id="@+id/fdButtonSelect"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/select_file" >
+ </Button>
+
+ <CheckBox
+ android:id="@+id/doinline"
+ android:checked="true"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/make_selection_inline" />
+
+ <Space
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1" />
+
+ <Button
+ android:id="@+id/fdClear"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="right"
+ android:text="@string/clear" >
+ </Button>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:layout_above="@+id/fdLinearLayoutList"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/path"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content" />
+
+ <ListView
+ android:id="@android:id/list"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent" />
+
+ <TextView
+ android:id="@android:id/empty"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:text="@string/no_data" />
+ </LinearLayout>
+
+</RelativeLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/file_dialog_row.xml b/main/src/ui/res/layout/file_dialog_row.xml
new file mode 100644
index 00000000..e2c1e0de
--- /dev/null
+++ b/main/src/ui/res/layout/file_dialog_row.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="wrap_content"
+ android:orientation="horizontal"
+ android:layout_height="wrap_content">
+
+ <ImageView
+ android:id="@+id/fdrowimage"
+ android:layout_width="wrap_content"
+ android:layout_height="35dp"
+ tools:background="@drawable/ic_root_folder_am"
+ android:paddingLeft="3dp"
+ android:paddingRight="5dp" android:contentDescription="@string/file_icon"/>
+
+ <TextView
+ android:id="@+id/fdrowtext"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:layout_gravity="center_vertical"
+ tools:text="foo, die datei,"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/file_select.xml b/main/src/ui/res/layout/file_select.xml
new file mode 100644
index 00000000..b6b2091a
--- /dev/null
+++ b/main/src/ui/res/layout/file_select.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- A layout to select a certificate, akin to a file selector on web pages. -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_margin="8dip"
+ android:gravity="center_vertical">
+
+<Button
+ android:id="@+id/file_select_button"
+ style="@style/accountSetupButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:text="@string/file_select" />
+
+ <Button
+ android:id="@+id/file_clear_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:layout_toLeftOf="@id/file_select_button"
+ android:visibility="gone"
+ tools:visibility="visible"
+ android:text="@string/clear"/>
+
+ <TextView
+ android:id="@+id/file_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentTop="true"
+ android:layout_toLeftOf="@+id/file_clear_button"
+ android:text="@string/client_certificate_title"
+ android:textStyle="bold" />
+
+ <TextView
+ android:id="@+id/file_selected_item"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_below="@+id/file_title"
+ android:layout_marginLeft="16dip"
+ android:layout_toLeftOf="@+id/file_clear_button"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:text="@string/file_nothing_selected" />
+
+ <TextView
+ android:id="@+id/file_selected_description"
+ android:layout_width="wrap_content"
+ android:textIsSelectable="true"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_below="@+id/file_selected_item"
+ android:layout_marginLeft="16dip"
+ android:layout_toLeftOf="@+id/file_select_button"
+ android:ellipsize="end" />
+
+</RelativeLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/fragment_senddump.xml b/main/src/ui/res/layout/fragment_senddump.xml
new file mode 100644
index 00000000..02ebed33
--- /dev/null
+++ b/main/src/ui/res/layout/fragment_senddump.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/RelativeLayout1"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ android:orientation="vertical">
+
+ <Button
+ android:id="@+id/senddump"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_centerVertical="true"
+ android:text="@string/send_minidump" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/send_minidump_summary"
+ android:layout_below="@id/senddump"
+ android:layout_centerHorizontal="true"
+ android:text="@string/send_minidump_summary" />
+ <TextView
+ android:id="@+id/dumpdate"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/send_minidump_summary"
+ android:layout_centerHorizontal="true"
+ tools:text="Last dump is 8237283892" />
+
+</RelativeLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/graph.xml b/main/src/ui/res/layout/graph.xml
new file mode 100644
index 00000000..d734623e
--- /dev/null
+++ b/main/src/ui/res/layout/graph.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2017 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+
+ <TextView
+ android:id="@+id/speedStatus"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ tools:text="some speed status" />
+
+ <CheckBox
+ android:id="@+id/useLogScale"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_above="@id/speedStatus"
+ android:text="@string/use_logarithmic_scale" />
+
+ <ListView
+ android:id="@+id/graph_listview"
+ android:layout_above="@id/useLogScale"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+
+</RelativeLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/graph_item.xml b/main/src/ui/res/layout/graph_item.xml
new file mode 100644
index 00000000..da90342b
--- /dev/null
+++ b/main/src/ui/res/layout/graph_item.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2017 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:padding="8dp">
+
+ <TextView
+ android:id="@+id/tvName"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentTop="true"
+ android:layout_marginLeft="4dp"
+ android:layout_marginStart="4dp"
+ tools:text="Medium Text"
+ android:textSize="16sp" />
+
+ <com.github.mikephil.charting.charts.LineChart
+ android:layout_below="@id/tvName"
+ android:id="@+id/chart"
+ android:layout_width="match_parent"
+ android:layout_height="200dp" />
+
+</RelativeLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/keystore_selector.xml b/main/src/ui/res/layout/keystore_selector.xml
new file mode 100644
index 00000000..d0b24892
--- /dev/null
+++ b/main/src/ui/res/layout/keystore_selector.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- A layout to select a certificate, akin to a file selector on web pages. -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_margin="8dip"
+ android:gravity="center_vertical">
+
+ <Button
+ android:id="@+id/select_keystore_button"
+ style="@style/accountSetupButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:text="@string/select"
+ android:layout_alignParentEnd="true" />
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentTop="true"
+ android:layout_toLeftOf="@+id/select_keystore_button"
+ android:text="@string/client_certificate_title"
+ android:textStyle="bold"
+ android:layout_alignParentStart="true"
+ android:layout_toStartOf="@+id/select_keystore_button" />
+
+ <TextView
+ android:id="@+id/aliasname"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_below="@+id/title"
+ android:layout_marginLeft="16dip"
+ android:layout_toLeftOf="@+id/select_keystore_button"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:text="@string/no_certificate"
+ android:layout_alignParentStart="true"
+ android:layout_marginStart="16dip"
+ android:layout_toStartOf="@+id/select_keystore_button" />
+
+ <TextView
+ android:id="@+id/alias_certificate"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_marginLeft="16dip"
+ android:layout_below="@id/aliasname"
+ android:layout_toLeftOf="@+id/select_keystore_button"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:layout_alignParentStart="true"
+ android:layout_marginStart="16dip"
+ android:layout_toStartOf="@+id/select_keystore_button" />
+ <!-- android:textColor="@color/text_secondary_color" -->
+
+ <Button
+ android:id="@+id/install_keystore_button"
+ style="@style/accountSetupButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/alias_certificate"
+ android:layout_alignParentRight="true"
+ android:text="@string/install_keychain"
+ android:layout_alignParentEnd="true" />
+</RelativeLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/log_fragment.xml b/main/src/ui/res/layout/log_fragment.xml
new file mode 100644
index 00000000..ab070117
--- /dev/null
+++ b/main/src/ui/res/layout/log_fragment.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:background="@drawable/white_rect"
+ android:elevation="1dp"
+ android:orientation="vertical"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent">
+
+ <include layout="@layout/log_silders"/>
+
+ <TextView
+ android:text="@string/speed_waiting"
+ android:singleLine="true"
+ android:id="@+id/speed"
+ tools:ignore="InconsistentLayout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+ </LinearLayout>
+
+ <ListView
+ android:id="@android:id/list"
+ android:transcriptMode="normal"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"/>
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/log_silders.xml b/main/src/ui/res/layout/log_silders.xml
new file mode 100644
index 00000000..4196e243
--- /dev/null
+++ b/main/src/ui/res/layout/log_silders.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<LinearLayout
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:id="@+id/logOptionsLayout"
+ android:visibility="gone"
+ tools:visibility="visible"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/log_verbosity_level"/>
+
+
+ <de.blinkt.openvpn.views.SeekBarTicks
+ android:id="@+id/LogLevelSlider"
+ android:layout_width="300dp"
+ android:layout_height="wrap_content"
+ tools:max="5"
+ android:indeterminate="false"/>
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/timestamps"/>
+
+ <RadioGroup
+ android:id="@+id/timeFormatRadioGroup"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <RadioButton
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/timestamps_none"
+ android:id="@+id/radioNone"
+ />
+
+ <RadioButton
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/timestamp_short"
+ android:id="@+id/radioShort"
+ />
+
+ <RadioButton
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/timestamp_iso"
+ android:id="@+id/radioISO"
+ />
+
+
+ </RadioGroup>
+
+ <CheckBox
+ tools:checked="true"
+ android:id="@+id/clearlogconnect"
+ android:text="@string/clear_log_on_connect"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+</LinearLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/log_window.xml b/main/src/ui/res/layout/log_window.xml
new file mode 100644
index 00000000..7c25dcfa
--- /dev/null
+++ b/main/src/ui/res/layout/log_window.xml
@@ -0,0 +1,12 @@
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".LogWindow"
+ tools:ignore="MergeRootFrame" /> \ No newline at end of file
diff --git a/main/src/ui/res/layout/main_activity.xml b/main/src/ui/res/layout/main_activity.xml
new file mode 100644
index 00000000..7b6caf00
--- /dev/null
+++ b/main/src/ui/res/layout/main_activity.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <include layout="@layout/tabs" />
+
+ <android.support.v4n.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/pager"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+</LinearLayout>
diff --git a/main/src/ui/res/layout/openssl_speed.xml b/main/src/ui/res/layout/openssl_speed.xml
new file mode 100644
index 00000000..c23d3567
--- /dev/null
+++ b/main/src/ui/res/layout/openssl_speed.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2017 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+
+
+ <EditText
+ android:id="@+id/ciphername"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ems="10"
+ android:text="@string/default_cipherlist_test"
+ android:hint="@string/openssl_cipher_name"
+ android:inputType="textPersonName" />
+
+ <Button
+ android:id="@+id/testSpecific"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/test_algoirhtms" />
+ </LinearLayout>
+
+ <ListView
+ android:id="@+id/results"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+</LinearLayout>
diff --git a/main/src/ui/res/layout/padersliding_tab.xml b/main/src/ui/res/layout/padersliding_tab.xml
new file mode 100644
index 00000000..07c8daa9
--- /dev/null
+++ b/main/src/ui/res/layout/padersliding_tab.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/tab_title"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:singleLine="true" /> \ No newline at end of file
diff --git a/main/src/ui/res/layout/profile_list_fabs.xml b/main/src/ui/res/layout/profile_list_fabs.xml
new file mode 100644
index 00000000..34beb58a
--- /dev/null
+++ b/main/src/ui/res/layout/profile_list_fabs.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<merge /> \ No newline at end of file
diff --git a/main/src/ui/res/layout/save_fab.xml b/main/src/ui/res/layout/save_fab.xml
new file mode 100644
index 00000000..681348e5
--- /dev/null
+++ b/main/src/ui/res/layout/save_fab.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical" android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+</merge> \ No newline at end of file
diff --git a/main/src/ui/res/layout/server_card.xml b/main/src/ui/res/layout/server_card.xml
new file mode 100644
index 00000000..3b214bbb
--- /dev/null
+++ b/main/src/ui/res/layout/server_card.xml
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:card_view="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="@dimen/stdpadding">
+ <!-- A CardView that contains a TextView -->
+ <android.support.v7.widget.CardView
+ android:id="@+id/card_view"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ card_view:cardCornerRadius="10dp">
+
+
+ <RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:animateLayoutChanges="true"
+ android:padding="5dp">
+
+
+ <TextView
+ android:id="@+id/port_label"
+ style="@style/item"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentRight="true"
+ android:text="@string/port"
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
+
+
+ <TextView
+ android:layout_toLeftOf="@id/port_label"
+ android:layout_toStartOf="@id/port_label"
+ android:id="@+id/server_label"
+ style="@style/item"
+ android:text="@string/address"
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
+
+
+ <EditText
+ android:id="@+id/portnumber"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentRight="true"
+
+ android:layout_below="@id/port_label"
+ android:inputType="numberDecimal"
+ android:text="1194"
+ android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
+ tools:ignore="HardcodedText"/>
+
+
+ <EditText
+ android:id="@+id/servername"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:layout_below="@id/server_label"
+ android:layout_toLeftOf="@id/portnumber"
+ android:layout_toStartOf="@id/portnumber"
+ android:inputType="textUri"
+ android:singleLine="true"
+ tools:text="openvpn.blinkt.de"
+ android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
+ tools:ignore="HardcodedText"/>
+
+ <TextView
+ android:id="@+id/protocol"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/servername"
+ android:paddingTop="10dp"
+ android:text="@string/protocol"/>
+
+ <RadioGroup
+ android:id="@+id/udptcpradiogroup"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/protocol"
+ android:orientation="horizontal"
+ android:paddingStart="20dp"
+ android:paddingEnd="20dp"
+ android:paddingRight="20dp"
+ android:paddingLeft="20dp">
+
+ <RadioButton
+ android:id="@+id/udp_proto"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="UDP"
+ tools:ignore="HardcodedText"/>
+
+ <Space
+ android:layout_width="20dp"
+ android:layout_height="wrap_content"/>
+
+ <RadioButton
+ android:id="@+id/tcp_proto"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="TCP"
+ tools:ignore="HardcodedText"/>
+ </RadioGroup>
+
+ <TextView
+ android:id="@+id/proxy_label"
+ android:layout_below="@id/udptcpradiogroup"
+ android:text="@string/proxy"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ />
+
+ <de.blinkt.openvpn.views.MultiLineRadioGroup
+ android:id="@+id/proxyradiogroup"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/proxy_label"
+ android:orientation="horizontal"
+ android:paddingStart="20dp"
+ android:paddingEnd="20dp"
+ android:paddingRight="20dp"
+ android:paddingLeft="20dp">
+ <RadioButton
+ android:id="@+id/proxy_none"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/Use_no_proxy"/>
+
+ <Space
+ android:layout_width="10dp"
+ android:layout_height="wrap_content"/>
+
+ <RadioButton
+ android:id="@+id/proxy_http"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="HTTP"
+ tools:ignore="HardcodedText"/>
+
+ <Space
+ android:layout_width="10dp"
+ android:layout_height="wrap_content"/>
+
+ <RadioButton
+ android:id="@+id/proxy_socks"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Socksv5"
+ tools:ignore="HardcodedText"/>
+
+ <Space
+ android:layout_width="10dp"
+ android:layout_height="wrap_content"/>
+
+ <RadioButton
+ android:id="@+id/proxy_orbot"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/tor_orbot"
+ />
+
+ </de.blinkt.openvpn.views.MultiLineRadioGroup>
+ <TextView
+ android:id="@+id/proxyport_label"
+ style="@style/item"
+ android:layout_below="@id/proxyradiogroup"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentRight="true"
+ android:text="@string/port"
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
+
+
+ <TextView
+ android:layout_below="@id/proxyradiogroup"
+ android:layout_toLeftOf="@id/proxyport_label"
+ android:layout_toStartOf="@id/proxyport_label"
+ android:id="@+id/proxyserver_label"
+ android:paddingStart="20dp"
+ android:paddingLeft="20dp"
+ style="@style/item"
+ android:text="@string/address"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ tools:ignore="RtlSymmetry"/>
+
+
+ <EditText
+ android:id="@+id/proxyport"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentRight="true"
+
+ android:layout_below="@id/proxyport_label"
+ android:inputType="numberDecimal"
+ android:text="8080"
+ android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
+ tools:ignore="HardcodedText"/>
+
+
+ <EditText
+ android:id="@+id/proxyname"
+ android:layout_marginLeft="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:layout_below="@id/proxyserver_label"
+ android:layout_toLeftOf="@id/proxyport"
+ android:layout_toStartOf="@id/proxyport"
+ android:inputType="textUri"
+ android:singleLine="true"
+ tools:text="proxy.blinkt.de"
+ android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
+ tools:ignore="HardcodedText"/>
+
+ <android.support.constraint.ConstraintLayout
+ android:visibility="gone"
+ tools:visibility="visible"
+ android:id="@+id/proxyauthlayout"
+ android:layout_marginLeft="20dp"
+ android:layout_marginStart="20dp"
+
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:layout_below="@id/proxyname">
+
+ <CheckBox
+ android:id="@+id/enable_proxy_auth"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/enableproxyauth"
+ card_view:layout_constraintTop_toTopOf="parent"
+ android:layout_marginTop="0dp" card_view:layout_constraintStart_toStartOf="parent"
+ />
+
+
+ <TextView
+ android:id="@+id/httpuser_label"
+ style="@style/item"
+ android:layout_width="wrap_content"
+ android:layout_height="17dp"
+ android:layout_below="@id/enable_proxy_auth"
+ android:text="@string/auth_username"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:layout_marginTop="12dp"
+ card_view:layout_constraintTop_toBottomOf="@+id/enable_proxy_auth"
+ card_view:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="8dp"
+ android:layout_marginStart="0dp"/>
+
+
+ <TextView
+ android:layout_toRightOf="@id/httpuser_label"
+ android:layout_toEndOf="@id/httpuser_label"
+ android:layout_below="@id/enable_proxy_auth"
+ android:layout_width="wrap_content"
+ android:id="@+id/httppassword_label"
+ style="@style/item"
+ android:text="@string/auth_pwquery"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ card_view:layout_constraintStart_toStartOf="@+id/proxypassword"
+ android:layout_height="wrap_content"
+ card_view:layout_constraintBottom_toBottomOf="@+id/httpuser_label"
+ />
+
+
+ <EditText
+ android:id="@+id/proxyuser"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_below="@id/httpuser_label"
+ android:inputType="text"
+ android:hint="username"
+ android:minEms="6"
+ android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
+ tools:ignore="HardcodedText"
+ android:layout_marginTop="8dp" card_view:layout_constraintTop_toBottomOf="@+id/httpuser_label"
+ card_view:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="8dp"
+ android:layout_marginStart="8dp"/>
+
+
+ <EditText
+ android:id="@+id/proxypassword"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_below="@id/httppassword_label"
+ android:layout_toRightOf="@id/proxyuser"
+ android:minEms="6"
+ android:layout_toEndOf="@id/proxyuser"
+ android:inputType="textPassword"
+ android:singleLine="true"
+ tools:text="geheim"
+ android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
+ card_view:layout_constraintTop_toTopOf="@+id/proxyuser"
+ card_view:layout_constraintStart_toEndOf="@+id/proxyuser" android:layout_marginLeft="16dp"
+ android:layout_marginStart="8dp"/>
+
+ </android.support.constraint.ConstraintLayout>
+
+ <TextView
+ android:id="@+id/connect_timeout_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/proxyauthlayout"
+ android:paddingTop="10dp"
+ android:text="@string/connect_timeout"/>
+
+ <EditText
+ android:id="@+id/connect_timeout"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
+ android:layout_below="@+id/connect_timeout_label"
+ android:ems="3"
+ tools:text="232"
+ android:gravity="end"
+ android:inputType="numberDecimal"/>
+
+ <SeekBar
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/connect_silder"
+ android:max="300"
+ android:layout_alignBottom="@id/connect_timeout"
+ android:layout_toLeftOf="@id/connect_timeout"
+ android:layout_toStartOf="@id/connect_timeout"
+ android:layout_below="@id/connect_timeout_label"/>
+
+
+ <CheckBox
+ android:id="@+id/use_customoptions"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/connect_timeout"
+ android:paddingTop="10dp"
+ android:text="@string/custom_connection_options"/>
+
+ <LinearLayout
+ android:id="@+id/custom_options_layout"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/use_customoptions"
+ android:orientation="vertical"
+ android:paddingRight="10dp"
+ android:paddingEnd="10dp"
+ android:paddingLeft="10dp"
+ android:paddingStart="10dp">
+
+ <TextView
+ android:id="@+id/warnung_custom"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/custom_connection_options_warng"/>
+
+ <EditText
+ android:id="@+id/customoptions"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:inputType="textMultiLine"
+ android:lines="5"/>
+ </LinearLayout>
+
+ <Switch
+ android:id="@+id/remoteSwitch"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignEnd="@+id/portnumber"
+ android:layout_alignRight="@+id/portnumber"
+ android:layout_below="@+id/portnumber"
+ android:layout_gravity="right|bottom"
+ android:text="@string/enabled_connection_entry"/>
+
+ <ImageButton
+ android:id="@+id/remove_connection"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignEnd="@+id/portnumber"
+ android:layout_alignRight="@+id/portnumber"
+ android:layout_below="@id/remoteSwitch"
+ android:layout_margin="12dp"
+ android:background="@drawable/ic_menu_delete_grey"
+ android:contentDescription="@string/remove_connection_entry"
+ android:padding="12dp"/>
+
+
+ </RelativeLayout>
+
+ </android.support.v7.widget.CardView>
+</FrameLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/server_footer.xml b/main/src/ui/res/layout/server_footer.xml
new file mode 100644
index 00000000..623e4459
--- /dev/null
+++ b/main/src/ui/res/layout/server_footer.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2015 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="70dp" />
+</FrameLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/settings_usereditable.xml b/main/src/ui/res/layout/settings_usereditable.xml
new file mode 100644
index 00000000..6e954116
--- /dev/null
+++ b/main/src/ui/res/layout/settings_usereditable.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:orientation="vertical"
+ android:padding="@dimen/stdpadding"
+ android:layout_width="match_parent"
+ android:gravity="center"
+ android:layout_height="match_parent">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:text="@string/message_no_user_edit"
+ android:id="@+id/messageUserEdit"
+ android:layout_gravity="center_horizontal"/>
+ <LinearLayout
+ android:id="@+id/keystore"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone"
+ tools:visibility="gone">
+ <include layout="@layout/keystore_selector"/>
+ </LinearLayout>
+</LinearLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/share_fab.xml b/main/src/ui/res/layout/share_fab.xml
new file mode 100644
index 00000000..ad5f1b96
--- /dev/null
+++ b/main/src/ui/res/layout/share_fab.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<merge>
+
+</merge> \ No newline at end of file
diff --git a/main/src/ui/res/layout/speedviewitem.xml b/main/src/ui/res/layout/speedviewitem.xml
new file mode 100644
index 00000000..06a760ec
--- /dev/null
+++ b/main/src/ui/res/layout/speedviewitem.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2017 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:id="@+id/ciphername"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="end"
+ android:minWidth="100sp"
+ android:textAlignment="textEnd"
+ tools:text="aes-256-gcm" />
+
+ <TextView
+ android:id="@+id/blocksize"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/ciphername"
+ android:gravity="end"
+ android:minWidth="100sp"
+ android:textAlignment="textEnd"
+ tools:text="1024 kB" />
+
+
+ <TextView
+ android:id="@+id/blocksintime"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="20sp"
+ android:layout_marginStart="20sp"
+ android:layout_toEndOf="@id/ciphername"
+ android:layout_toRightOf="@id/ciphername"
+ tools:text="12345 blocks in 5s" />
+
+ <TextView
+ android:id="@+id/speed"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/blocksintime"
+ android:layout_marginLeft="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginTop="2sp"
+ android:layout_toEndOf="@id/ciphername"
+ android:layout_toRightOf="@id/ciphername"
+ tools:text="772 MB/s" />
+
+
+</RelativeLayout>
diff --git a/main/src/ui/res/layout/tabs.xml b/main/src/ui/res/layout/tabs.xml
new file mode 100644
index 00000000..a68c4e42
--- /dev/null
+++ b/main/src/ui/res/layout/tabs.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+<merge>
+
+ <de.blinkt.openvpn.views.SlidingTabLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/sliding_tabs"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</merge> \ No newline at end of file
diff --git a/main/src/ui/res/layout/tlsremote.xml b/main/src/ui/res/layout/tlsremote.xml
new file mode 100644
index 00000000..5ebeb051
--- /dev/null
+++ b/main/src/ui/res/layout/tlsremote.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:padding="@dimen/stdpadding"
+ android:layout_height="match_parent" >
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/dialogHeader"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/enter_tlscn_dialog" />
+
+ <TextView
+ android:id="@+id/tlsremotenote"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8sp"
+ android:text="@string/remotetlsnote"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:visibility="gone" />
+
+ <Spinner
+ android:id="@+id/x509verifytype"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ <EditText
+ android:id="@+id/tlsremotecn"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="20dp"
+ android:ems="10"
+ android:inputType="text" >
+
+ <requestFocus />
+ </EditText>
+
+ </LinearLayout>
+
+</ScrollView> \ No newline at end of file
diff --git a/main/src/ui/res/layout/viewconfig.xml b/main/src/ui/res/layout/viewconfig.xml
new file mode 100644
index 00000000..4855b06d
--- /dev/null
+++ b/main/src/ui/res/layout/viewconfig.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+<RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="@dimen/vpn_setting_padding"
+ android:scrollbarStyle="outsideOverlay">
+
+ <TextView
+ android:id="@+id/configview"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+ </ScrollView>
+
+ <include layout="@layout/share_fab" />
+</RelativeLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/vpn_list_item.xml b/main/src/ui/res/layout/vpn_list_item.xml
new file mode 100644
index 00000000..5f2e8d0b
--- /dev/null
+++ b/main/src/ui/res/layout/vpn_list_item.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:focusable="false"
+ android:gravity="center_vertical"
+ android:minHeight="?android:attr/listPreferredItemHeight">
+
+ <LinearLayout
+ android:id="@+id/vpn_list_item_left"
+ android:layout_height="match_parent"
+ android:layout_width="wrap_content"
+ android:background="?android:attr/selectableItemBackground"
+ android:focusable="true"
+ android:layout_weight="1"
+ android:gravity="center_vertical">
+
+ <LinearLayout
+ android:id="@android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center_vertical"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/vpn_item_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="marquee"
+ android:fadingEdge="horizontal"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ tools:text="Vpn Name" />
+
+ <TextView
+ android:id="@+id/vpn_item_subtitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="marquee"
+ android:fadingEdge="horizontal"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ tools:text="Not connected!" />
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <View
+ android:layout_width="2dip"
+ android:layout_height="match_parent"
+ android:layout_marginBottom="5dip"
+ android:layout_marginTop="5dip"
+ android:background="@android:drawable/divider_horizontal_dark"
+ android:focusable="false" />
+
+ <ImageView
+ android:id="@+id/quickedit_settings"
+ android:layout_width="wrap_content"
+ android:layout_height="fill_parent"
+ android:layout_gravity="center"
+ android:background="?android:attr/selectableItemBackground"
+ android:contentDescription="@string/configure_the_vpn"
+ android:focusable="true"
+ android:paddingEnd="?android:attr/scrollbarSize"
+ android:paddingLeft="15dip"
+ android:paddingRight="?android:attr/scrollbarSize"
+ android:paddingStart="15dip"
+ android:src="@drawable/vpn_item_edit" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/main/src/ui/res/layout/vpn_profile_list.xml b/main/src/ui/res/layout/vpn_profile_list.xml
new file mode 100644
index 00000000..f85222b6
--- /dev/null
+++ b/main/src/ui/res/layout/vpn_profile_list.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout
+
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/stdpadding"
+ android:paddingRight="@dimen/stdpadding">
+
+ <ListView
+ android:id="@android:id/list"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:descendantFocusability="afterDescendants" />
+
+ <LinearLayout
+ android:id="@android:id/empty"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:orientation="vertical">
+
+ <TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/no_vpn_profiles_defined"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="12sp" />
+
+
+ <TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:autoLink="web"
+ android:text="@string/openvpn_is_no_free_vpn" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="12sp" />
+
+
+ <TextView
+ android:id="@+id/add_new_vpn_hint"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ tools:ignore="SelectableText" />
+
+ <TextView
+ android:id="@+id/import_vpn_hint"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ tools:ignore="SelectableText" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="12sp" />
+
+ <TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/faq_hint" />
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <!-- <include layout="@layout/profile_list_fabs" /> -->
+
+</FrameLayout>
diff --git a/main/src/ui/res/layout/vpnstatus.xml b/main/src/ui/res/layout/vpnstatus.xml
new file mode 100644
index 00000000..3b464b62
--- /dev/null
+++ b/main/src/ui/res/layout/vpnstatus.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2016 Arne Schwabe
+ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt
+ -->
+
+<merge xmlns:tools="http://schemas.android.com/tools"
+ xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <Space
+ android:layout_weight="1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
+
+
+ <TextView
+ android:text="@string/uploaded_data"
+ style="@style/logWindowStatusTitle"/>
+
+ <TextView
+ style="@style/logWindowStatusText"
+ android:id="@+id/speedUp"
+ tools:text="4 Mbit/s 6.7 GB"/>
+
+ <TextView
+ android:text="@string/downloaded_data"
+ style="@style/logWindowStatusTitle"/>
+
+ <TextView
+ style="@style/logWindowStatusText"
+ android:id="@+id/speedDown"
+ tools:text="2 Mbit/s 4.7 GB"/>
+
+
+ <Space
+ android:layout_weight="1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
+
+
+ <TextView
+ android:text="@string/vpn_status"
+ style="@style/logWindowStatusTitle"/>
+
+ <TextView
+
+ android:id="@+id/speedStatus"
+ tools:text="Connected to a very long ipv4 and 3483489348238824829482384928"
+ style="@style/logWindowStatusText"/>
+
+
+</merge> \ No newline at end of file