summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-11-19 19:17:21 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-12-14 13:59:04 +0000
commitea40ff6455c5624a95fc0f53a7c3e65e23c28c27 (patch)
tree4e93abc29664e4a5371eb06f9059cfa25cd329b4 /android/src
parent78804209e7be8c1171402977f0489275faecf1bc (diff)
downloadmullvadvpn-ea40ff6455c5624a95fc0f53a7c3e65e23c28c27.tar.xz
mullvadvpn-ea40ff6455c5624a95fc0f53a7c3e65e23c28c27.zip
Create `ConfirmPublicDnsDialogFragment`
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt66
-rw-r--r--android/src/main/res/layout/confirm_public_dns.xml32
-rw-r--r--android/src/main/res/values/strings.xml3
3 files changed, 101 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt
new file mode 100644
index 0000000000..3888e756e0
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ConfirmPublicDnsDialogFragment.kt
@@ -0,0 +1,66 @@
+package net.mullvad.mullvadvpn.ui
+
+import android.app.Dialog
+import android.content.DialogInterface
+import android.graphics.drawable.ColorDrawable
+import android.os.Bundle
+import android.support.v4.app.DialogFragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.view.ViewGroup.LayoutParams
+import android.widget.Button
+import kotlinx.coroutines.CompletableDeferred
+import net.mullvad.mullvadvpn.R
+
+class ConfirmPublicDnsDialogFragment : DialogFragment() {
+ var confirmPublicDns: CompletableDeferred<Boolean>? = null
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ val view = inflater.inflate(R.layout.confirm_public_dns, container, false)
+
+ view.findViewById<Button>(R.id.back_button).setOnClickListener {
+ activity?.onBackPressed()
+ }
+
+ view.findViewById<Button>(R.id.confirm_button).setOnClickListener {
+ confirmPublicDns?.complete(true)
+ confirmPublicDns = null
+ dismiss()
+ }
+
+ return view
+ }
+
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ val dialog = super.onCreateDialog(savedInstanceState)
+
+ dialog.window?.setBackgroundDrawable(ColorDrawable(android.R.color.transparent))
+
+ return dialog
+ }
+
+ override fun onStart() {
+ super.onStart()
+
+ dialog?.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
+
+ if (confirmPublicDns == null) {
+ dismiss()
+ }
+ }
+
+ override fun onDismiss(dialogInterface: DialogInterface) {
+ confirmPublicDns?.complete(false)
+ }
+
+ override fun onDestroy() {
+ confirmPublicDns?.cancel()
+
+ super.onDestroy()
+ }
+}
diff --git a/android/src/main/res/layout/confirm_public_dns.xml b/android/src/main/res/layout/confirm_public_dns.xml
new file mode 100644
index 0000000000..90d72e722b
--- /dev/null
+++ b/android/src/main/res/layout/confirm_public_dns.xml
@@ -0,0 +1,32 @@
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:scrollbars="none">
+ <LinearLayout android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:padding="30dp"
+ android:background="@drawable/dialog_background"
+ android:orientation="vertical"
+ android:gravity="left"
+ android:elevation="2dp">
+ <ImageView android:layout_width="44dp"
+ android:layout_height="44dp"
+ android:layout_marginTop="8dp"
+ android:layout_gravity="center"
+ android:src="@drawable/icon_alert" />
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:layout_marginTop="16dp"
+ android:textColor="@color/white80"
+ android:textSize="@dimen/text_small"
+ android:text="@string/confirm_public_dns" />
+ <Button android:id="@+id/confirm_button"
+ android:layout_marginVertical="@dimen/button_separation"
+ android:text="@string/add_anyway"
+ style="@style/RedButton" />
+ <Button android:id="@+id/back_button"
+ android:text="@string/back"
+ style="@style/BlueButton" />
+ </LinearLayout>
+</ScrollView>
diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml
index fb442a9e9b..fbb8182bf4 100644
--- a/android/src/main/res/values/strings.xml
+++ b/android/src/main/res/values/strings.xml
@@ -168,6 +168,9 @@
<string name="add_a_server">Add a server</string>
<string name="custom_dns_example">e.g. 123.456.789.111</string>
<string name="custom_dns_footer">Enable to add at least one DNS server.</string>
+ <string name="confirm_public_dns">The DNS server you are trying to add might not work because
+ it is public. Currently we only support local DNS servers.</string>
+ <string name="add_anyway">Add anyway</string>
<string name="exclude_applications">Exclude applications</string>
<string name="account_url">https://mullvad.net/en/account</string>
<string name="wg_key_url">https://mullvad.net/en/account/ports</string>