From 4b6f6d98bcff602c2c7f1fe067921cc90e959743 Mon Sep 17 00:00:00 2001 From: Mohamed <mohamed.metwalli@sap.com> Date: Thu, 8 Apr 2021 16:49:24 +0200 Subject: [PATCH] Improve CheckIns transitions (DEV) (#2768) * Improve transition from CheckIns to its destinations * Polishing * Update trace_location_organizer_qr_code_detail_fragment.xml Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com> --- .../attendee/checkins/CheckInEvent.kt | 2 +- .../attendee/checkins/CheckInsFragment.kt | 50 ++++++++---- .../attendee/checkins/CheckInsViewModel.kt | 7 +- .../checkins/items/ActiveCheckInVH.kt | 6 ++ .../attendee/checkins/items/PastCheckInVH.kt | 7 +- .../confirm/ConfirmCheckInFragment.kt | 8 ++ .../attendee/edit/EditCheckInFragment.kt | 9 +++ .../onboarding/CheckInOnboardingFragment.kt | 11 ++- .../fragment_trace_location_onboarding.xml | 81 ++++++++++--------- ...ce_location_attendee_checkins_fragment.xml | 4 +- ...tion_organizer_qr_code_detail_fragment.xml | 3 +- 11 files changed, 125 insertions(+), 63 deletions(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInEvent.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInEvent.kt index be14a1abc..5af35e5be 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInEvent.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInEvent.kt @@ -11,7 +11,7 @@ sealed class CheckInEvent { data class ConfirmCheckIn(val verifiedTraceLocation: VerifiedTraceLocation) : CheckInEvent() - data class EditCheckIn(val checkInId: Long) : CheckInEvent() + data class EditCheckIn(val checkInId: Long, val position: Int) : CheckInEvent() data class ConfirmSwipeItem(val checkIn: CheckIn, val position: Int) : CheckInEvent() diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInsFragment.kt index b39c06703..4a99d5359 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInsFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInsFragment.kt @@ -17,12 +17,14 @@ import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.DefaultItemAnimator import com.google.android.material.transition.Hold +import com.google.android.material.transition.MaterialSharedAxis import de.rki.coronawarnapp.BuildConfig import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.TraceLocationAttendeeCheckinsFragmentBinding import de.rki.coronawarnapp.eventregistration.checkins.CheckIn import de.rki.coronawarnapp.ui.eventregistration.attendee.checkins.items.CameraPermissionVH import de.rki.coronawarnapp.ui.eventregistration.attendee.checkins.items.CheckInsItem +import de.rki.coronawarnapp.ui.eventregistration.attendee.edit.EditCheckInFragmentArgs import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.list.isSwipeable import de.rki.coronawarnapp.util.list.onSwipeItem @@ -58,11 +60,6 @@ class CheckInsFragment : Fragment(R.layout.trace_location_attendee_checkins_frag private val binding: TraceLocationAttendeeCheckinsFragmentBinding by viewBindingLazy() private val checkInsAdapter = CheckInsAdapter() - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - exitTransition = Hold() - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setupMenu(binding.toolbar) @@ -91,11 +88,14 @@ class CheckInsFragment : Fragment(R.layout.trace_location_attendee_checkins_frag private fun onNavigationEvent(event: CheckInEvent?) { when (event) { - is CheckInEvent.ConfirmCheckIn -> doNavigate( - CheckInsFragmentDirections.actionCheckInsFragmentToConfirmCheckInFragment( - verifiedTraceLocation = event.verifiedTraceLocation + is CheckInEvent.ConfirmCheckIn -> { + setupAxisTransition() + doNavigate( + CheckInsFragmentDirections.actionCheckInsFragmentToConfirmCheckInFragment( + verifiedTraceLocation = event.verifiedTraceLocation + ) ) - ) + } is CheckInEvent.ConfirmSwipeItem -> showRemovalConfirmation(event.checkIn, event.position) @@ -103,15 +103,24 @@ class CheckInsFragment : Fragment(R.layout.trace_location_attendee_checkins_frag is CheckInEvent.ConfirmRemoveAll -> showRemovalConfirmation(null, null) - is CheckInEvent.EditCheckIn -> doNavigate( - CheckInsFragmentDirections.actionCheckInsFragmentToEditCheckInFragment( - editCheckInId = event.checkInId + is CheckInEvent.EditCheckIn -> { + setupHoldTransition() + val navigatorExtras = binding.checkInsList.layoutManager + ?.findViewByPosition(event.position)?.run { + FragmentNavigatorExtras(this to transitionName) + } + findNavController().navigate( + R.id.action_checkInsFragment_to_editCheckInFragment, + EditCheckInFragmentArgs(event.checkInId).toBundle(), + null, + navigatorExtras ) - ) + } - is CheckInEvent.ShowInformation -> + is CheckInEvent.ShowInformation -> { + setupAxisTransition() doNavigate(CheckInsFragmentDirections.actionCheckInsFragmentToCheckInOnboardingFragment(false)) - + } is CheckInEvent.OpenDeviceSettings -> openDeviceSettings() } } @@ -142,6 +151,7 @@ class CheckInsFragment : Fragment(R.layout.trace_location_attendee_checkins_frag private fun bindFAB() { binding.scanCheckinQrcodeFab.apply { setOnClickListener { + setupHoldTransition() findNavController().navigate( R.id.action_checkInsFragment_to_scanCheckInQrCodeFragment, null, @@ -152,6 +162,16 @@ class CheckInsFragment : Fragment(R.layout.trace_location_attendee_checkins_frag } } + private fun setupHoldTransition() { + exitTransition = Hold() + reenterTransition = Hold() + } + + private fun setupAxisTransition() { + exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) + } + private fun bindRecycler() { binding.checkInsList.apply { adapter = checkInsAdapter diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInsViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInsViewModel.kt index 3810a8070..91ebb6441 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInsViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/CheckInsViewModel.kt @@ -105,6 +105,9 @@ class CheckInsViewModel @AssistedInject constructor( when { !checkin.completed -> ActiveCheckInVH.Item( checkin = checkin, + onCardClicked = { checkIn, position -> + events.postValue(CheckInEvent.EditCheckIn(checkIn.id, position)) + }, onRemoveItem = { events.postValue(CheckInEvent.ConfirmRemoveItem(it)) }, onCheckout = { doCheckOutNow(it) }, onSwipeItem = { checkIn, position -> @@ -113,7 +116,9 @@ class CheckInsViewModel @AssistedInject constructor( ) else -> PastCheckInVH.Item( checkin = checkin, - onCardClicked = { events.postValue(CheckInEvent.EditCheckIn(it.id)) }, + onCardClicked = { checkIn, position -> + events.postValue(CheckInEvent.EditCheckIn(checkIn.id, position)) + }, onRemoveItem = { events.postValue(CheckInEvent.ConfirmRemoveItem(it)) }, onSwipeItem = { checkIn, position -> events.postValue(CheckInEvent.ConfirmSwipeItem(checkIn, position)) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/items/ActiveCheckInVH.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/items/ActiveCheckInVH.kt index ec44fa16e..4f91c74d8 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/items/ActiveCheckInVH.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/items/ActiveCheckInVH.kt @@ -78,10 +78,16 @@ class ActiveCheckInVH(parent: ViewGroup) : } checkoutAction.setOnClickListener { curItem.onCheckout(curItem.checkin) } + + itemView.apply { + setOnClickListener { curItem.onCardClicked(curItem.checkin, adapterPosition) } + transitionName = item.checkin.id.toString() + } } data class Item( val checkin: CheckIn, + val onCardClicked: (CheckIn, Int) -> Unit, val onRemoveItem: (CheckIn) -> Unit, val onCheckout: (CheckIn) -> Unit, val onSwipeItem: (CheckIn, Int) -> Unit, diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/items/PastCheckInVH.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/items/PastCheckInVH.kt index 7613181df..4ae061dcb 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/items/PastCheckInVH.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/checkins/items/PastCheckInVH.kt @@ -46,12 +46,15 @@ class PastCheckInVH(parent: ViewGroup) : } } - itemView.setOnClickListener { curItem.onCardClicked(curItem.checkin) } + itemView.apply { + setOnClickListener { curItem.onCardClicked(curItem.checkin, adapterPosition) } + transitionName = item.checkin.id.toString() + } } data class Item( val checkin: CheckIn, - val onCardClicked: (CheckIn) -> Unit, + val onCardClicked: (CheckIn, Int) -> Unit, val onRemoveItem: (CheckIn) -> Unit, val onSwipeItem: (CheckIn, Int) -> Unit, ) : CheckInsItem, HasPayloadDiffer, SwipeConsumer { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/confirm/ConfirmCheckInFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/confirm/ConfirmCheckInFragment.kt index 6f979cd4c..b2d4e6966 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/confirm/ConfirmCheckInFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/confirm/ConfirmCheckInFragment.kt @@ -6,6 +6,7 @@ import androidx.core.view.isGone import androidx.fragment.app.Fragment import androidx.navigation.fragment.navArgs import com.google.android.material.appbar.AppBarLayout +import com.google.android.material.transition.MaterialSharedAxis import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentConfirmCheckInBinding import de.rki.coronawarnapp.ui.durationpicker.DurationPicker @@ -31,6 +32,13 @@ class ConfirmCheckInFragment : Fragment(R.layout.fragment_confirm_check_in), Aut } ) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) + } + private val binding: FragmentConfirmCheckInBinding by viewBindingLazy() override fun onViewCreated(view: View, savedInstanceState: Bundle?) { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInFragment.kt index a4213b87a..4f5471d19 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/edit/EditCheckInFragment.kt @@ -10,6 +10,7 @@ import com.google.android.material.appbar.AppBarLayout import com.google.android.material.datepicker.MaterialDatePicker import com.google.android.material.timepicker.MaterialTimePicker import com.google.android.material.timepicker.TimeFormat +import com.google.android.material.transition.MaterialContainerTransform import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentEditCheckInBinding import de.rki.coronawarnapp.util.di.AutoInject @@ -36,6 +37,13 @@ class EditCheckInFragment : Fragment(R.layout.fragment_edit_check_in), AutoInjec } ) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + sharedElementEnterTransition = MaterialContainerTransform() + sharedElementReturnTransition = MaterialContainerTransform() + } + private val binding: FragmentEditCheckInBinding by viewBindingLazy() override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -71,6 +79,7 @@ class EditCheckInFragment : Fragment(R.layout.fragment_edit_check_in), AutoInjec editCheckinConfirmButton.setOnClickListener { viewModel.onSaveClicked() } + root.transitionName = navArgs.editCheckInId.toString() } viewModel.events.observe2(this) { navEvent -> diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/onboarding/CheckInOnboardingFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/onboarding/CheckInOnboardingFragment.kt index 3f00d809e..1a9eb4cd3 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/onboarding/CheckInOnboardingFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/onboarding/CheckInOnboardingFragment.kt @@ -4,12 +4,14 @@ import android.os.Bundle import android.view.View import androidx.fragment.app.Fragment import androidx.navigation.fragment.navArgs +import com.google.android.material.transition.MaterialSharedAxis import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentTraceLocationOnboardingBinding import de.rki.coronawarnapp.util.ContextExtensions.getDrawableCompat import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.ui.doNavigate import de.rki.coronawarnapp.util.ui.observe2 +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider import de.rki.coronawarnapp.util.viewmodel.cwaViewModels @@ -23,6 +25,13 @@ class CheckInOnboardingFragment : Fragment(R.layout.fragment_trace_location_onbo private val binding: FragmentTraceLocationOnboardingBinding by viewBindingLazy() private val args by navArgs<CheckInOnboardingFragmentArgs>() + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true) + returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false) + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -40,7 +49,7 @@ class CheckInOnboardingFragment : Fragment(R.layout.fragment_trace_location_onbo checkInOnboardingToolbar.apply { navigationIcon = context.getDrawableCompat(R.drawable.ic_close) navigationContentDescription = getString(R.string.accessibility_close) - setNavigationOnClickListener { viewModel.onBackButtonPress() } + setNavigationOnClickListener { popBackStack() } } } } diff --git a/Corona-Warn-App/src/main/res/layout/fragment_trace_location_onboarding.xml b/Corona-Warn-App/src/main/res/layout/fragment_trace_location_onboarding.xml index 8100354a0..3d8399ed7 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_trace_location_onboarding.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_trace_location_onboarding.xml @@ -2,7 +2,8 @@ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:background="@color/colorBackground"> <com.google.android.material.appbar.MaterialToolbar android:id="@+id/check_in_onboarding_toolbar" @@ -19,36 +20,36 @@ style="@style/buttonPrimary" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/trace_location_onboarding_body_confirm" android:layout_marginHorizontal="24dp" android:layout_marginBottom="24dp" + android:text="@string/trace_location_onboarding_body_confirm" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintBottom_toBottomOf="parent"/> + app:layout_constraintStart_toStartOf="parent" /> <androidx.core.widget.NestedScrollView android:id="@+id/check_in_onboarding_scroll_view" android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginBottom="20dp" - app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_toolbar" - app:layout_constraintBottom_toTopOf="@+id/check_in_onboarding_acknowledge" > + app:layout_constraintBottom_toTopOf="@+id/check_in_onboarding_acknowledge" + app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_toolbar"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" - android:layout_height="wrap_content" > + android:layout_height="wrap_content"> <ImageView android:id="@+id/check_in_onboarding_image" android:layout_width="0dp" android:layout_height="190dp" - android:src="@drawable/trace_location_onboarding" android:layout_marginHorizontal="24dp" android:layout_marginTop="4dp" android:contentDescription="@string/trace_location_onboarding_content_description" - app:layout_constraintTop_toTopOf="parent" + android:src="@drawable/trace_location_onboarding" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/check_in_onboarding_title" @@ -56,11 +57,11 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" - android:layout_marginTop="24dp" android:layout_marginHorizontal="24dp" + android:layout_marginTop="24dp" android:text="@string/trace_location_onboarding_title2" - app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_image" /> <TextView @@ -68,11 +69,11 @@ style="@style/subtitleMedium" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginTop="22dp" android:layout_marginHorizontal="24dp" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toEndOf="parent" + android:layout_marginTop="22dp" android:text="@string/trace_location_onboarding_subheadline" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_title" /> <ImageView @@ -83,8 +84,8 @@ android:layout_marginTop="@dimen/spacing_large" android:importantForAccessibility="no" android:src="@drawable/ic_qr_tracing_static" - app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_subtitle" - app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_subtitle" /> <TextView android:id="@+id/check_in_onboarding_warning" @@ -93,9 +94,9 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="16dp" android:text="@string/trace_location_onboarding_body_warning" - app:layout_constraintTop_toTopOf="@id/check_in_warning_image" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/check_in_warning_image" - app:layout_constraintEnd_toEndOf="parent" /> + app:layout_constraintTop_toTopOf="@id/check_in_warning_image" /> <ImageView android:id="@+id/check_in_stay_image" @@ -105,8 +106,8 @@ android:layout_marginTop="@dimen/spacing_medium" android:importantForAccessibility="no" android:src="@drawable/ic_qr_time" - app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_warning" - app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_warning" /> <TextView android:id="@+id/check_in_onboarding_stay" @@ -115,17 +116,17 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="16dp" android:text="@string/trace_location_onboarding_body_stay" - app:layout_constraintTop_toTopOf="@id/check_in_stay_image" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/check_in_warning_image" - app:layout_constraintEnd_toEndOf="parent" /> + app:layout_constraintTop_toTopOf="@id/check_in_stay_image" /> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/check_in_onboarding_card_container" style="@style/cardTracing" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="24dp" android:layout_marginHorizontal="24dp" + android:layout_marginTop="24dp" android:background="#F5F5F5" android:orientation="vertical" app:layout_constraintEnd_toEndOf="parent" @@ -146,20 +147,20 @@ style="@style/subtitle" android:layout_width="0dp" android:layout_height="wrap_content" - android:text="@string/trace_location_onboarding_body_intro" android:layout_marginTop="4dp" - app:layout_constraintStart_toStartOf="parent" + android:text="@string/trace_location_onboarding_body_intro" app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_card_title" /> <ImageView android:id="@+id/check_in_onboarding_bulletpoint1" android:layout_width="8dp" android:layout_height="8dp" - android:src="@drawable/bullet_point" android:layout_marginTop="24dp" - app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_card_subtitle" - app:layout_constraintStart_toStartOf="parent" /> + android:src="@drawable/bullet_point" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_card_subtitle" /> <TextView android:id="@+id/check_in_onboarding_body2" @@ -169,8 +170,8 @@ android:layout_marginStart="15dp" android:layout_marginTop="16dp" android:focusable="true" - android:textStyle="bold" android:text="@string/trace_location_onboarding_body_consent2" + android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/check_in_onboarding_bulletpoint1" app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_card_subtitle" /> @@ -192,10 +193,10 @@ android:id="@+id/check_in_onboarding_bulletpoint2" android:layout_width="8dp" android:layout_height="8dp" - android:src="@drawable/bullet_point" android:layout_marginTop="22dp" - app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_body3" - app:layout_constraintStart_toStartOf="parent" /> + android:src="@drawable/bullet_point" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_body3" /> <TextView android:id="@+id/check_in_onboarding_body4" @@ -205,8 +206,8 @@ android:layout_marginStart="15dp" android:layout_marginTop="16dp" android:focusable="true" - android:textStyle="bold" android:text="@string/trace_location_onboarding_body_consent4" + android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/check_in_onboarding_bulletpoint2" app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_body3" /> @@ -215,10 +216,10 @@ android:id="@+id/check_in_onboarding_bulletpoint3" android:layout_width="8dp" android:layout_height="8dp" - android:src="@drawable/bullet_point" android:layout_marginTop="22dp" - app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_body4" - app:layout_constraintStart_toStartOf="parent" /> + android:src="@drawable/bullet_point" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_body4" /> <TextView android:id="@+id/check_in_onboarding_body5" @@ -228,8 +229,8 @@ android:layout_marginStart="15dp" android:layout_marginTop="16dp" android:focusable="true" - android:textStyle="bold" android:text="@string/trace_location_onboarding_body_consent5" + android:textStyle="bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/check_in_onboarding_bulletpoint3" app:layout_constraintTop_toBottomOf="@id/check_in_onboarding_body4" /> @@ -255,8 +256,8 @@ android:layout_marginHorizontal="24dp" android:layout_marginTop="30dp" android:focusable="true" - app:titleText="@string/contact_diary_onboarding_legal_information" - app:layout_constraintTop_toBottomOf="@+id/check_in_onboarding_card_container"/> + app:layout_constraintTop_toBottomOf="@+id/check_in_onboarding_card_container" + app:titleText="@string/contact_diary_onboarding_legal_information" /> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.core.widget.NestedScrollView> diff --git a/Corona-Warn-App/src/main/res/layout/trace_location_attendee_checkins_fragment.xml b/Corona-Warn-App/src/main/res/layout/trace_location_attendee_checkins_fragment.xml index 0d86c8e35..1e665b70b 100644 --- a/Corona-Warn-App/src/main/res/layout/trace_location_attendee_checkins_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/trace_location_attendee_checkins_fragment.xml @@ -4,7 +4,8 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/content_container" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:background="@color/colorBackground"> <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" @@ -58,6 +59,7 @@ android:layout_marginTop="36dp" android:text="@string/trace_location_checkins_empty_label" android:textStyle="bold" /> + <TextView style="@style/body2Medium" android:layout_width="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/trace_location_organizer_qr_code_detail_fragment.xml b/Corona-Warn-App/src/main/res/layout/trace_location_organizer_qr_code_detail_fragment.xml index 7927284dd..9396dc157 100644 --- a/Corona-Warn-App/src/main/res/layout/trace_location_organizer_qr_code_detail_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/trace_location_organizer_qr_code_detail_fragment.xml @@ -6,8 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/trace_location_gradient_background" - android:contentDescription="@string/trace_location_event_detail_title_accessibility" - android:transitionName="trace_location_container_transition"> + android:contentDescription="@string/trace_location_event_detail_title_accessibility"> <androidx.coordinatorlayout.widget.CoordinatorLayout android:id="@+id/coordinator_layout" -- GitLab