diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragment.kt index c6768a15f48d752bc6b7ce8ba8022a4eee645790..f8f62bcc663b04012e9e1d89a2a5b8c5ec4d6c87 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingNotificationsFragment.kt @@ -1,6 +1,9 @@ package de.rki.coronawarnapp.ui.onboarding +import android.content.Intent +import android.net.Uri import android.os.Bundle +import android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -8,7 +11,10 @@ import android.view.accessibility.AccessibilityEvent import androidx.appcompat.app.AlertDialog import androidx.core.app.NotificationManagerCompat import androidx.fragment.app.Fragment +import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentOnboardingNotificationsBinding +import de.rki.coronawarnapp.util.ConnectivityHelper +import de.rki.coronawarnapp.util.DialogHelper /** * This fragment ask the user if he wants to get notifications and finishes the onboarding afterwards. @@ -50,13 +56,43 @@ class OnboardingNotificationsFragment : Fragment() { private fun setButtonOnClickListener() { binding.onboardingButtonNext.setOnClickListener { - navigateToMain() + checkForBackgroundJobDisabled() } binding.onboardingButtonBack.buttonIcon.setOnClickListener { (activity as OnboardingActivity).goBack() } } + private fun checkForBackgroundJobDisabled() { + if (!ConnectivityHelper.isBackgroundJobEnabled(requireActivity())) { + showBackgroundJobDisabledNotification() + } else { + navigateToMain() + } + } + + private fun showBackgroundJobDisabledNotification() { + val dialog = DialogHelper.DialogInstance( + requireActivity(), + R.string.onboarding_background_fetch_dialog_headline, + R.string.onboarding_background_fetch_dialog_body, + R.string.onboarding_background_fetch_dialog_button_positive, + R.string.onboarding_background_fetch_dialog_button_negative, + false, + { + val intent = Intent( + ACTION_APPLICATION_DETAILS_SETTINGS, + Uri.fromParts("package", requireContext().packageName, null) + ) + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + startActivity(intent) + }, + { + navigateToMain() + }) + DialogHelper.showDialog(dialog) + } + private fun navigateToMain() { (requireActivity() as OnboardingActivity).completeOnboarding() } diff --git a/Corona-Warn-App/src/main/res/values-de/strings.xml b/Corona-Warn-App/src/main/res/values-de/strings.xml index c1366d2fba742c635d6f42757977bbf9ad413a00..5fc9794c6dd3287348c64eb6a9b84fcea5b0b7da 100644 --- a/Corona-Warn-App/src/main/res/values-de/strings.xml +++ b/Corona-Warn-App/src/main/res/values-de/strings.xml @@ -407,6 +407,14 @@ <string name="onboarding_tracing_dialog_button_positive">"Nicht aktivieren"</string> <!-- XBUT: onboarding(tracing) - negative button (right) --> <string name="onboarding_tracing_dialog_button_negative">"Zurück"</string> + <!-- XACT: onboarding(tracing) - dialog about background jobs header text --> + <string name="onboarding_background_fetch_dialog_headline">"Hintergrundaktualisierung ausgeschaltet"</string> + <!-- YMSI: onboarding(tracing) - dialog about background jobs --> + <string name="onboarding_background_fetch_dialog_body">"Sie haben die Hintergrundaktualisierung für die Corona-Warn-App ausgeschaltet. Um die automatische Risiko-Ermittlung zu nutzen, müssen Sie die Hintergrundaktualisierung einschalten. Wenn Sie die Hintergrundaktualisierung nicht einschalten, können Sie Ihre Risiko-Ermittlung nur manuell in der App starten. Sie können die Hintergrundaktualisierung für die App jederzeit in den Geräteeinstellungen einschalten."</string> + <!-- XBUT: onboarding(tracing) - dialog about background jobs, open device settings --> + <string name="onboarding_background_fetch_dialog_button_positive">"Geräteeinstellungen öffnen"</string> + <!-- XBUT: onboarding(tracing) - dialog about background jobs, continue in app --> + <string name="onboarding_background_fetch_dialog_button_negative">"Risiko-Ermittlung manuell starten"</string> <!-- XACT: onboarding(tracing) - illustraction description, header image --> <string name="onboarding_tracing_illustration_description">"Drei Personen haben die Risiko-Ermittlung auf ihren Smartphones aktiviert, ihre Begegnung wird daher aufgezeichnet."</string> <!-- XHED: onboarding(tracing) - location explanation for bluetooth headline --> diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml index cde253ab294d73b13bc338439deecc16bc851e75..45a2d59466f43ed9883aecb0503df1c6bbccd145 100644 --- a/Corona-Warn-App/src/main/res/values/strings.xml +++ b/Corona-Warn-App/src/main/res/values/strings.xml @@ -395,6 +395,14 @@ <string name="onboarding_tracing_dialog_button_positive">"Do Not Activate"</string> <!-- XBUT: onboarding(tracing) - negative button (right) --> <string name="onboarding_tracing_dialog_button_negative">"Back"</string> + <!-- XACT: onboarding(tracing) - dialog about background jobs header text --> + <string name="onboarding_background_fetch_dialog_headline"></string> + <!-- YMSI: onboarding(tracing) - dialog about background jobs --> + <string name="onboarding_background_fetch_dialog_body"></string> + <!-- XBUT: onboarding(tracing) - dialog about background jobs, open device settings --> + <string name="onboarding_background_fetch_dialog_button_positive"></string> + <!-- XBUT: onboarding(tracing) - dialog about background jobs, continue in app --> + <string name="onboarding_background_fetch_dialog_button_negative"></string> <!-- XACT: onboarding(tracing) - illustraction description, header image --> <string name="onboarding_tracing_illustration_description">"Three people have activated exposure logging on their devices, which will log their encounters with each other."</string> <!-- XHED: onboarding(tracing) - location explanation for bluetooth headline -->