summaryrefslogtreecommitdiff
path: root/app/src/main/res/layout
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/res/layout')
-rw-r--r--app/src/main/res/layout/activity_setup.xml158
-rw-r--r--app/src/main/res/layout/f_circumvention_setup.xml77
-rw-r--r--app/src/main/res/layout/f_configure_provider.xml236
-rw-r--r--app/src/main/res/layout/f_empty_permission_setup.xml6
-rw-r--r--app/src/main/res/layout/f_notification_setup.xml34
-rw-r--r--app/src/main/res/layout/f_provider_selection.xml92
-rw-r--r--app/src/main/res/layout/f_setup_success.xml82
-rw-r--r--app/src/main/res/layout/f_vpn_permission_setup.xml34
-rw-r--r--app/src/main/res/layout/v_progress_spinner.xml128
9 files changed, 847 insertions, 0 deletions
diff --git a/app/src/main/res/layout/activity_setup.xml b/app/src/main/res/layout/activity_setup.xml
new file mode 100644
index 00000000..5fff1154
--- /dev/null
+++ b/app/src/main/res/layout/activity_setup.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:orientation="vertical"
+ android:weightSum="1"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <androidx.appcompat.widget.Toolbar
+ android:id="@+id/toolbar"
+ android:minHeight="?attr/actionBarSize"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?attr/colorPrimary">
+ </androidx.appcompat.widget.Toolbar>
+
+ <androidx.viewpager2.widget.ViewPager2
+ android:id="@+id/viewPager"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_alignParentTop="true"
+ android:layout_below="@id/toolbar"
+ android:layout_alignParentBottom="true"
+ android:layout_weight="1"
+ />
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/setup_bottom_bar"
+ android:layout_alignParentBottom="true"
+ android:padding="@dimen/stdpadding"
+ android:background="@color/colorPrimary_transparent"
+ >
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/indicatorContainer"
+ android:orientation="horizontal"
+ android:gravity="center"
+ android:layout_centerInParent="true"
+ >
+ <androidx.cardview.widget.CardView
+ android:layout_width="12dp"
+ android:layout_height="12dp"
+ app:cardCornerRadius="6dp"
+ app:cardElevation="0dp"
+ android:layout_margin="4dp"
+ >
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorPrimary"/>
+ </androidx.cardview.widget.CardView>
+ <androidx.cardview.widget.CardView
+ android:layout_width="12dp"
+ android:layout_height="12dp"
+ app:cardCornerRadius="6dp"
+ app:cardElevation="0dp"
+ android:layout_margin="4dp"
+ >
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorPrimary"/>
+ </androidx.cardview.widget.CardView>
+ <androidx.cardview.widget.CardView
+ android:layout_width="12dp"
+ android:layout_height="12dp"
+ app:cardCornerRadius="6dp"
+ app:cardElevation="0dp"
+ android:layout_margin="4dp"
+ >
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorPrimary"/>
+ </androidx.cardview.widget.CardView>
+ <androidx.cardview.widget.CardView
+ android:layout_width="12dp"
+ android:layout_height="12dp"
+ app:cardCornerRadius="6dp"
+ app:cardElevation="0dp"
+ android:layout_margin="4dp"
+ android:visibility="gone"
+ >
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorPrimary"/>
+ </androidx.cardview.widget.CardView>
+ <androidx.cardview.widget.CardView
+ android:layout_width="12dp"
+ android:layout_height="12dp"
+ app:cardCornerRadius="6dp"
+ app:cardElevation="0dp"
+ android:layout_margin="4dp"
+ android:visibility="gone"
+ >
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorPrimary"/>
+ </androidx.cardview.widget.CardView>
+ <androidx.cardview.widget.CardView
+ android:layout_width="12dp"
+ android:layout_height="12dp"
+ app:cardCornerRadius="6dp"
+ app:cardElevation="0dp"
+ android:layout_margin="4dp"
+ android:visibility="gone"
+ >
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorPrimary"/>
+ </androidx.cardview.widget.CardView>
+ <androidx.cardview.widget.CardView
+ android:layout_width="12dp"
+ android:layout_height="12dp"
+ app:cardCornerRadius="6dp"
+ app:cardElevation="0dp"
+ android:layout_margin="4dp"
+ android:visibility="gone"
+ >
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorPrimary"/>
+ </androidx.cardview.widget.CardView>
+
+ </LinearLayout>
+ <androidx.appcompat.widget.AppCompatButton
+ style="@style/BitmaskSetupButton"
+ android:id="@+id/setup_next_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentBottom="true"
+ android:layout_centerVertical="true"
+ android:text="@string/next"
+ tools:visibility="visible"
+
+ />
+
+ <androidx.appcompat.widget.AppCompatButton
+ style="@style/BitmaskSetupButton"
+ android:id="@+id/setup_cancel_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:layout_centerVertical="true"
+ android:text="@string/cancel"
+ android:visibility="gone"
+ tools:visibility="visible"
+ />
+ </RelativeLayout>
+</androidx.appcompat.widget.LinearLayoutCompat>
diff --git a/app/src/main/res/layout/f_circumvention_setup.xml b/app/src/main/res/layout/f_circumvention_setup.xml
new file mode 100644
index 00000000..9f303780
--- /dev/null
+++ b/app/src/main/res/layout/f_circumvention_setup.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="@dimen/stdpadding"
+ android:layout_margin="@dimen/activity_margin"
+ tools:context=".providersetup.fragments.ProviderSelectionFragment">
+
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_margin="@dimen/activity_margin"
+ >
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Title"
+ android:text="@string/title_circumvention_setup"
+ android:paddingBottom="@dimen/stdpadding"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_circumvention_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Body1"
+ android:text="@string/circumvention_setup_description"/>
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/cv_provider_selection_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:cardElevation="2dp"
+ app:cardUseCompatPadding="true"
+ app:cardCornerRadius="12dp"
+ android:layout_marginTop="40dp"
+ >
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:background="@color/colorPrimary_transparent"
+ android:padding="@dimen/activity_horizontal_margin"
+ >
+ <RadioGroup
+ android:id="@+id/circumvention_radioGroup"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ >
+ <com.google.android.material.radiobutton.MaterialRadioButton
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/rb_plain_vpn"
+ android:text="@string/use_standard_vpn"
+ />
+ <com.google.android.material.radiobutton.MaterialRadioButton
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/rb_circumvention"
+ android:text="@string/use_circumvention_tech"
+ />
+ </RadioGroup>
+ <androidx.appcompat.widget.AppCompatTextView
+ android:paddingTop="@dimen/stdpadding"
+ android:id="@+id/tv_circumvention_detail_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/circumvention_setup_hint"/>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+ </androidx.cardview.widget.CardView>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+</ScrollView> \ No newline at end of file
diff --git a/app/src/main/res/layout/f_configure_provider.xml b/app/src/main/res/layout/f_configure_provider.xml
new file mode 100644
index 00000000..5841ee13
--- /dev/null
+++ b/app/src/main/res/layout/f_configure_provider.xml
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+
+<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="@dimen/stdpadding"
+ android:layout_marginTop="@dimen/activity_margin"
+ android:layout_marginStart="@dimen/activity_margin"
+ android:layout_marginEnd="@dimen/activity_margin"
+ tools:context=".providersetup.fragments.ProviderSelectionFragment">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_marginTop="@dimen/activity_margin"
+ android:layout_marginStart="@dimen/activity_margin"
+ android:layout_marginEnd="@dimen/activity_margin"
+ >
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Title"
+ android:text="@string/configuring_provider"
+ android:paddingBottom="@dimen/stdpadding"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_circumvention_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Body1"
+ android:text="@string/description_configure_provider"
+ app:layout_constraintTop_toBottomOf="@id/tv_title"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ />
+
+ <se.leap.bitmaskclient.base.views.ProgressSpinner
+ android:id="@+id/progress_spinner"
+ android:layout_width="100dp"
+ android:layout_height="100dp"
+ app:layout_constraintTop_toBottomOf="@id/tv_circumvention_description"
+ app:layout_constraintStart_toStartOf="parent"
+ />
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_progress_status"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:maxLines="2"
+ android:ellipsize="end"
+ app:layout_constraintBottom_toBottomOf="@id/progress_spinner"
+ app:layout_constraintTop_toTopOf="@id/progress_spinner"
+ app:layout_constraintStart_toEndOf="@id/progress_spinner"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0"
+ tools:text="Starting bridges this is a very long text 123"
+ />
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/detail_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:cardElevation="2dp"
+ app:cardUseCompatPadding="true"
+ app:cardCornerRadius="12dp"
+ app:layout_constraintTop_toBottomOf="@id/progress_spinner"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintVertical_bias="0"
+ >
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:background="@color/colorPrimary_transparent"
+ >
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:id="@+id/detail_header_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:gravity="center"
+ android:orientation="horizontal"
+ android:padding="@dimen/stdpadding"
+ android:clickable="true"
+ android:focusable="true">
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/iv_expand"
+ android:layout_width="18dp"
+ android:layout_height="18dp"
+ android:src="@drawable/ic_arrow_forward"/>
+ <androidx.appcompat.widget.AppCompatTextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/details"
+ android:textStyle="bold"
+ android:paddingHorizontal="@dimen/stdpadding"/>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:id="@+id/expandable_detail_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone"
+ tools:visibility="visible"
+ >
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/connection_detail_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="visible"
+ >
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_tor_status"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_constraintTop_toTopOf="parent"
+ android:text="@string/tor_status"
+ android:textStyle="bold"
+ android:paddingHorizontal="@dimen/stdpadding"/>
+
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/tor_icon"
+ android:layout_width="35dp"
+ android:layout_height="35dp"
+ app:layout_constraintTop_toBottomOf="@id/tv_tor_status"
+ app:layout_constraintStart_toStartOf="parent"
+ android:padding="4dp"
+ android:src="@drawable/ic_tor" />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tor_state"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:fadingEdge="horizontal"
+ android:maxLines="2"
+ android:text="@string/configuring_provider"
+ android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
+ app:layout_constraintTop_toTopOf="@id/tor_icon"
+ app:layout_constraintBottom_toBottomOf="@id/tor_icon"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@id/tor_icon"
+ app:layout_constraintHorizontal_bias="0"
+ android:paddingHorizontal="@dimen/stdpadding"
+ android:gravity="bottom"
+ tools:text="test 12321 123 \n sdf,sdf,m\nn 123 "
+ android:ellipsize="end"
+
+ tools:visibility="visible"
+ />
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_snowflake_status"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/tor_icon"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="@string/snowflake_status"
+ android:textStyle="bold"
+ android:paddingTop="@dimen/stdpadding"
+ android:paddingHorizontal="@dimen/stdpadding"/>
+
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/snowflake_icon"
+ android:layout_width="35dp"
+ android:layout_height="35dp"
+ android:src="@drawable/ic_snowflake"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/tv_snowflake_status"
+ android:layout_alignParentStart="true"
+ android:layout_marginBottom="@dimen/stdpadding"
+ android:padding="4dp"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/snowflake_state"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ app:layout_constraintStart_toEndOf="@id/snowflake_icon"
+ app:layout_constraintTop_toTopOf="@id/snowflake_icon"
+ app:layout_constraintBottom_toBottomOf="@id/snowflake_icon"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0"
+ android:paddingBottom="1dp"
+ android:paddingHorizontal="@dimen/stdpadding"
+ android:fadingEdge="horizontal"
+ android:maxLines="2"
+ android:text="@string/configuring_provider"
+ android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
+
+ android:gravity="bottom"
+ tools:text="test \n another \n and a third \n blkud"
+ android:ellipsize="end"
+ tools:visibility="visible"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_logs"
+ app:layout_constraintTop_toBottomOf="@id/snowflake_state"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/log_fragment_title"
+ android:textStyle="bold"
+ android:paddingTop="@dimen/stdpadding"
+ android:paddingHorizontal="@dimen/stdpadding"/>
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/connection_detail_logs"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/tv_logs"
+ app:layout_constraintHeight_max="180dp"
+ android:layout_below="@+id/tv_logs"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ tools:listitem="@layout/v_log_item"
+ android:isScrollContainer="false"
+ />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+ </androidx.cardview.widget.CardView>
+
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+</androidx.core.widget.NestedScrollView> \ No newline at end of file
diff --git a/app/src/main/res/layout/f_empty_permission_setup.xml b/app/src/main/res/layout/f_empty_permission_setup.xml
new file mode 100644
index 00000000..0fbb55e4
--- /dev/null
+++ b/app/src/main/res/layout/f_empty_permission_setup.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="@dimen/stdpadding"
+ android:layout_margin="@dimen/activity_margin" /> \ No newline at end of file
diff --git a/app/src/main/res/layout/f_notification_setup.xml b/app/src/main/res/layout/f_notification_setup.xml
new file mode 100644
index 00000000..d9c7d1a3
--- /dev/null
+++ b/app/src/main/res/layout/f_notification_setup.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="@dimen/stdpadding"
+ android:layout_margin="@dimen/activity_margin"
+ tools:context=".providersetup.fragments.ProviderSelectionFragment">
+
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_margin="@dimen/activity_margin"
+ >
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Title"
+ android:text="@string/title_upcoming_notifications_request"
+ android:paddingBottom="@dimen/stdpadding"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_circumvention_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Body1"
+ android:text="@string/upcoming_notifications_request_description"/>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+</ScrollView> \ No newline at end of file
diff --git a/app/src/main/res/layout/f_provider_selection.xml b/app/src/main/res/layout/f_provider_selection.xml
new file mode 100644
index 00000000..7c861a14
--- /dev/null
+++ b/app/src/main/res/layout/f_provider_selection.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="@dimen/stdpadding"
+ android:layout_margin="@dimen/activity_margin"
+ tools:context=".providersetup.fragments.ProviderSelectionFragment">
+
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_margin="@dimen/activity_margin"
+ >
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_welcome"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Title"
+ android:text="@string/welcome"
+ android:layout_alignParentTop="true"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_choose_provider"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Title"
+ android:text="@string/select_provider"
+ android:paddingBottom="@dimen/stdpadding"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_provider_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Body1"
+ android:text="@string/select_provider_description"/>
+
+ <androidx.cardview.widget.CardView
+ android:id="@+id/cv_provider_selection_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:cardElevation="2dp"
+ app:cardUseCompatPadding="true"
+ app:cardCornerRadius="12dp"
+ android:layout_marginTop="40dp"
+ >
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:background="@color/colorPrimary_transparent"
+ android:padding="@dimen/activity_horizontal_margin"
+ >
+ <RadioGroup
+ android:id="@+id/provider_radioGroup"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ >
+ </RadioGroup>
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:id="@+id/expandable_detail_container">
+ <androidx.appcompat.widget.AppCompatTextView
+ android:paddingTop="@dimen/stdpadding"
+ android:id="@+id/provider_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ tools:text="@string/provider_description_riseup"/>
+ <androidx.appcompat.widget.AppCompatEditText
+ android:id="@+id/edit_customProvider"
+ android:layout_marginVertical="@dimen/stdpadding"
+ android:paddingHorizontal="@dimen/stdpadding"
+ android:paddingVertical="@dimen/compact_padding"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@color/white"
+ android:hint="https://example.org"
+ android:textAppearance="@style/TextAppearance.AppCompat.Body1"
+ android:textColorHint="@color/black800_transparent"
+ />
+ </androidx.appcompat.widget.LinearLayoutCompat>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+ </androidx.cardview.widget.CardView>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+
+</ScrollView> \ No newline at end of file
diff --git a/app/src/main/res/layout/f_setup_success.xml b/app/src/main/res/layout/f_setup_success.xml
new file mode 100644
index 00000000..94d3c24d
--- /dev/null
+++ b/app/src/main/res/layout/f_setup_success.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".providersetup.fragments.ProviderSelectionFragment">
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/top_button_guideline"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintGuide_percent="0.5"
+ />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/guideline_vertical_left"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.3"
+ />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/guideline_vertical_right"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.7"
+ />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/bottom_button_guideline"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:orientation="horizontal"
+ app:layout_constraintGuide_percent="0.8"
+ />
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="@dimen/stdpadding"
+ android:layout_margin="@dimen/activity_margin"
+ app:layout_constraintTop_toTopOf="parent"
+ >
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Title"
+ android:text="@string/title_setup_success"
+ android:paddingBottom="@dimen/stdpadding"
+ />
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_setup_success_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_constraintTop_toBottomOf="@id/tv_title"
+ android:textAppearance="@style/TextAppearance.AppCompat.Body1"
+ android:text="@string/setup_success_description"/>
+ </LinearLayout>
+
+ <se.leap.bitmaskclient.base.views.MainButton
+ android:id="@+id/main_button"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ app:layout_constraintTop_toBottomOf="@id/top_button_guideline"
+ app:layout_constraintBottom_toTopOf="@id/bottom_button_guideline"
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_right"
+ app:layout_constraintStart_toStartOf="@+id/guideline_vertical_left"
+ />
+
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/f_vpn_permission_setup.xml b/app/src/main/res/layout/f_vpn_permission_setup.xml
new file mode 100644
index 00000000..99dd531b
--- /dev/null
+++ b/app/src/main/res/layout/f_vpn_permission_setup.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="@dimen/stdpadding"
+ android:layout_margin="@dimen/activity_margin"
+ tools:context=".providersetup.fragments.ProviderSelectionFragment">
+
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_margin="@dimen/activity_margin"
+ >
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Title"
+ android:text="@string/title_upcoming_connection_request"
+ android:paddingBottom="@dimen/stdpadding"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_circumvention_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Body1"
+ android:text="@string/upcoming_connection_request_description"/>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+</ScrollView> \ No newline at end of file
diff --git a/app/src/main/res/layout/v_progress_spinner.xml b/app/src/main/res/layout/v_progress_spinner.xml
new file mode 100644
index 00000000..ad106fb2
--- /dev/null
+++ b/app/src/main/res/layout/v_progress_spinner.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/vpn_btn_guideline_left"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.125" />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/vpn_btn_guideline_right"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.875" />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/vpn_btn_guideline_top"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintGuide_percent="0.125" />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/vpn_btn_guideline_bottom"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintGuide_percent="0.875" />
+
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/icn_guideline_left"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.3" />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/icn_guideline_right"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.7" />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/icn_guideline_top"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintGuide_percent="0.3" />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/icn_guideline_bottom"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintGuide_percent="0.7" />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/border_guideline_left"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.025" />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/border_guideline_right"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.975" />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/border_guideline_top"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintGuide_percent="0.025" />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/border_guideline_bottom"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintGuide_percent="0.975" />
+
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/spinner_view"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toTopOf="@+id/vpn_btn_guideline_bottom"
+ app:layout_constraintEnd_toStartOf="@+id/vpn_btn_guideline_right"
+ app:layout_constraintStart_toStartOf="@+id/vpn_btn_guideline_left"
+ app:layout_constraintTop_toTopOf="@+id/vpn_btn_guideline_top"
+ app:layout_constraintDimensionRatio="1:1"
+ app:srcCompat="@drawable/progress_spinner"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tv_progress"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toTopOf="@+id/icn_guideline_bottom"
+ app:layout_constraintEnd_toStartOf="@+id/icn_guideline_right"
+ app:layout_constraintStart_toStartOf="@+id/icn_guideline_left"
+ app:layout_constraintTop_toTopOf="@+id/icn_guideline_top"
+ tools:text="100%"
+ android:maxLines="1"
+ android:gravity="center"
+ android:textStyle="bold"
+ app:autoSizeTextType="uniform"
+ app:autoSizeMinTextSize="12sp"
+ app:autoSizeMaxTextSize="100sp"
+ app:autoSizeStepGranularity="2sp" />
+ />
+
+
+
+
+
+
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file