diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-06 14:41:26 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-11 13:15:50 +0000 |
| commit | c13bdafd0762a462747e304a9c4a7e92780f3b3f (patch) | |
| tree | 6bf6ae2e08ae8d5fe1074a0b1ccb0d2abbec45ae /android | |
| parent | 0dfcff9215358702e84ff9cc70ccdb759366b902 (diff) | |
| download | mullvadvpn-c13bdafd0762a462747e304a9c4a7e92780f3b3f.tar.xz mullvadvpn-c13bdafd0762a462747e304a9c4a7e92780f3b3f.zip | |
Only enable Redeem Button when daemon is running
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt index 18f6f6f828..6ce9db7350 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/RedeemVoucherDialogFragment.kt @@ -1,6 +1,7 @@ package net.mullvad.mullvadvpn.ui import android.app.Dialog +import android.content.Context import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.support.v4.app.DialogFragment @@ -12,6 +13,7 @@ import android.view.ViewGroup import android.view.ViewGroup.LayoutParams import android.widget.EditText import net.mullvad.mullvadvpn.R +import net.mullvad.mullvadvpn.service.MullvadDaemon import net.mullvad.mullvadvpn.ui.widget.Button import net.mullvad.mullvadvpn.util.JobTracker import net.mullvad.mullvadvpn.util.SegmentedInputFormatter @@ -21,14 +23,33 @@ const val FULL_VOUCHER_CODE_LENGTH = "XXXX-XXXX-XXXX-XXXX".length class RedeemVoucherDialogFragment : DialogFragment() { private val jobTracker = JobTracker() + private lateinit var parentActivity: MainActivity + private lateinit var voucherInput: EditText + + private var redeemButton: Button? = null + private var subscriptionId: Int? = null + + private var daemon: MullvadDaemon? = null + set(value) { + field = value + updateRedeemButton() + } + private var voucherInputIsValid = false set(value) { field = value updateRedeemButton() } - private lateinit var redeemButton: Button - private lateinit var voucherInput: EditText + override fun onAttach(context: Context) { + super.onAttach(context) + + parentActivity = context as MainActivity + + subscriptionId = parentActivity.serviceNotifier.subscribe { connection -> + daemon = connection?.daemon + } + } override fun onCreateView( inflater: LayoutInflater, @@ -83,8 +104,18 @@ class RedeemVoucherDialogFragment : DialogFragment() { super.onDestroyView() } + override fun onDetach() { + subscriptionId?.let { id -> + parentActivity.serviceNotifier.unsubscribe(id) + } + + super.onDetach() + } + private fun updateRedeemButton() { - redeemButton.setEnabled(voucherInputIsValid) + redeemButton?.apply { + setEnabled(voucherInputIsValid && daemon != null) + } } inner class ValidVoucherCodeChecker : TextWatcher { |
