From 53c4e48e67d9794126c762cbea2d531b862210fb Mon Sep 17 00:00:00 2001 From: Mohamed Date: Thu, 22 Dec 2022 10:24:15 +0100 Subject: [PATCH 1/3] Add Dev menu entry for first reliable time --- .../submission/ui/SubmissionTestFragment.kt | 21 ++++++++++++ .../ui/SubmissionTestFragmentViewModel.kt | 8 +++++ .../res/layout/fragment_test_submission.xml | 33 +++++++++++++++++++ 3 files changed, 62 insertions(+) diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/submission/ui/SubmissionTestFragment.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/submission/ui/SubmissionTestFragment.kt index 7f966cdedda..f3a20f3d2a5 100644 --- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/submission/ui/SubmissionTestFragment.kt +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/submission/ui/SubmissionTestFragment.kt @@ -8,6 +8,7 @@ import android.widget.ArrayAdapter import android.widget.Toast import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager +import com.google.android.material.datepicker.MaterialDatePicker import de.rki.coronawarnapp.R import de.rki.coronawarnapp.appconfig.ConfigData import de.rki.coronawarnapp.databinding.FragmentTestSubmissionBinding @@ -15,6 +16,7 @@ import de.rki.coronawarnapp.srs.ui.dialogs.showTruncatedSubmissionDialog import de.rki.coronawarnapp.test.menu.ui.TestMenuItem import de.rki.coronawarnapp.tracing.ui.tracingConsentDialog import de.rki.coronawarnapp.ui.dialog.displayDialog +import de.rki.coronawarnapp.ui.presencetracing.organizer.warn.duration.TraceLocationWarnDurationFragment import de.rki.coronawarnapp.util.HashExtensions.toHexString import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.lists.diffutil.update @@ -23,6 +25,7 @@ import de.rki.coronawarnapp.util.ui.viewBinding import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider import de.rki.coronawarnapp.util.viewmodel.cwaViewModels import java.time.Instant +import java.time.ZoneId import javax.inject.Inject @SuppressLint("SetTextI18n") @@ -126,6 +129,24 @@ class SubmissionTestFragment : Fragment(R.layout.fragment_test_submission), Auto vm.deviceTimeState.observe(viewLifecycleOwner) { state -> binding.deviceTimeState.setText(state?.key ?: "RESET", false) } + + vm.firstReliableTime.observe(viewLifecycleOwner) { + binding.firstReliableTime.text = it.toString() + } + + binding.datePicker.setOnClickListener { + MaterialDatePicker + .Builder + .datePicker() + .setSelection(Instant.now().toEpochMilli()) + .build() + .apply { + addOnPositiveButtonClickListener{ + vm.updateFirstReliableTime(it) + } + } + .show(childFragmentManager, "firstReliableTime.picker") + } } @Suppress("DEPRECATION") diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/submission/ui/SubmissionTestFragmentViewModel.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/submission/ui/SubmissionTestFragmentViewModel.kt index c68f65fed24..869056fa83c 100644 --- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/submission/ui/SubmissionTestFragmentViewModel.kt +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/submission/ui/SubmissionTestFragmentViewModel.kt @@ -10,6 +10,7 @@ import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import de.rki.coronawarnapp.appconfig.AppConfigProvider import de.rki.coronawarnapp.appconfig.ConfigData +import de.rki.coronawarnapp.main.CWASettings import de.rki.coronawarnapp.srs.core.AndroidIdProvider import de.rki.coronawarnapp.srs.core.error.SrsSubmissionTruncatedException import de.rki.coronawarnapp.srs.core.model.SrsSubmissionType @@ -24,6 +25,7 @@ import de.rki.coronawarnapp.util.ui.SingleLiveEvent import de.rki.coronawarnapp.util.viewmodel.CWAViewModel import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory import timber.log.Timber +import java.time.Instant class SubmissionTestFragmentViewModel @AssistedInject constructor( @BaseGson baseGson: Gson, @@ -35,6 +37,7 @@ class SubmissionTestFragmentViewModel @AssistedInject constructor( private val appConfigProvider: AppConfigProvider, private val srsSubmissionSettings: SrsSubmissionSettings, private val srsSubmissionRepository: SrsSubmissionRepository, + private val cwaSettings: CWASettings, ) : CWAViewModel(dispatcherProvider = dispatcherProvider) { val srsSubmissionResult = SingleLiveEvent() @@ -46,6 +49,7 @@ class SubmissionTestFragmentViewModel @AssistedInject constructor( val deviceTimeState = srsDevSettings.deviceTimeState.asLiveData2() val checkLocalPrerequisites = srsDevSettings.checkLocalPrerequisites.asLiveData2() val forceAndroidIdAcceptance = srsDevSettings.forceAndroidIdAcceptance.asLiveData2() + val firstReliableTime = cwaSettings.firstReliableDeviceTime.asLiveData2() private val exportJson = baseGson.newBuilder().apply { setPrettyPrinting() }.create() @@ -152,6 +156,10 @@ class SubmissionTestFragmentViewModel @AssistedInject constructor( tekHistoryUpdater.clearTekCache() } + fun updateFirstReliableTime(time: Long) = launch { + cwaSettings.updateFirstReliableDeviceTime(Instant.ofEpochMilli(time)) + } + @AssistedFactory interface Factory : SimpleCWAViewModelFactory } diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_submission.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_submission.xml index a342e904376..6329c608eda 100644 --- a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_submission.xml +++ b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_submission.xml @@ -14,6 +14,39 @@ android:orientation="vertical" android:paddingBottom="32dp"> + + + + + +