From c3167c48922257438a326f5467c0f1d7291a76ef Mon Sep 17 00:00:00 2001
From: Matthias Urhahn <matthias.urhahn@sap.com>
Date: Tue, 6 Oct 2020 13:02:35 +0200
Subject: [PATCH] Fix code smells (code duplication) (EXPOSUREAPP-3058) (#1321)

* Fix code smell: Duplicate code blocks.

* Fix code smell: Duplicate code blocks part2.

* Fix code smell: Duplicate code blocks part3.

* Fix code smell: Duplicate code blocks part4.
---
 .../exception/http/CwaWebException.kt         | 12 ++++++------
 .../fragment/SubmissionQRCodeScanFragment.kt  | 14 +-------------
 ...ssionResultPositiveOtherWarningFragment.kt | 19 ++++---------------
 .../fragment/SubmissionTanFragment.kt         | 14 +-------------
 .../fragment/SubmissionTestResultFragment.kt  | 17 ++---------------
 5 files changed, 14 insertions(+), 62 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/http/CwaWebException.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/http/CwaWebException.kt
index 4925705a4..4fa8b6eff 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/http/CwaWebException.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/http/CwaWebException.kt
@@ -3,29 +3,29 @@ package de.rki.coronawarnapp.exception.http
 import de.rki.coronawarnapp.exception.reporting.ErrorCodes
 import de.rki.coronawarnapp.exception.reporting.ReportedIOException
 
-open class CwaWebException(statusCode: Int) : ReportedIOException(
+open class CwaWebException(val statusCode: Int) : ReportedIOException(
     ErrorCodes.CWA_WEB_REQUEST_PROBLEM.code, "error during web request, http status $statusCode"
 )
 
-open class CwaServerError(val statusCode: Int) : CwaWebException(statusCode) {
+open class CwaServerError(statusCode: Int) : CwaWebException(statusCode) {
     init {
         if (statusCode !in 500..599)
             throw IllegalArgumentException("a server error has to have code 5xx")
     }
 }
 
-open class CwaClientError(val statusCode: Int) : CwaWebException(statusCode) {
+open class CwaClientError(statusCode: Int) : CwaWebException(statusCode) {
     init {
         if (statusCode !in 400..499)
             throw IllegalArgumentException("a client error has to have code 4xx")
     }
 }
 
-open class CwaSuccessResponseWithCodeMismatchNotSupportedError(val statusCode: Int) :
+open class CwaSuccessResponseWithCodeMismatchNotSupportedError(statusCode: Int) :
     CwaWebException(statusCode)
 
-open class CwaInformationalNotSupportedError(val statusCode: Int) : CwaWebException(statusCode)
-open class CwaRedirectNotSupportedError(val statusCode: Int) : CwaWebException(statusCode)
+open class CwaInformationalNotSupportedError(statusCode: Int) : CwaWebException(statusCode)
+open class CwaRedirectNotSupportedError(statusCode: Int) : CwaWebException(statusCode)
 
 class CwaUnknownHostException : CwaWebException(901)
 class BadRequestException : CwaClientError(400)
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionQRCodeScanFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionQRCodeScanFragment.kt
index 395769997..704b7f3cf 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionQRCodeScanFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionQRCodeScanFragment.kt
@@ -60,19 +60,7 @@ class SubmissionQRCodeScanFragment : Fragment(R.layout.fragment_submission_qr_co
                 { startDecode() },
                 ::navigateToDispatchScreen
             )
-            is CwaServerError -> DialogHelper.DialogInstance(
-                requireActivity(),
-                R.string.submission_error_dialog_web_generic_error_title,
-                getString(
-                    R.string.submission_error_dialog_web_generic_network_error_body,
-                    exception.statusCode
-                ),
-                R.string.submission_error_dialog_web_generic_error_button_positive,
-                null,
-                true,
-                ::navigateToDispatchScreen
-            )
-            is CwaClientError -> DialogHelper.DialogInstance(
+            is CwaClientError, is CwaServerError -> DialogHelper.DialogInstance(
                 requireActivity(),
                 R.string.submission_error_dialog_web_generic_error_title,
                 getString(
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionResultPositiveOtherWarningFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionResultPositiveOtherWarningFragment.kt
index b864c0bc6..bd47c0037 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionResultPositiveOtherWarningFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionResultPositiveOtherWarningFragment.kt
@@ -14,6 +14,7 @@ import de.rki.coronawarnapp.databinding.FragmentSubmissionPositiveOtherWarningBi
 import de.rki.coronawarnapp.exception.http.BadRequestException
 import de.rki.coronawarnapp.exception.http.CwaClientError
 import de.rki.coronawarnapp.exception.http.CwaServerError
+import de.rki.coronawarnapp.exception.http.CwaWebException
 import de.rki.coronawarnapp.exception.http.ForbiddenException
 import de.rki.coronawarnapp.nearby.InternalExposureNotificationPermissionHelper
 import de.rki.coronawarnapp.ui.doNavigate
@@ -33,7 +34,7 @@ class SubmissionResultPositiveOtherWarningFragment :
 
     private val binding: FragmentSubmissionPositiveOtherWarningBinding by viewBindingLazy()
     private lateinit var internalExposureNotificationPermissionHelper:
-            InternalExposureNotificationPermissionHelper
+        InternalExposureNotificationPermissionHelper
 
     // Overrides default back behaviour
     private val backCallback: OnBackPressedCallback =
@@ -49,7 +50,7 @@ class SubmissionResultPositiveOtherWarningFragment :
         tracingViewModel.refreshIsTracingEnabled()
     }
 
-    private fun buildErrorDialog(exception: Exception): DialogHelper.DialogInstance {
+    private fun buildErrorDialog(exception: CwaWebException): DialogHelper.DialogInstance {
         return when (exception) {
             is BadRequestException -> DialogHelper.DialogInstance(
                 requireActivity(),
@@ -69,19 +70,7 @@ class SubmissionResultPositiveOtherWarningFragment :
                 true,
                 ::navigateToSubmissionResultFragment
             )
-            is CwaServerError -> DialogHelper.DialogInstance(
-                requireActivity(),
-                R.string.submission_error_dialog_web_generic_error_title,
-                getString(
-                    R.string.submission_error_dialog_web_generic_network_error_body,
-                    exception.statusCode
-                ),
-                R.string.submission_error_dialog_web_generic_error_button_positive,
-                null,
-                true,
-                ::navigateToSubmissionResultFragment
-            )
-            is CwaClientError -> DialogHelper.DialogInstance(
+            is CwaServerError, is CwaClientError -> DialogHelper.DialogInstance(
                 requireActivity(),
                 R.string.submission_error_dialog_web_generic_error_title,
                 getString(
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTanFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTanFragment.kt
index b078ad1f9..1244e7f44 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTanFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTanFragment.kt
@@ -45,19 +45,7 @@ class SubmissionTanFragment : Fragment(R.layout.fragment_submission_tan) {
                 true,
                 ::goBack
             )
-            is CwaServerError -> DialogHelper.DialogInstance(
-                requireActivity(),
-                R.string.submission_error_dialog_web_generic_error_title,
-                getString(
-                    R.string.submission_error_dialog_web_generic_network_error_body,
-                    exception.statusCode
-                ),
-                R.string.submission_error_dialog_web_generic_error_button_positive,
-                null,
-                true,
-                ::goBack
-            )
-            is CwaClientError -> DialogHelper.DialogInstance(
+            is CwaClientError, is CwaServerError -> DialogHelper.DialogInstance(
                 requireActivity(),
                 R.string.submission_error_dialog_web_generic_error_title,
                 getString(
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTestResultFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTestResultFragment.kt
index f1491771d..4e70213b3 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTestResultFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTestResultFragment.kt
@@ -7,7 +7,6 @@ import android.view.accessibility.AccessibilityEvent
 import androidx.activity.OnBackPressedCallback
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.Observer
 import androidx.navigation.fragment.findNavController
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentSubmissionTestResultBinding
@@ -51,19 +50,7 @@ class SubmissionTestResultFragment : Fragment(R.layout.fragment_submission_test_
 
     private fun buildErrorDialog(exception: CwaWebException): DialogHelper.DialogInstance {
         return when (exception) {
-            is CwaServerError -> DialogHelper.DialogInstance(
-                requireActivity(),
-                R.string.submission_error_dialog_web_generic_error_title,
-                getString(
-                    R.string.submission_error_dialog_web_generic_network_error_body,
-                    exception.statusCode
-                ),
-                R.string.submission_error_dialog_web_generic_error_button_positive,
-                null,
-                true,
-                ::navigateToMainScreen
-            )
-            is CwaClientError -> DialogHelper.DialogInstance(
+            is CwaClientError, is CwaServerError -> DialogHelper.DialogInstance(
                 requireActivity(),
                 R.string.submission_error_dialog_web_generic_error_title,
                 getString(
@@ -102,7 +89,7 @@ class SubmissionTestResultFragment : Fragment(R.layout.fragment_submission_test_
             DialogHelper.showDialog(buildErrorDialog(it))
         }
 
-        submissionViewModel.deviceUiState.observe(viewLifecycleOwner, Observer { uiState ->
+        submissionViewModel.deviceUiState.observe(viewLifecycleOwner, { uiState ->
             if (uiState == DeviceUIState.PAIRED_REDEEMED) {
                 showRedeemedTokenWarningDialog()
             }
-- 
GitLab