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

Commit 44867f7

Browse files
authored
Update Register Test Card in Home Fragment for SRS (EXPOSUREAPP-14173) (#5683)
* Update homescreen card with the new srs UI. * Update button string resource. * Delete old strings. * Use unique IDs * Fix drawable issue for Android 6.0.
1 parent 33fb7af commit 44867f7

17 files changed

+621
-100
lines changed

Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeData.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ import de.rki.coronawarnapp.submission.ui.homecards.PcrTestPendingCard
1717
import de.rki.coronawarnapp.submission.ui.homecards.PcrTestPositiveCard
1818
import de.rki.coronawarnapp.submission.ui.homecards.PcrTestSubmissionDoneCard
1919
import de.rki.coronawarnapp.submission.ui.homecards.RapidTestNegativeCard
20+
import de.rki.coronawarnapp.submission.ui.homecards.RegisterTestCard
2021
import de.rki.coronawarnapp.submission.ui.homecards.TestFetchingCard
21-
import de.rki.coronawarnapp.submission.ui.homecards.TestUnregisteredCard
2222
import de.rki.coronawarnapp.tracing.RiskCalculationState
2323
import de.rki.coronawarnapp.tracing.states.IncreasedRisk
2424
import de.rki.coronawarnapp.tracing.states.LowRisk
@@ -127,7 +127,7 @@ object HomeData {
127127
}
128128

129129
object Submission {
130-
val TEST_UNREGISTERED_ITEM = TestUnregisteredCard.Item(
130+
val TEST_UNREGISTERED_ITEM = RegisterTestCard.Item(
131131
state = NoTest,
132132
onClickAction = {}
133133
)

Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/hometestcards/ui/HomeTestCardsFragmentViewModel.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import de.rki.coronawarnapp.submission.ui.homecards.RapidTestPendingCard
2121
import de.rki.coronawarnapp.submission.ui.homecards.RapidTestPositiveCard
2222
import de.rki.coronawarnapp.submission.ui.homecards.RapidTestReadyCard
2323
import de.rki.coronawarnapp.submission.ui.homecards.RapidTestSubmissionDoneCard
24+
import de.rki.coronawarnapp.submission.ui.homecards.RegisterTestCard
2425
import de.rki.coronawarnapp.submission.ui.homecards.TestFetchingCard
2526
import de.rki.coronawarnapp.submission.ui.homecards.TestResultItem
26-
import de.rki.coronawarnapp.submission.ui.homecards.TestUnregisteredCard
2727
import de.rki.coronawarnapp.ui.main.home.items.HomeItem
2828
import de.rki.coronawarnapp.util.coroutine.DispatcherProvider
2929
import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
@@ -38,7 +38,7 @@ class HomeTestCardsFragmentViewModel @AssistedInject constructor(
3838

3939
private val cards: Flow<List<TestResultItem>> = flowOf(
4040
listOf(
41-
TestUnregisteredCard.Item(SubmissionStatePCR.NoTest) {},
41+
RegisterTestCard.Item(SubmissionStatePCR.NoTest) {},
4242
TestFetchingCard.Item(SubmissionStatePCR.FetchingResult),
4343
PcrTestPendingCard.Item(SubmissionStatePCR.TestPending) {},
4444
PcrTestReadyCard.Item(SubmissionStatePCR.TestResultReady) {},
+7-7
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,34 @@ package de.rki.coronawarnapp.submission.ui.homecards
33
import android.view.ViewGroup
44
import de.rki.coronawarnapp.R
55
import de.rki.coronawarnapp.coronatest.type.CommonSubmissionStates
6-
import de.rki.coronawarnapp.databinding.HomeSubmissionStatusCardUnregisteredBinding
7-
import de.rki.coronawarnapp.submission.ui.homecards.TestUnregisteredCard.Item
6+
import de.rki.coronawarnapp.databinding.HomeSubmissionRegisterTestCardBinding
7+
import de.rki.coronawarnapp.submission.ui.homecards.RegisterTestCard.Item
88
import de.rki.coronawarnapp.ui.main.home.HomeAdapter
99
import de.rki.coronawarnapp.util.lists.diffutil.HasPayloadDiffer
1010

11-
class TestUnregisteredCard(
11+
class RegisterTestCard(
1212
parent: ViewGroup
13-
) : HomeAdapter.HomeItemVH<Item, HomeSubmissionStatusCardUnregisteredBinding>(
13+
) : HomeAdapter.HomeItemVH<Item, HomeSubmissionRegisterTestCardBinding>(
1414
R.layout.home_card_container_layout,
1515
parent
1616
) {
1717

1818
override val viewBinding = lazy {
19-
HomeSubmissionStatusCardUnregisteredBinding.inflate(
19+
HomeSubmissionRegisterTestCardBinding.inflate(
2020
layoutInflater,
2121
itemView.findViewById(R.id.card_container),
2222
true
2323
)
2424
}
2525

26-
override val onBindData: HomeSubmissionStatusCardUnregisteredBinding.(
26+
override val onBindData: HomeSubmissionRegisterTestCardBinding.(
2727
item: Item,
2828
payloads: List<Any>
2929
) -> Unit = { item, payloads ->
3030
val curItem = payloads.filterIsInstance<Item>().lastOrNull() ?: item
3131

3232
itemView.setOnClickListener { curItem.onClickAction(item) }
33-
nextStepsAction.setOnClickListener { curItem.onClickAction(item) }
33+
registerTestCardContinue.setOnClickListener { curItem.onClickAction(item) }
3434
}
3535

3636
data class Item(

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

+3
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ class MainActivity : AppCompatActivity(), HasAndroidInjector {
164164
is MainActivityEvent.GoToCheckInsFragment -> navController.navigate(
165165
CheckInsFragment.createDeepLink(event.uriString)
166166
)
167+
167168
is MainActivityEvent.Error -> displayDialog { setError(event.error) }
168169
is MainActivityEvent.OpenScanner -> navigateToScanner()
169170
}
@@ -182,6 +183,7 @@ class MainActivity : AppCompatActivity(), HasAndroidInjector {
182183
showRestoreCoronaTestConfirmation(coronaTestResult.recycledCoronaTest)
183184
null
184185
}
186+
185187
is CoronaTestQRCodeHandler.TestRegistrationSelection ->
186188
NavGraphDirections.actionGlobalTestRegistrationSelectionFragment(
187189
coronaTestQrCode = coronaTestResult.coronaTestQrCode
@@ -199,6 +201,7 @@ class MainActivity : AppCompatActivity(), HasAndroidInjector {
199201
is CoronaTestRestoreEvent.RestoreDuplicateTest -> NavGraphDirections.actionToSubmissionDeletionWarningFragment(
200202
event.restoreRecycledTestRequest
201203
)
204+
202205
is CoronaTestRestoreEvent.RestoredTest -> NavGraphDirections.actionGlobalMainFragment()
203206
}.let { navController.navigate(it) }
204207

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeAdapter.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ import de.rki.coronawarnapp.submission.ui.homecards.RapidTestPendingCard
2020
import de.rki.coronawarnapp.submission.ui.homecards.RapidTestPositiveCard
2121
import de.rki.coronawarnapp.submission.ui.homecards.RapidTestReadyCard
2222
import de.rki.coronawarnapp.submission.ui.homecards.RapidTestSubmissionDoneCard
23+
import de.rki.coronawarnapp.submission.ui.homecards.RegisterTestCard
2324
import de.rki.coronawarnapp.submission.ui.homecards.TestFetchingCard
24-
import de.rki.coronawarnapp.submission.ui.homecards.TestUnregisteredCard
2525
import de.rki.coronawarnapp.tracing.ui.homecards.IncreasedRiskCard
2626
import de.rki.coronawarnapp.tracing.ui.homecards.LowRiskCard
2727
import de.rki.coronawarnapp.tracing.ui.homecards.TracingDisabledCard
@@ -76,7 +76,7 @@ class HomeAdapter :
7676
TypedVHCreatorMod({ data[it] is RapidTestReadyCard.Item }) { RapidTestReadyCard(it) },
7777
TypedVHCreatorMod({ data[it] is RapidTestPendingCard.Item }) { RapidTestPendingCard(it) },
7878
TypedVHCreatorMod({ data[it] is RapidTestOutdatedCard.Item }) { RapidTestOutdatedCard(it) },
79-
TypedVHCreatorMod({ data[it] is TestUnregisteredCard.Item }) { TestUnregisteredCard(it) },
79+
TypedVHCreatorMod({ data[it] is RegisterTestCard.Item }) { RegisterTestCard(it) },
8080
TypedVHCreatorMod({ data[it] is StatisticsHomeCard.Item }) { StatisticsHomeCard(it) },
8181
SavedStateMod<HomeItemVH<HomeItem, ViewBinding>>() // For statistics card scroll position
8282
)

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt

+6-6
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ import de.rki.coronawarnapp.submission.ui.homecards.RapidTestPendingCard
5050
import de.rki.coronawarnapp.submission.ui.homecards.RapidTestPositiveCard
5151
import de.rki.coronawarnapp.submission.ui.homecards.RapidTestReadyCard
5252
import de.rki.coronawarnapp.submission.ui.homecards.RapidTestSubmissionDoneCard
53+
import de.rki.coronawarnapp.submission.ui.homecards.RegisterTestCard
5354
import de.rki.coronawarnapp.submission.ui.homecards.TestFetchingCard
54-
import de.rki.coronawarnapp.submission.ui.homecards.TestUnregisteredCard
5555
import de.rki.coronawarnapp.tag
5656
import de.rki.coronawarnapp.tracing.GeneralTracingStatus
5757
import de.rki.coronawarnapp.tracing.states.IncreasedRisk
@@ -303,13 +303,13 @@ class HomeFragmentViewModel @AssistedInject constructor(
303303
) {
304304
// PCR test card, register test is added below
305305
val pcrTestCard = testPCR.toTestCardItem(testPCR?.identifier.orEmpty())
306-
if (pcrTestCard !is TestUnregisteredCard.Item) {
306+
if (pcrTestCard !is RegisterTestCard.Item) {
307307
add(pcrTestCard)
308308
}
309309

310310
// RAT test card, register test is added below
311311
val ratTestCard = testRAT.toTestCardItem(coronaTestParameters, testRAT?.identifier.orEmpty())
312-
if (ratTestCard !is TestUnregisteredCard.Item) {
312+
if (ratTestCard !is RegisterTestCard.Item) {
313313
add(ratTestCard)
314314
}
315315

@@ -325,7 +325,7 @@ class HomeFragmentViewModel @AssistedInject constructor(
325325

326326
// Register test card
327327
add(
328-
TestUnregisteredCard.Item(SubmissionStatePCR.NoTest) {
328+
RegisterTestCard.Item(SubmissionStatePCR.NoTest) {
329329
events.postValue(HomeFragmentEvents.GoToSubmissionDispatcher)
330330
}
331331
)
@@ -360,7 +360,7 @@ class HomeFragmentViewModel @AssistedInject constructor(
360360

361361
private fun PCRCoronaTest?.toTestCardItem(testIdentifier: TestIdentifier) =
362362
when (val state = this.toSubmissionState()) {
363-
is SubmissionStatePCR.NoTest -> TestUnregisteredCard.Item(state) {
363+
is SubmissionStatePCR.NoTest -> RegisterTestCard.Item(state) {
364364
events.postValue(HomeFragmentEvents.GoToSubmissionDispatcher)
365365
}
366366

@@ -410,7 +410,7 @@ class HomeFragmentViewModel @AssistedInject constructor(
410410

411411
private fun RACoronaTest?.toTestCardItem(coronaTestConfig: CoronaTestConfig, testIdentifier: TestIdentifier) =
412412
when (val state = this.toSubmissionState(timeStamper.nowUTC, coronaTestConfig)) {
413-
is SubmissionStateRAT.NoTest -> TestUnregisteredCard.Item(state) {
413+
is SubmissionStateRAT.NoTest -> RegisterTestCard.Item(state) {
414414
events.postValue(HomeFragmentEvents.GoToSubmissionDispatcher)
415415
}
416416

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
xmlns:aapt="http://schemas.android.com/aapt"
3+
android:width="336dp"
4+
android:height="243dp"
5+
android:viewportWidth="336"
6+
android:viewportHeight="243">
7+
<path android:pathData="M0,4C0,1.79 1.79,0 4,0H332C334.21,0 336,1.79 336,4V243H0V4Z">
8+
<aapt:attr name="android:fillColor">
9+
<gradient
10+
android:endX="324.11"
11+
android:endY="257.94"
12+
android:startX="0"
13+
android:startY="0"
14+
android:type="linear">
15+
<item
16+
android:color="#FF1E1E1F"
17+
android:offset="0" />
18+
<item
19+
android:color="#FF2D414D"
20+
android:offset="1" />
21+
</gradient>
22+
</aapt:attr>
23+
</path>
24+
</vector>

0 commit comments

Comments
 (0)