diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-19 19:17:21 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-12-14 13:59:04 +0000 |
| commit | ea40ff6455c5624a95fc0f53a7c3e65e23c28c27 (patch) | |
| tree | 4e93abc29664e4a5371eb06f9059cfa25cd329b4 /android | |
| parent | 78804209e7be8c1171402977f0489275faecf1bc (diff) | |
| download | mullvadvpn-ea40ff6455c5624a95fc0f53a7c3e65e23c28c27.tar.xz mullvadvpn-ea40ff6455c5624a95fc0f53a7c3e65e23c28c27.zip | |
Create `ConfirmPublicDnsDialogFragment`
Diffstat (limited to 'android')
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> |
