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

Commit f13b188

Browse files
committed
Merge branch 'release/2.28.x' into release/2.29.x
2 parents 6ae03ad + 9ace645 commit f13b188

27 files changed

+105
-61
lines changed

Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/eventregistration/organizer/QrCodeDetailFragmentTest.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ class QrCodeDetailFragmentTest : BaseUITest() {
7676
).toBundle()
7777
)
7878

79-
onView(withId(R.id.title)).check(matches(withText("Jahrestreffen der deutschen SAP Anwendergruppe")))
80-
onView(withId(R.id.subtitle)).check(matches(withText("Hauptstr. 3, 69115 Heidelberg")))
79+
onView(withId(R.id.trace_location_organizer_title)).check(matches(withText("Jahrestreffen der deutschen SAP Anwendergruppe")))
80+
onView(withId(R.id.trace_location_organizer_subtitle)).check(matches(withText("Hauptstr. 3, 69115 Heidelberg")))
8181
onView(withId(R.id.eventDate)).check(matches(withText("21.06.2021, 18:00 - 21:00 Uhr")))
8282
}
8383

@@ -88,8 +88,8 @@ class QrCodeDetailFragmentTest : BaseUITest() {
8888
traceLocationId = 2
8989
).toBundle()
9090
)
91-
onView(withId(R.id.title)).check(matches(withText("Event XYZ")))
92-
onView(withId(R.id.subtitle)).check(matches(withText("Otto-Hahn-Str. 3, 123456 Berlin")))
91+
onView(withId(R.id.trace_location_organizer_title)).check(matches(withText("Event XYZ")))
92+
onView(withId(R.id.trace_location_organizer_subtitle)).check(matches(withText("Otto-Hahn-Str. 3, 123456 Berlin")))
9393
onView(withId(R.id.eventDate)).check(matches(withText("18.04.2021, 12:00 - 19.04.2021, 22:52 Uhr")))
9494
}
9595

Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/eventregistration/organizer/TraceLocationsFragmentTest.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ class TraceLocationsFragmentTest : BaseUITest() {
6666

6767
launchFragmentInContainer2<TraceLocationsFragment>()
6868

69-
onView(withId(R.id.description)).check(matches(withText("Jahrestreffen der deutschen SAP Anwendergruppe")))
70-
onView(withId(R.id.address)).check(matches(withText("Hauptstr. 3, 69115 Heidelberg")))
69+
onView(withId(R.id.trace_locations_item_description)).check(matches(withText("Jahrestreffen der deutschen SAP Anwendergruppe")))
70+
onView(withId(R.id.trace_locations_item_address)).check(matches(withText("Hauptstr. 3, 69115 Heidelberg")))
7171
onView(withId(R.id.duration)).check(matches(withText("21.06.21, 18:00 - 21:00 Uhr")))
7272
}
7373

@@ -78,8 +78,8 @@ class TraceLocationsFragmentTest : BaseUITest() {
7878

7979
launchFragmentInContainer2<TraceLocationsFragment>()
8080

81-
onView(withId(R.id.description)).check(matches(withText("Event XYZ")))
82-
onView(withId(R.id.address)).check(matches(withText("Otto-Hahn-Str. 3, 123456 Berlin")))
81+
onView(withId(R.id.trace_locations_item_description)).check(matches(withText("Event XYZ")))
82+
onView(withId(R.id.trace_locations_item_address)).check(matches(withText("Otto-Hahn-Str. 3, 123456 Berlin")))
8383
onView(withId(R.id.duration)).check(matches(withText("18.04.21, 12:00 - 19.04.21, 22:52 Uhr")))
8484
}
8585

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/category/TraceLocationCategoryFragment.kt

+5-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import de.rki.coronawarnapp.R
1010
import de.rki.coronawarnapp.databinding.TraceLocationOrganizerCategoryFragmentBinding
1111
import de.rki.coronawarnapp.ui.presencetracing.organizer.category.adapter.TraceLocationCategoryAdapter
1212
import de.rki.coronawarnapp.util.di.AutoInject
13+
import de.rki.coronawarnapp.util.ui.addTitleId
1314
import de.rki.coronawarnapp.util.ui.observe2
1415
import de.rki.coronawarnapp.util.ui.popBackStack
1516
import de.rki.coronawarnapp.util.ui.viewBinding
@@ -34,7 +35,10 @@ class TraceLocationCategoryFragment : Fragment(R.layout.trace_location_organizer
3435
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
3536
super.onViewCreated(view, savedInstanceState)
3637

37-
binding.toolbar.setNavigationOnClickListener { popBackStack() }
38+
binding.toolbar.apply {
39+
setNavigationOnClickListener { popBackStack() }
40+
addTitleId(R.id.trace_location_organizer_category_fragment_title_id)
41+
}
3842

3943
vm.categoryItems.observe2(this) { categoryItems ->
4044
val adapter = TraceLocationCategoryAdapter(categoryItems) {

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/category/adapter/category/TraceLocationCategoryVH.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ class TraceLocationCategoryVH(parent: ViewGroup, onItemClickListener: (category:
1818
override val onBindData:
1919
TraceLocationOrganizerCategoryItemBinding.(item: TraceLocationCategory, payloads: List<Any>) -> Unit =
2020
{ item, _ ->
21-
title.text = context.getString(item.title)
21+
categoryItemTitle.text = context.getString(item.title)
2222
if (item.subtitle != null) {
23-
subtitle.text = context.getString(item.subtitle)
23+
categoryItemSubtitle.text = context.getString(item.subtitle)
2424
}
2525
root.setOnClickListener { onItemClickListener.invoke(item) }
2626
}

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/create/TraceLocationCreateFragment.kt

+9-3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import de.rki.coronawarnapp.ui.durationpicker.DurationPicker
2323
import de.rki.coronawarnapp.ui.durationpicker.format
2424
import de.rki.coronawarnapp.util.DialogHelper
2525
import de.rki.coronawarnapp.util.di.AutoInject
26+
import de.rki.coronawarnapp.util.ui.addSubtitleId
27+
import de.rki.coronawarnapp.util.ui.addTitleId
2628
import de.rki.coronawarnapp.util.ui.popBackStack
2729
import de.rki.coronawarnapp.util.ui.viewBinding
2830
import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider
@@ -54,9 +56,13 @@ class TraceLocationCreateFragment : Fragment(R.layout.trace_location_create_frag
5456
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
5557
super.onViewCreated(view, savedInstanceState)
5658

57-
binding.toolbar.setNavigationOnClickListener {
58-
it.hideKeyboard()
59-
popBackStack()
59+
binding.toolbar.apply {
60+
setNavigationOnClickListener {
61+
it.hideKeyboard()
62+
popBackStack()
63+
}
64+
addTitleId(R.id.trace_location_create_fragment_title_id)
65+
addSubtitleId(R.id.trace_location_create_fragment_subtitle_id)
6066
}
6167

6268
viewModel.result.observe(viewLifecycleOwner) { result ->

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailFragment.kt

+6-6
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ class QrCodeDetailFragment : Fragment(R.layout.trace_location_organizer_qr_code_
6161

6262
binding.apply {
6363
appBarLayout.onOffsetChange { titleAlpha, subtitleAlpha ->
64-
title.alpha = titleAlpha
65-
subtitle.alpha = subtitleAlpha
64+
traceLocationOrganizerTitle.alpha = titleAlpha
65+
traceLocationOrganizerSubtitle.alpha = subtitleAlpha
6666
checkShadowVisibility()
6767
}
6868
root.viewTreeObserver.addOnGlobalLayoutListener { checkShadowVisibility() }
@@ -116,8 +116,8 @@ class QrCodeDetailFragment : Fragment(R.layout.trace_location_organizer_qr_code_
116116

117117
viewModel.uiState.observe2(this) { uiState ->
118118
with(binding) {
119-
title.text = uiState.description
120-
subtitle.text = uiState.address
119+
traceLocationOrganizerTitle.text = uiState.description
120+
traceLocationOrganizerSubtitle.text = uiState.address
121121

122122
if (uiState.startDateTime != null && uiState.endDateTime != null) {
123123

@@ -168,9 +168,9 @@ class QrCodeDetailFragment : Fragment(R.layout.trace_location_organizer_qr_code_
168168
val params: CoordinatorLayout.LayoutParams = binding.nestedScrollView.layoutParams
169169
as (CoordinatorLayout.LayoutParams)
170170

171-
val textParams = binding.subtitle.layoutParams as (LinearLayout.LayoutParams)
171+
val textParams = binding.traceLocationOrganizerSubtitle.layoutParams as (LinearLayout.LayoutParams)
172172
textParams.bottomMargin = ((width) / 2) - 24 /* 24 is space between screen border and QrCode */
173-
binding.subtitle.requestLayout() /* 24 is space between screen border and QrCode */
173+
binding.traceLocationOrganizerSubtitle.requestLayout() /* 24 is space between screen border and QrCode */
174174

175175
val behavior: AppBarLayout.ScrollingViewBehavior = params.behavior as ((AppBarLayout.ScrollingViewBehavior))
176176
behavior.overlayTop = ((width) / 2) - 24

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/list/TraceLocationsFragment.kt

+7-3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import de.rki.coronawarnapp.util.lists.decorations.TopBottomPaddingDecorator
2424
import de.rki.coronawarnapp.util.lists.diffutil.update
2525
import de.rki.coronawarnapp.util.onScroll
2626
import de.rki.coronawarnapp.util.ui.addMenuId
27+
import de.rki.coronawarnapp.util.ui.addTitleId
2728
import de.rki.coronawarnapp.util.ui.observe2
2829
import de.rki.coronawarnapp.util.ui.popBackStack
2930
import de.rki.coronawarnapp.util.ui.viewBinding
@@ -59,9 +60,12 @@ class TraceLocationsFragment : Fragment(R.layout.trace_location_organizer_trace_
5960
setupSwipe(context = requireContext())
6061
}
6162

62-
binding.toolbar.addMenuId(R.id.trace_locations_fragment_menu_id)
63-
binding.toolbar.setNavigationOnClickListener {
64-
popBackStack()
63+
binding.toolbar.apply {
64+
setNavigationOnClickListener {
65+
popBackStack()
66+
}
67+
addMenuId(R.id.trace_locations_fragment_menu_id)
68+
addTitleId(R.id.trace_location_organizer_trace_locations_list_fragment_title_id)
6569
}
6670

6771
viewModel.traceLocations.observe2(this) {

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/list/items/TraceLocationVH.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ class TraceLocationVH(parent: ViewGroup) :
3737
) -> Unit = { item, _ ->
3838
latestItem = item
3939

40-
description.text = item.traceLocation.description
41-
address.text = item.traceLocation.address
40+
traceLocationsItemDescription.text = item.traceLocation.description
41+
traceLocationsItemAddress.text = item.traceLocation.address
4242

4343
if (item.traceLocation.startDate != null && item.traceLocation.endDate != null) {
4444

@@ -57,7 +57,7 @@ class TraceLocationVH(parent: ViewGroup) :
5757
endTime.format(timeFormat)
5858
)
5959
} else {
60-
icon.setCaption(null)
60+
traceLocationsItemIcon.setCaption(null)
6161
val startDateTime =
6262
"${startTime.toLocalDate().format(dateFormat)}, ${startTime.toLocalTime().format(timeFormat)}"
6363
val endDateTime =
@@ -69,7 +69,7 @@ class TraceLocationVH(parent: ViewGroup) :
6969
)
7070
}
7171
} else {
72-
icon.setCaption(null)
72+
traceLocationsItemIcon.setCaption(null)
7373
duration.isGone = true
7474
}
7575

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/warn/TraceLocationWarnInfoFragment.kt

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import androidx.navigation.fragment.findNavController
77
import com.google.android.material.transition.MaterialSharedAxis
88
import de.rki.coronawarnapp.R
99
import de.rki.coronawarnapp.databinding.TraceLocationOrganizerWarnInfoFragmentBinding
10+
import de.rki.coronawarnapp.util.ui.addTitleId
1011
import de.rki.coronawarnapp.util.ui.popBackStack
1112
import de.rki.coronawarnapp.util.ui.viewBinding
1213

@@ -25,6 +26,7 @@ class TraceLocationWarnInfoFragment : Fragment(R.layout.trace_location_organizer
2526
super.onViewCreated(view, savedInstanceState)
2627
binding.apply {
2728
toolbar.setNavigationOnClickListener { popBackStack() }
29+
toolbar.addTitleId(R.id.trace_location_organizer_warn_info_fragment_title_id)
2830
nextButton.setOnClickListener {
2931
findNavController().navigate(
3032
TraceLocationWarnInfoFragmentDirections

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/warn/duration/TraceLocationWarnDurationFragment.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import de.rki.coronawarnapp.ui.durationpicker.DurationPicker
2020
import de.rki.coronawarnapp.ui.durationpicker.format
2121
import de.rki.coronawarnapp.util.di.AutoInject
2222
import de.rki.coronawarnapp.util.toLocalDateTimeUserTz
23+
import de.rki.coronawarnapp.util.ui.addTitleId
2324
import de.rki.coronawarnapp.util.ui.observe2
2425
import de.rki.coronawarnapp.util.ui.popBackStack
2526
import de.rki.coronawarnapp.util.ui.viewBinding
@@ -61,7 +62,7 @@ class TraceLocationWarnDurationFragment :
6162

6263
viewModel.state.observe2(this) { uiState ->
6364
with(binding) {
64-
description.text = uiState.description
65+
eventDescription.text = uiState.description
6566
eventAddress.text = uiState.address
6667

6768
if (uiState.startDateTime != null && uiState.endDateTime != null) {
@@ -127,6 +128,7 @@ class TraceLocationWarnDurationFragment :
127128
toolbar.setNavigationOnClickListener {
128129
popBackStack()
129130
}
131+
toolbar.addTitleId(R.id.trace_location_organizer_warn_duration_fragment_title_id)
130132
nextButton.setOnClickListener {
131133
viewModel.goNext()
132134
}

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/warn/list/TraceLocationSelectionFragment.kt

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import de.rki.coronawarnapp.R
1010
import de.rki.coronawarnapp.databinding.TraceLocationOrganizerTraceLocationsWarnListFragmentBinding
1111
import de.rki.coronawarnapp.util.di.AutoInject
1212
import de.rki.coronawarnapp.util.lists.diffutil.update
13+
import de.rki.coronawarnapp.util.ui.addTitleId
1314
import de.rki.coronawarnapp.util.ui.observe2
1415
import de.rki.coronawarnapp.util.ui.popBackStack
1516
import de.rki.coronawarnapp.util.ui.viewBinding
@@ -44,6 +45,7 @@ class TraceLocationSelectionFragment :
4445
toolbar.setNavigationOnClickListener {
4546
popBackStack()
4647
}
48+
toolbar.addTitleId(R.id.trace_location_organizer_trace_locations_warn_list_fragment_title_id)
4749

4850
nextButton.setOnClickListener {
4951
viewModel.goNext()

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/warn/list/items/TraceLocationVH.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ class TraceLocationVH(parent: ViewGroup) :
2525
payloads: List<Any>
2626
) -> Unit = { item, _ ->
2727

28-
address.text = item.traceLocation.address
29-
title.text = item.traceLocation.description
28+
warnItemAddress.text = item.traceLocation.address
29+
warnItemTitle.text = item.traceLocation.description
3030
headerCheckbox.setImageResource(if (item.selected) R.drawable.ic_selected else R.drawable.ic_unselected)
3131

3232
if (item.traceLocation.startDate != null && item.traceLocation.endDate != null) {

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/warn/tan/TraceLocationWarnTanFragment.kt

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import de.rki.coronawarnapp.contactdiary.util.hideKeyboard
1313
import de.rki.coronawarnapp.databinding.TraceLocationOrganizerWarnTanFragmentBinding
1414
import de.rki.coronawarnapp.ui.submission.ApiRequestState
1515
import de.rki.coronawarnapp.util.di.AutoInject
16+
import de.rki.coronawarnapp.util.ui.addTitleId
1617
import de.rki.coronawarnapp.util.ui.observe2
1718
import de.rki.coronawarnapp.util.ui.popBackStack
1819
import de.rki.coronawarnapp.util.ui.setGone
@@ -63,6 +64,7 @@ class TraceLocationWarnTanFragment : Fragment(R.layout.trace_location_organizer_
6364
viewModel.startTanSubmission()
6465
}
6566
toolbar.setNavigationOnClickListener { goBack() }
67+
toolbar.addTitleId(R.id.trace_location_organizer_warn_tan_fragment_title_id)
6668
}
6769

6870
viewModel.registrationState.observe2(this) {

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

+10
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,13 @@ fun MaterialToolbar.addMenuId(id: Int) {
1818
fun MaterialToolbar.addNavigationIconButtonId(id: Int) {
1919
ToolbarUtils.getNavigationIconButton(this)?.id = id
2020
}
21+
22+
@SuppressLint("RestrictedApi")
23+
fun MaterialToolbar.addTitleId(id: Int) {
24+
ToolbarUtils.getTitleTextView(this)?.id = id
25+
}
26+
27+
@SuppressLint("RestrictedApi")
28+
fun MaterialToolbar.addSubtitleId(id: Int) {
29+
ToolbarUtils.getSubtitleTextView(this)?.id = id
30+
}

Corona-Warn-App/src/main/res/layout/trace_location_organizer_category_fragment.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
android:background="@color/colorSurface"
99
android:contentDescription="@string/tracelocation_organizer_category_title"
1010
android:orientation="vertical"
11-
android:transitionName="trace_location_organizer_category">
11+
android:transitionName="trace_location_organizer_category"
12+
tools:context=".ui.presencetracing.organizer.category.TraceLocationCategoryFragment">
1213

1314
<com.google.android.material.appbar.MaterialToolbar
1415
android:id="@+id/toolbar"

Corona-Warn-App/src/main/res/layout/trace_location_organizer_category_item.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111
android:orientation="vertical">
1212

1313
<TextView
14-
android:id="@+id/title"
14+
android:id="@+id/category_item_title"
1515
style="@style/body1"
1616
android:textSize="17sp"
1717
android:layout_width="wrap_content"
1818
android:layout_height="wrap_content"
1919
tools:text="Einzelhandel" />
2020

2121
<TextView
22-
android:id="@+id/subtitle"
22+
android:id="@+id/category_item_subtitle"
2323
style="@style/subtitleMedium"
2424
android:layout_width="wrap_content"
2525
android:layout_height="wrap_content"

Corona-Warn-App/src/main/res/layout/trace_location_organizer_qr_code_detail_fragment.xml

+6-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
android:layout_width="match_parent"
77
android:layout_height="match_parent"
88
android:background="@drawable/trace_location_gradient_background"
9-
android:contentDescription="@string/trace_location_event_detail_title_accessibility">
9+
android:contentDescription="@string/trace_location_event_detail_title_accessibility"
10+
tools:context=".ui.presencetracing.organizer.details.QrCodeDetailFragment">
1011

1112
<androidx.coordinatorlayout.widget.CoordinatorLayout
1213
android:id="@+id/coordinator_layout"
@@ -47,7 +48,7 @@
4748
app:layout_collapseMode="parallax">
4849

4950
<TextView
50-
android:id="@+id/title"
51+
android:id="@+id/trace_location_organizer_title"
5152
android:layout_width="match_parent"
5253
android:layout_height="wrap_content"
5354
android:layout_marginHorizontal="24dp"
@@ -61,7 +62,7 @@
6162
tools:text="Jahrestreffen der deutschen SAP Anwendergruppe" />
6263

6364
<TextView
64-
android:id="@+id/subtitle"
65+
android:id="@+id/trace_location_organizer_subtitle"
6566
android:layout_width="match_parent"
6667
android:layout_height="wrap_content"
6768
android:layout_gravity="center"
@@ -94,9 +95,11 @@
9495
android:orientation="horizontal">
9596

9697
<ImageView
98+
android:id="@+id/cwa_logo"
9799
android:layout_width="match_parent"
98100
android:layout_height="wrap_content"
99101
android:layout_marginEnd="72dp"
102+
android:importantForAccessibility="no"
100103
app:srcCompat="@drawable/ic_cwa_logo_white" />
101104

102105
</LinearLayout>

0 commit comments

Comments
 (0)