diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt index bd59858bd93..79863b4df61 100644 --- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt @@ -6,6 +6,9 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import dagger.Module import dagger.android.ContributesAndroidInjector import de.rki.coronawarnapp.R +import de.rki.coronawarnapp.eol.AppEol +import io.mockk.MockKAnnotations +import io.mockk.impl.annotations.MockK import org.junit.After import org.junit.Before import org.junit.Test @@ -20,11 +23,15 @@ import testhelpers.takeScreenshot @RunWith(AndroidJUnit4::class) class OnboardingPrivacyFragmentTest : BaseUITest() { + @MockK lateinit var appEol: AppEol + @Before fun setup() { + MockKAnnotations.init(this, relaxed = true) + setupMockViewModel( object : OnboardingPrivacyViewModel.Factory { - override fun create(): OnboardingPrivacyViewModel = OnboardingPrivacyViewModel() + override fun create(): OnboardingPrivacyViewModel = OnboardingPrivacyViewModel(appEol) } ) } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragment.kt index 0ea4ee82151..18ffe6d6056 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragment.kt @@ -7,7 +7,6 @@ import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentOnboardingPrivacyBinding -import de.rki.coronawarnapp.databinding.OnboardingScreensLayoutBinding import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBinding @@ -23,7 +22,6 @@ class OnboardingPrivacyFragment : Fragment(R.layout.fragment_onboarding_privacy) @Inject lateinit var viewModelFactory: CWAViewModelFactoryProvider.Factory private val vm: OnboardingPrivacyViewModel by cwaViewModels { viewModelFactory } private val binding: FragmentOnboardingPrivacyBinding by viewBinding() - private val onboardingScreensBinding: OnboardingScreensLayoutBinding by viewBinding() override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -41,6 +39,11 @@ class OnboardingPrivacyFragment : Fragment(R.layout.fragment_onboarding_privacy) ) is OnboardingNavigationEvents.NavigateToOnboardingFragment -> popBackStack() + + is OnboardingNavigationEvents.NavigateToMainActivity -> { + (requireActivity() as OnboardingActivity).completeOnboarding() + } + else -> Unit } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyViewModel.kt index a3f23fadf59..f51f89611ef 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyViewModel.kt @@ -2,15 +2,26 @@ package de.rki.coronawarnapp.ui.onboarding import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject +import de.rki.coronawarnapp.eol.AppEol import de.rki.coronawarnapp.util.ui.SingleLiveEvent import de.rki.coronawarnapp.util.viewmodel.CWAViewModel import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory +import kotlinx.coroutines.flow.first -class OnboardingPrivacyViewModel @AssistedInject constructor() : CWAViewModel() { +class OnboardingPrivacyViewModel @AssistedInject constructor( + eol: AppEol, +) : CWAViewModel() { val routeToScreen: SingleLiveEvent = SingleLiveEvent() + private val isEol = eol.isEol - fun onNextButtonClick() { - routeToScreen.postValue(OnboardingNavigationEvents.NavigateToOnboardingTracing) + fun onNextButtonClick() = launch { + routeToScreen.postValue( + if (isEol.first()) { + OnboardingNavigationEvents.NavigateToMainActivity + } else { + OnboardingNavigationEvents.NavigateToOnboardingTracing + } + ) } fun onBackButtonClick() {