diff options
Diffstat (limited to 'android/src/main/kotlin')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ProblemReportFragment.kt | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ProblemReportFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ProblemReportFragment.kt index a8b47307d2..fa389517ea 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ProblemReportFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ProblemReportFragment.kt @@ -38,6 +38,8 @@ class ProblemReportFragment : Fragment() { private lateinit var responseMessageLabel: TextView private lateinit var responseEmailLabel: TextView + private lateinit var tryAgainButton: Button + private var sendReportJob: Job? = null override fun onAttach(context: Context) { @@ -74,11 +76,17 @@ class ProblemReportFragment : Fragment() { responseMessageLabel = view.findViewById<TextView>(R.id.response_message) responseEmailLabel = view.findViewById<TextView>(R.id.response_email) + tryAgainButton = view.findViewById<Button>(R.id.try_again_button) + sendButton.setOnClickListener { sendReportJob?.cancel() sendReportJob = sendReport() } + tryAgainButton.setOnClickListener { + sendReportJob = sendReport() + } + setSendButtonEnabled(false) userMessageInput.addTextChangedListener(InputWatcher()) @@ -96,7 +104,7 @@ class ProblemReportFragment : Fragment() { problemReport.userEmail = userEmail problemReport.userMessage = userMessageInput.text.toString() - bodyContainer.showNext() + showSendingScreen() if (problemReport.send().await()) { showSuccessScreen(userEmail) @@ -105,6 +113,23 @@ class ProblemReportFragment : Fragment() { } } + private fun showSendingScreen() { + bodyContainer.displayedChild = 1 + + sendingSpinner.visibility = View.VISIBLE + sentSuccessfullyIcon.visibility = View.GONE + failedToSendIcon.visibility = View.GONE + + sendStatusLabel.visibility = View.VISIBLE + sendDetailsLabel.visibility = View.GONE + responseMessageLabel.visibility = View.GONE + responseEmailLabel.visibility = View.GONE + + sendStatusLabel.setText(R.string.sending) + + tryAgainButton.visibility = View.GONE + } + private fun showSuccessScreen(userEmail: String) { sendingSpinner.visibility = View.GONE @@ -119,6 +144,7 @@ class ProblemReportFragment : Fragment() { } sendStatusLabel.setText(R.string.sent) + sendDetailsLabel.setText(R.string.sent_thanks) } private fun showErrorScreen() { @@ -130,6 +156,8 @@ class ProblemReportFragment : Fragment() { sendStatusLabel.setText(R.string.failed_to_send) sendDetailsLabel.setText(R.string.failed_to_send_details) + + tryAgainButton.visibility = View.VISIBLE } private fun setSendButtonEnabled(enabled: Boolean) { |
