diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-11 19:31:21 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-12-10 12:55:06 +0000 |
| commit | 18464a3810d96afa72221caaf86d4dd02abfe980 (patch) | |
| tree | 8bcae9adce31e09c14d89899dd04de7809b1e971 /android/src | |
| parent | 2c0a14b0feff2e482562033b037aa37fbd75cdba (diff) | |
| download | mullvadvpn-18464a3810d96afa72221caaf86d4dd02abfe980.tar.xz mullvadvpn-18464a3810d96afa72221caaf86d4dd02abfe980.zip | |
Stop editing when back button is pressed
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt | 19 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt | 3 |
2 files changed, 22 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt index 551f66e390..a63de128fa 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt @@ -29,6 +29,7 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) { val view = inflater.inflate(R.layout.advanced, container, false) view.findViewById<View>(R.id.back).setOnClickListener { + customDnsAdapter.stopEditing() parentActivity.onBackPressed() } @@ -53,10 +54,13 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) { ) } + attachBackButtonHandler() + return view } override fun onSafelyDestroyView() { + detachBackButtonHandler() customDnsAdapter.onDestroy() titleController.onDestroy() settingsListener.unsubscribe(this) @@ -113,4 +117,19 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) { } } } + + private fun attachBackButtonHandler() { + parentActivity.backButtonHandler = { + if (customDnsAdapter.isEditing) { + customDnsAdapter.stopEditing() + true + } else { + false + } + } + } + + private fun detachBackButtonHandler() { + parentActivity.backButtonHandler = null + } } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt index f91ae37f7f..095a7ae7a8 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/customdns/CustomDnsAdapter.kt @@ -47,6 +47,9 @@ class CustomDnsAdapter(val customDns: CustomDns) : Adapter<CustomDnsItemHolder>( } } + val isEditing + get() = editingPosition != null + init { customDns.apply { onDnsServersChanged.subscribe(this) { dnsServers -> |
