Skip to content
Snippets Groups Projects
Unverified Commit bb16d0f6 authored by Kolya Opahle's avatar Kolya Opahle Committed by GitHub
Browse files

Added a dialog to Onboarding for background restricted apps (#882)

parent 9a5d6faa
No related branches found
No related tags found
No related merge requests found
package de.rki.coronawarnapp.ui.onboarding package de.rki.coronawarnapp.ui.onboarding
import android.content.Intent
import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
...@@ -8,7 +11,10 @@ import android.view.accessibility.AccessibilityEvent ...@@ -8,7 +11,10 @@ import android.view.accessibility.AccessibilityEvent
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.app.NotificationManagerCompat import androidx.core.app.NotificationManagerCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.databinding.FragmentOnboardingNotificationsBinding 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. * This fragment ask the user if he wants to get notifications and finishes the onboarding afterwards.
...@@ -50,13 +56,43 @@ class OnboardingNotificationsFragment : Fragment() { ...@@ -50,13 +56,43 @@ class OnboardingNotificationsFragment : Fragment() {
private fun setButtonOnClickListener() { private fun setButtonOnClickListener() {
binding.onboardingButtonNext.setOnClickListener { binding.onboardingButtonNext.setOnClickListener {
navigateToMain() checkForBackgroundJobDisabled()
} }
binding.onboardingButtonBack.buttonIcon.setOnClickListener { binding.onboardingButtonBack.buttonIcon.setOnClickListener {
(activity as OnboardingActivity).goBack() (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() { private fun navigateToMain() {
(requireActivity() as OnboardingActivity).completeOnboarding() (requireActivity() as OnboardingActivity).completeOnboarding()
} }
......
...@@ -407,6 +407,14 @@ ...@@ -407,6 +407,14 @@
<string name="onboarding_tracing_dialog_button_positive">"Nicht aktivieren"</string> <string name="onboarding_tracing_dialog_button_positive">"Nicht aktivieren"</string>
<!-- XBUT: onboarding(tracing) - negative button (right) --> <!-- XBUT: onboarding(tracing) - negative button (right) -->
<string name="onboarding_tracing_dialog_button_negative">"Zurück"</string> <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 --> <!-- 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> <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 --> <!-- XHED: onboarding(tracing) - location explanation for bluetooth headline -->
......
...@@ -395,6 +395,14 @@ ...@@ -395,6 +395,14 @@
<string name="onboarding_tracing_dialog_button_positive">"Do Not Activate"</string> <string name="onboarding_tracing_dialog_button_positive">"Do Not Activate"</string>
<!-- XBUT: onboarding(tracing) - negative button (right) --> <!-- XBUT: onboarding(tracing) - negative button (right) -->
<string name="onboarding_tracing_dialog_button_negative">"Back"</string> <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 --> <!-- 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> <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 --> <!-- XHED: onboarding(tracing) - location explanation for bluetooth headline -->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment