Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

Commit

Permalink
Fix crash / remove the faulty dialog (EXPOSUREAPP-14192) (#5660)
Browse files Browse the repository at this point in the history
* Fix crash

* lint

* Mention ticket

* Remove dialog.

Co-authored-by: SamuraiKek <[email protected]>
  • Loading branch information
mtwalli and SamuraiKek authored Oct 21, 2022
1 parent 161d9d3 commit 703f287
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 32 deletions.
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
package de.rki.coronawarnapp.ui.dialog

import android.content.DialogInterface
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.util.ContextExtensions.getColorCompat

fun Fragment.displayDialog(
cancelable: Boolean = true,
isDeleteDialog: Boolean = false,
onDismissAction: () -> Unit = { },
dialog: MaterialAlertDialogBuilder? = null,
config: MaterialAlertDialogBuilder.(DialogFragment) -> Unit = { }
config: MaterialAlertDialogBuilder.() -> Unit = { }
) {
/*
TODO fix serialization by https://jira-ibs.wbs.net.sap/browse/EXPOSUREAPP-14210
DialogFragmentTemplate.newInstance(
DialogFragmentTemplate.DialogTemplateParams(
cancelable,
Expand All @@ -20,23 +24,57 @@ fun Fragment.displayDialog(
dialog,
config
)
).show(childFragmentManager, DialogFragmentTemplate.TAG)
).show(childFragmentManager, DialogFragmentTemplate.TAG)*/

val alertDialogBuilder = dialog ?: MaterialAlertDialogBuilder(requireContext())
val alertDialog = alertDialogBuilder.apply {
config()
setCancelable(cancelable)
setOnDismissListener {
onDismissAction()
}
}.create()
alertDialog.show()

if (isDeleteDialog) {
alertDialog.getButton(DialogInterface.BUTTON_POSITIVE)?.setTextColor(
requireContext().getColorCompat(R.color.colorTextDeleteButtonDialog)
)
}
}

fun AppCompatActivity.displayDialog(
cancelable: Boolean = true,
isDeleteDialog: Boolean = false,
onDismissAction: () -> Unit = { },
dialog: MaterialAlertDialogBuilder? = null,
config: MaterialAlertDialogBuilder.(DialogFragment) -> Unit = { }
config: MaterialAlertDialogBuilder.() -> Unit = { }
) {
/*
TODO fix serialization by https://jira-ibs.wbs.net.sap/browse/EXPOSUREAPP-14210
DialogFragmentTemplate.newInstance(
DialogFragmentTemplate.DialogTemplateParams(
cancelable,
isDeleteDialog,
onDismissAction,
dialog,
config
DialogFragmentTemplate.DialogTemplateParams(
cancelable,
isDeleteDialog,
onDismissAction,
dialog,
config
)
).show(supportFragmentManager, DialogFragmentTemplate.TAG)*/

val alertDialogBuilder = dialog ?: MaterialAlertDialogBuilder(this)
val alertDialog = alertDialogBuilder.apply {
config()
setCancelable(cancelable)
setOnDismissListener {
onDismissAction()
}
}.create()
alertDialog.show()

if (isDeleteDialog) {
alertDialog.getButton(DialogInterface.BUTTON_POSITIVE)?.setTextColor(
getColorCompat(R.color.colorTextDeleteButtonDialog)
)
).show(supportFragmentManager, DialogFragmentTemplate.TAG)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,12 @@ class OnboardingTracingFragment : Fragment(R.layout.fragment_onboarding_tracing)
when (it) {
is OnboardingNavigationEvents.NavigateToOnboardingTest -> navigateToOnboardingTestFragment()
is OnboardingNavigationEvents.ShowCancelDialog ->
displayDialog { dialog ->
displayDialog {
setTitle(R.string.onboarding_tracing_dialog_headline)
setMessage(R.string.onboarding_tracing_dialog_body)
setPositiveButton(R.string.onboarding_tracing_dialog_button_positive) { _, _ ->
vm.disableTracingIfEnabled()
navigateToOnboardingTestFragment()
dialog.dismiss()
}
setNegativeButton(R.string.onboarding_tracing_dialog_button_negative) { _, _ -> }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,15 @@ class SubmissionResultPositiveOtherWarningNoConsentFragment :
viewModel.onConsentButtonClicked()
}
binding.toolbar.setNavigationOnClickListener {
showCloseDialog()
viewModel.onBackPressed()
}

viewModel.navigateBack.observe2(this) {
goBack()
}

val backCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() = showCloseDialog()
override fun handleOnBackPressed() = viewModel.onBackPressed()
}
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, backCallback)

Expand Down Expand Up @@ -105,15 +105,6 @@ class SubmissionResultPositiveOtherWarningNoConsentFragment :
popBackStack()
}

private fun showCloseDialog() = displayDialog {
setTitle(R.string.submission_positive_other_warning_dialog_title)
setMessage(R.string.submission_positive_other_warning_dialog_body)
setPositiveButton(R.string.submission_positive_other_warning_dialog_positive_button) { _, _ -> }
setNegativeButton(R.string.submission_positive_other_warning_dialog_negative_button) { _, _ ->
viewModel.onBackPressed()
}
}

override fun onResume() {
super.onResume()
viewModel.onResume()
Expand Down
8 changes: 0 additions & 8 deletions Corona-Warn-App/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1181,14 +1181,6 @@ Sollten Sie den Test in der App gelöscht haben, können Sie ihn aus dem Papierk
<string name="submission_accept_button">"Einverstanden"</string>
<!-- XACT: other warning - illustration description, explanation image -->
<string name="submission_positive_other_illustration_description">"Ein Smartphone übermittelt einen positiven Testbefund verschlüsselt ins System."</string>
<!-- XHED: CLose screen popup title for no consent given cancel dialog -->
<string name="submission_positive_other_warning_dialog_title">"Zufalls-IDs über Corona-Warn-App teilen?"</string>
<!-- XHED: Close screen popup body for no consent given cancel dialog -->
<string name="submission_positive_other_warning_dialog_body">"Ihre Zufalls-IDs der letzten 14 Tage werden dazu genutzt, andere darüber zu benachrichtigen, dass Sie in ihrer Nähe gewesen sind und sie daher möglicherweise in Kontakt mit einer Person gekommen sind, die positiv auf COVID-19 getestet worden ist. Ihre Identität wird niemals mit anderen Personen geteilt."</string>
<!-- XBUT: Close screen pupup negative button for no consent given cancel dialog -->
<string name="submission_positive_other_warning_dialog_negative_button">"Nicht Teilen"</string>
<!-- XBUT: Close screen popup positive button for no consent given cancel dialog -->
<string name="submission_positive_other_warning_dialog_positive_button">"Teilen"</string>

<!-- Submission Positive Other Warning No Consent -->
<!-- YTXT: Body text for the positive result additional warning page-->
Expand Down

0 comments on commit 703f287

Please sign in to comment.