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 b2d4e6966c17ff02d5b504c1f8f4902cd2016a76..c2c41c171a2460b04492eac95fdf2c102bceed3d 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 @@ -107,7 +107,6 @@ class ConfirmCheckInFragment : Fragment(R.layout.fragment_confirm_check_in), Aut ) { val durationPicker = DurationPicker.Builder() .duration(defaultValue ?: "00:00") - .minutes() .title(getString(R.string.duration_dialog_title)) .build() durationPicker.show(parentFragmentManager, DURATION_PICKER_TAG) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/confirm/ConfirmCheckInViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/confirm/ConfirmCheckInViewModel.kt index 840682e97c68268d05e0cfc5ce38376f7c1a3eba..4fa1bc62e1d070432e2b243a727fe5facf39dc36 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/confirm/ConfirmCheckInViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/eventregistration/attendee/confirm/ConfirmCheckInViewModel.kt @@ -20,6 +20,7 @@ import kotlinx.coroutines.flow.combine import org.joda.time.Duration import org.joda.time.Instant import org.joda.time.format.DateTimeFormat +import kotlin.math.roundToLong class ConfirmCheckInViewModel @AssistedInject constructor( @Assisted private val verifiedTraceLocation: VerifiedTraceLocation, @@ -28,11 +29,14 @@ class ConfirmCheckInViewModel @AssistedInject constructor( ) : CWAViewModel() { private val traceLocation = MutableStateFlow(verifiedTraceLocation.traceLocation) private val createJournalEntry = MutableStateFlow(true) - private val checkInLength = MutableStateFlow( - Duration.standardMinutes( - verifiedTraceLocation.traceLocation.defaultCheckInLengthInMinutes?.toLong() ?: 0L - ) + + private val truncatedDefaultCheckInLength = roundToNearestValidDuration( + verifiedTraceLocation.traceLocation.defaultCheckInLengthInMinutes ?: 0 ) + private val checkInLength = MutableStateFlow(truncatedDefaultCheckInLength) + + private fun roundToNearestValidDuration(minutes: Int): Duration = + Duration.standardMinutes((minutes.toFloat() / 15).roundToLong() * 15) val openDatePickerEvent = SingleLiveEvent<String>() val events = SingleLiveEvent<ConfirmCheckInNavigation>() @@ -98,7 +102,7 @@ class ConfirmCheckInViewModel @AssistedInject constructor( address = traceLocation.address, traceLocationStart = traceLocation.startDate, traceLocationEnd = traceLocation.endDate, - defaultCheckInLengthInMinutes = traceLocation.defaultCheckInLengthInMinutes, + defaultCheckInLengthInMinutes = truncatedDefaultCheckInLength.standardMinutes.toInt(), cryptographicSeed = traceLocation.cryptographicSeed, cnPublicKey = traceLocation.cnPublicKey, checkInStart = checkInStart,