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

Commit ccc1e37

Browse files
authored
EOL - onboarding (EXPOSUREAPP-14788) (#5851)
* Skip onboarding screens for EOL. * Fix test * Check eol directly in vm.
1 parent bb19623 commit ccc1e37

3 files changed

Lines changed: 27 additions & 6 deletions

File tree

Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragmentTest.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
66
import dagger.Module
77
import dagger.android.ContributesAndroidInjector
88
import de.rki.coronawarnapp.R
9+
import de.rki.coronawarnapp.eol.AppEol
10+
import io.mockk.MockKAnnotations
11+
import io.mockk.impl.annotations.MockK
912
import org.junit.After
1013
import org.junit.Before
1114
import org.junit.Test
@@ -20,11 +23,15 @@ import testhelpers.takeScreenshot
2023
@RunWith(AndroidJUnit4::class)
2124
class OnboardingPrivacyFragmentTest : BaseUITest() {
2225

26+
@MockK lateinit var appEol: AppEol
27+
2328
@Before
2429
fun setup() {
30+
MockKAnnotations.init(this, relaxed = true)
31+
2532
setupMockViewModel(
2633
object : OnboardingPrivacyViewModel.Factory {
27-
override fun create(): OnboardingPrivacyViewModel = OnboardingPrivacyViewModel()
34+
override fun create(): OnboardingPrivacyViewModel = OnboardingPrivacyViewModel(appEol)
2835
}
2936
)
3037
}

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyFragment.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import androidx.fragment.app.Fragment
77
import androidx.navigation.fragment.findNavController
88
import de.rki.coronawarnapp.R
99
import de.rki.coronawarnapp.databinding.FragmentOnboardingPrivacyBinding
10-
import de.rki.coronawarnapp.databinding.OnboardingScreensLayoutBinding
1110
import de.rki.coronawarnapp.util.di.AutoInject
1211
import de.rki.coronawarnapp.util.ui.popBackStack
1312
import de.rki.coronawarnapp.util.ui.viewBinding
@@ -23,7 +22,6 @@ class OnboardingPrivacyFragment : Fragment(R.layout.fragment_onboarding_privacy)
2322
@Inject lateinit var viewModelFactory: CWAViewModelFactoryProvider.Factory
2423
private val vm: OnboardingPrivacyViewModel by cwaViewModels { viewModelFactory }
2524
private val binding: FragmentOnboardingPrivacyBinding by viewBinding()
26-
private val onboardingScreensBinding: OnboardingScreensLayoutBinding by viewBinding()
2725

2826
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
2927
super.onViewCreated(view, savedInstanceState)
@@ -41,6 +39,11 @@ class OnboardingPrivacyFragment : Fragment(R.layout.fragment_onboarding_privacy)
4139
)
4240

4341
is OnboardingNavigationEvents.NavigateToOnboardingFragment -> popBackStack()
42+
43+
is OnboardingNavigationEvents.NavigateToMainActivity -> {
44+
(requireActivity() as OnboardingActivity).completeOnboarding()
45+
}
46+
4447
else -> Unit
4548
}
4649
}

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingPrivacyViewModel.kt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,26 @@ package de.rki.coronawarnapp.ui.onboarding
22

33
import dagger.assisted.AssistedFactory
44
import dagger.assisted.AssistedInject
5+
import de.rki.coronawarnapp.eol.AppEol
56
import de.rki.coronawarnapp.util.ui.SingleLiveEvent
67
import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
78
import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory
9+
import kotlinx.coroutines.flow.first
810

9-
class OnboardingPrivacyViewModel @AssistedInject constructor() : CWAViewModel() {
11+
class OnboardingPrivacyViewModel @AssistedInject constructor(
12+
eol: AppEol,
13+
) : CWAViewModel() {
1014
val routeToScreen: SingleLiveEvent<OnboardingNavigationEvents> = SingleLiveEvent()
15+
private val isEol = eol.isEol
1116

12-
fun onNextButtonClick() {
13-
routeToScreen.postValue(OnboardingNavigationEvents.NavigateToOnboardingTracing)
17+
fun onNextButtonClick() = launch {
18+
routeToScreen.postValue(
19+
if (isEol.first()) {
20+
OnboardingNavigationEvents.NavigateToMainActivity
21+
} else {
22+
OnboardingNavigationEvents.NavigateToOnboardingTracing
23+
}
24+
)
1425
}
1526

1627
fun onBackButtonClick() {

0 commit comments

Comments
 (0)