summaryrefslogtreecommitdiff
path: root/app/src/main/res
diff options
context:
space:
mode:
authorNorbel AMBANUMBEN <aanorbel@gmail.com>2024-10-12 21:21:23 +0100
committercyBerta <cyberta@riseup.net>2024-11-28 22:53:27 +0100
commit39f5c390072cc51a60ab17264963c33f55528e46 (patch)
tree0d089e9386b24f3b619bf4ec751de9c871225149 /app/src/main/res
parent836c9124c7e54e94c7d596463fcd82ec58a43e47 (diff)
chore: bootstrap censorship circumvention fragment.
Diffstat (limited to 'app/src/main/res')
-rw-r--r--app/src/main/res/drawable/bridge_automatic.xml10
-rw-r--r--app/src/main/res/drawable/bridge_manual.xml10
-rw-r--r--app/src/main/res/layout/f_censorship_circumvention.xml65
-rw-r--r--app/src/main/res/layout/f_settings.xml64
-rw-r--r--app/src/main/res/values/strings.xml12
-rw-r--r--app/src/main/res/values/untranslatable.xml2
6 files changed, 132 insertions, 31 deletions
diff --git a/app/src/main/res/drawable/bridge_automatic.xml b/app/src/main/res/drawable/bridge_automatic.xml
new file mode 100644
index 00000000..28c288f0
--- /dev/null
+++ b/app/src/main/res/drawable/bridge_automatic.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="16dp"
+ android:height="16dp"
+ android:viewportWidth="16"
+ android:viewportHeight="16"
+ android:tint="#828282">
+ <path
+ android:pathData="M2,6.904V5.406C3.072,5.117 4.148,4.912 5.226,4.792C6.304,4.671 7.395,4.611 8.5,4.611C9.605,4.611 10.696,4.671 11.774,4.792C12.852,4.912 13.927,5.117 15,5.406V6.904C14.783,6.844 14.567,6.79 14.35,6.742L13.7,6.597V8.944H12.4V6.344C11.75,6.248 11.1,6.176 10.45,6.128C9.8,6.08 9.15,6.056 8.5,6.056C7.85,6.056 7.2,6.077 6.55,6.119C5.9,6.161 5.25,6.23 4.6,6.326V8.944H3.3V6.579C3.083,6.627 2.867,6.678 2.65,6.733C2.433,6.787 2.217,6.844 2,6.904ZM4.6,14L5.543,7.662C5.738,7.638 5.96,7.617 6.209,7.599C6.458,7.581 6.68,7.566 6.875,7.554L5.9,14H4.6ZM6.55,1H7.85L7.525,3.149C7.33,3.161 7.111,3.176 6.867,3.194C6.623,3.212 6.404,3.233 6.209,3.257L6.55,1ZM7.85,14H9.15V11.111H7.85V14ZM7.85,9.667H9.15V7.518H7.85V9.667ZM9.15,1H10.45L10.791,3.257C10.596,3.245 10.377,3.227 10.133,3.203C9.889,3.179 9.67,3.161 9.475,3.149L9.15,1ZM11.1,14L10.125,7.554C10.32,7.566 10.542,7.584 10.791,7.608C11.04,7.632 11.262,7.656 11.458,7.681L12.4,14H11.1Z"
+ android:fillColor="#1C1B1F"/>
+</vector>
diff --git a/app/src/main/res/drawable/bridge_manual.xml b/app/src/main/res/drawable/bridge_manual.xml
new file mode 100644
index 00000000..cec55dab
--- /dev/null
+++ b/app/src/main/res/drawable/bridge_manual.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="16dp"
+ android:height="16dp"
+ android:viewportWidth="16"
+ android:viewportHeight="16"
+ android:tint="#828282">
+ <path
+ android:pathData="M5.6,8.084V2H4.4V8.084C3.368,8.354 2.6,9.284 2.6,10.4C2.6,11.516 3.368,12.446 4.4,12.716V14H5.6V12.716C6.632,12.446 7.4,11.516 7.4,10.4C7.4,9.284 6.632,8.354 5.6,8.084ZM5,9.2C5.66,9.2 6.2,9.74 6.2,10.4C6.2,11.06 5.66,11.6 5,11.6C4.34,11.6 3.8,11.06 3.8,10.4C3.8,9.74 4.34,9.2 5,9.2ZM11.6,2H10.4V3.284C9.368,3.554 8.6,4.484 8.6,5.6C8.6,6.716 9.368,7.646 10.4,7.916V14H11.6V7.916C12.632,7.646 13.4,6.716 13.4,5.6C13.4,4.484 12.632,3.554 11.6,3.284V2ZM11,4.4C11.66,4.4 12.2,4.94 12.2,5.6C12.2,6.26 11.66,6.8 11,6.8C10.34,6.8 9.8,6.26 9.8,5.6C9.8,4.94 10.34,4.4 11,4.4Z"
+ android:fillColor="#000000"/>
+</vector>
diff --git a/app/src/main/res/layout/f_censorship_circumvention.xml b/app/src/main/res/layout/f_censorship_circumvention.xml
new file mode 100644
index 00000000..907b3b02
--- /dev/null
+++ b/app/src/main/res/layout/f_censorship_circumvention.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<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"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:orientation="vertical"
+ android:padding="@dimen/activity_margin"
+ tools:context=".base.fragments.CensorshipCircumventionFragment">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/censorship_circumvention_description" />
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/discovery"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/activity_margin"
+ android:text="@string/discovery"
+ android:textAppearance="@style/TextAppearance.AppCompat.Title" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/stdpadding"
+ android:text="@string/discovery_description" />
+
+ <RadioGroup
+ android:id="@+id/discovery_radioGroup"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/stdpadding"/>
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/tunnelling"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/activity_margin"
+ android:text="@string/tunnelling"
+ android:textAppearance="@style/TextAppearance.AppCompat.Title" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/stdpadding"
+ android:text="@string/tunnelling_description" />
+
+ <RadioGroup
+ android:id="@+id/tunneling_radioGroup"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/stdpadding"/>
+
+ <se.leap.bitmaskclient.base.views.IconSwitchEntry
+ android:id="@+id/port_hopping_switch"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/stdpadding"
+ app:text="@string/port_hopping"
+ app:subtitle="\n"
+ app:singleLine="false" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/f_settings.xml b/app/src/main/res/layout/f_settings.xml
index 3ce19797..70b43dbb 100644
--- a/app/src/main/res/layout/f_settings.xml
+++ b/app/src/main/res/layout/f_settings.xml
@@ -5,8 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
- android:padding="@dimen/stdpadding"
- tools:viewBindingIgnore="true">
+ android:padding="@dimen/stdpadding">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -20,6 +19,15 @@
android:text="@string/vpn_settings"
/>
+ <se.leap.bitmaskclient.base.views.IconSwitchEntry
+ android:id="@+id/prefer_udp"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:text="@string/prefer_udp"
+ app:subtitle="@string/prefer_udp_subtitle"
+ app:icon="@drawable/ic_multiple_stop"
+ app:singleLine="false" />
+
<se.leap.bitmaskclient.base.views.IconTextEntry
android:id="@+id/always_on_vpn"
android:layout_width="match_parent"
@@ -27,8 +35,7 @@
app:text="@string/always_on_vpn"
app:subtitle="@string/subtitle_always_on_vpn"
app:icon="@drawable/ic_always_on_36"
- android:visibility="visible"
- />
+ android:visibility="visible" />
<se.leap.bitmaskclient.base.views.IconTextEntry
android:id="@+id/exclude_apps"
@@ -36,18 +43,7 @@
android:layout_height="wrap_content"
app:text="@string/exclude_apps_fragment_title"
app:icon="@drawable/ic_shield_remove_grey600_36dp"
- android:visibility="visible"
- />
-
- <se.leap.bitmaskclient.base.views.IconSwitchEntry
- android:id="@+id/prefer_udp"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- app:text="@string/prefer_udp"
- app:subtitle="@string/prefer_udp_subtitle"
- app:icon="@drawable/ic_multiple_stop"
- app:singleLine="false"
- />
+ android:visibility="visible" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/circumvention_header"
@@ -55,28 +51,34 @@
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat.Title"
android:text="@string/censorship_circumvention"
- android:paddingTop="@dimen/activity_margin"
- />
+ android:paddingTop="@dimen/activity_margin" />
+
<se.leap.bitmaskclient.base.views.IconSwitchEntry
- android:id="@+id/bridges_switch"
+ android:id="@+id/bridge_automatic_switch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:text="@string/nav_drawer_obfuscated_connection"
- app:subtitle="@string/nav_drawer_subtitle_obfuscated_connection"
- app:icon="@drawable/ic_bridge_36"
- app:singleLine="false"
- />
+ app:text="@string/automatic_bridge"
+ app:subtitle="@string/automatic_bridge_description"
+ app:icon="@drawable/bridge_automatic"
+ app:singleLine="false" />
<se.leap.bitmaskclient.base.views.IconSwitchEntry
- android:id="@+id/snowflake_switch"
+ android:id="@+id/bridge_manual_switch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:icon="@drawable/ic_snowflake"
- app:text="@string/use_snowflake"
- app:subtitle="@string/snowflake_description"
- app:singleLine="false"
- android:visibility="gone"
- />
+ app:text="@string/manual_bridge"
+ app:subtitle="@string/manual_bridge_description"
+ app:icon="@drawable/bridge_manual"
+ app:singleLine="false" />
+
+ <se.leap.bitmaskclient.base.views.IconSwitchEntry
+ android:id="@+id/bridges_switch"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:text="@string/nav_drawer_obfuscated_connection"
+ app:subtitle="@string/nav_drawer_subtitle_obfuscated_connection"
+ app:icon="@drawable/ic_bridge_36"
+ app:singleLine="false" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/experimental_header"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c9818d28..14a884b3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -249,4 +249,16 @@
<string name="enter_invite_code">Enter invite Code</string>
<string name="scan_qr_code">Scan QR Code</string>
<string name="invalid_code">Invalid code</string>
+ <string name="automatic_bridge">Automatic (recommended)</string>
+ <string name="automatic_bridge_description">Connection wil be attemptd using the best available birdges and protocols.</string>
+ <string name="manual_bridge">Manual Configuration</string>
+ <string name="manual_bridge_description">Select private bridges and specific protocols</string>
+ <string name="censorship_circumvention_description">Manual configuration requires technical understanding. Proceed with caution.</string>
+ <string name="discovery">Discovery</string>
+ <string name="discovery_description">Censors can block the discovery of critical configuration information from your provider. Choose a circumvention option to bypass blocks.</string>
+ <string name="none">None</string>
+ <string name="invite_proxy">Invite Proxy</string>
+ <string name="tunnelling">Tunneling</string>
+ <string name="tunnelling_description">Censors can block access to the open internet. Choose a circumvention option to bypass blocks.</string>
+ <string name="port_hopping">Port Hopping</string>
</resources>
diff --git a/app/src/main/res/values/untranslatable.xml b/app/src/main/res/values/untranslatable.xml
index f326e756..aab5adbd 100644
--- a/app/src/main/res/values/untranslatable.xml
+++ b/app/src/main/res/values/untranslatable.xml
@@ -92,4 +92,6 @@
<item>zh</item>
<item>zh-TW</item>
</string-array>
+ <string name="tunnelling_obfs4" translatable="false">Obfs4</string>
+ <string name="tunnelling_obfs4_kcp" translatable="false">Obfs4+KCP</string>
</resources>