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

Commit 5013db3

Browse files
authored
Add Dev menu entry for first reliable time (EXPOSUREAPP-14498) (#5778)
* Add Dev menu entry for first reliable time * Lint * Swap error buttons
1 parent 8046d16 commit 5013db3

File tree

5 files changed

+64
-4
lines changed

5 files changed

+64
-4
lines changed

Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/submission/ui/SubmissionTestFragment.kt

+19
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import android.widget.ArrayAdapter
88
import android.widget.Toast
99
import androidx.fragment.app.Fragment
1010
import androidx.recyclerview.widget.LinearLayoutManager
11+
import com.google.android.material.datepicker.MaterialDatePicker
1112
import de.rki.coronawarnapp.R
1213
import de.rki.coronawarnapp.appconfig.ConfigData
1314
import de.rki.coronawarnapp.databinding.FragmentTestSubmissionBinding
@@ -126,6 +127,24 @@ class SubmissionTestFragment : Fragment(R.layout.fragment_test_submission), Auto
126127
vm.deviceTimeState.observe(viewLifecycleOwner) { state ->
127128
binding.deviceTimeState.setText(state?.key ?: "RESET", false)
128129
}
130+
131+
vm.firstReliableTime.observe(viewLifecycleOwner) {
132+
binding.firstReliableTime.text = it.toString()
133+
}
134+
135+
binding.datePicker.setOnClickListener {
136+
MaterialDatePicker
137+
.Builder
138+
.datePicker()
139+
.setSelection(Instant.now().toEpochMilli())
140+
.build()
141+
.apply {
142+
addOnPositiveButtonClickListener {
143+
vm.updateFirstReliableTime(it)
144+
}
145+
}
146+
.show(childFragmentManager, "firstReliableTime.picker")
147+
}
129148
}
130149

131150
@Suppress("DEPRECATION")

Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/submission/ui/SubmissionTestFragmentViewModel.kt

+8
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import dagger.assisted.AssistedFactory
1010
import dagger.assisted.AssistedInject
1111
import de.rki.coronawarnapp.appconfig.AppConfigProvider
1212
import de.rki.coronawarnapp.appconfig.ConfigData
13+
import de.rki.coronawarnapp.main.CWASettings
1314
import de.rki.coronawarnapp.srs.core.AndroidIdProvider
1415
import de.rki.coronawarnapp.srs.core.error.SrsSubmissionTruncatedException
1516
import de.rki.coronawarnapp.srs.core.model.SrsSubmissionType
@@ -24,6 +25,7 @@ import de.rki.coronawarnapp.util.ui.SingleLiveEvent
2425
import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
2526
import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory
2627
import timber.log.Timber
28+
import java.time.Instant
2729

2830
class SubmissionTestFragmentViewModel @AssistedInject constructor(
2931
@BaseGson baseGson: Gson,
@@ -35,6 +37,7 @@ class SubmissionTestFragmentViewModel @AssistedInject constructor(
3537
private val appConfigProvider: AppConfigProvider,
3638
private val srsSubmissionSettings: SrsSubmissionSettings,
3739
private val srsSubmissionRepository: SrsSubmissionRepository,
40+
private val cwaSettings: CWASettings,
3841
) : CWAViewModel(dispatcherProvider = dispatcherProvider) {
3942

4043
val srsSubmissionResult = SingleLiveEvent<SrsSubmissionResult>()
@@ -46,6 +49,7 @@ class SubmissionTestFragmentViewModel @AssistedInject constructor(
4649
val deviceTimeState = srsDevSettings.deviceTimeState.asLiveData2()
4750
val checkLocalPrerequisites = srsDevSettings.checkLocalPrerequisites.asLiveData2()
4851
val forceAndroidIdAcceptance = srsDevSettings.forceAndroidIdAcceptance.asLiveData2()
52+
val firstReliableTime = cwaSettings.firstReliableDeviceTime.asLiveData2()
4953

5054
private val exportJson = baseGson.newBuilder().apply { setPrettyPrinting() }.create()
5155

@@ -152,6 +156,10 @@ class SubmissionTestFragmentViewModel @AssistedInject constructor(
152156
tekHistoryUpdater.clearTekCache()
153157
}
154158

159+
fun updateFirstReliableTime(time: Long) = launch {
160+
cwaSettings.updateFirstReliableDeviceTime(Instant.ofEpochMilli(time))
161+
}
162+
155163
@AssistedFactory
156164
interface Factory : SimpleCWAViewModelFactory<SubmissionTestFragmentViewModel>
157165
}

Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_submission.xml

+33
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,39 @@
1414
android:orientation="vertical"
1515
android:paddingBottom="32dp">
1616

17+
<LinearLayout
18+
style="@style/Card"
19+
android:layout_width="match_parent"
20+
android:layout_height="wrap_content"
21+
android:layout_margin="@dimen/spacing_tiny"
22+
android:orientation="vertical">
23+
<TextView
24+
style="@style/body1"
25+
android:layout_width="match_parent"
26+
android:layout_height="wrap_content"
27+
android:layout_marginBottom="20dp"
28+
android:text="First Reliable Time"
29+
app:layout_constraintTop_toTopOf="parent" />
30+
31+
<TextView
32+
android:id="@+id/first_reliable_time"
33+
android:layout_width="match_parent"
34+
android:layout_height="wrap_content"
35+
android:text="Time: No time"
36+
app:layout_constraintTop_toTopOf="parent" />
37+
38+
<Button
39+
android:id="@+id/date_picker"
40+
style="@style/buttonPrimary"
41+
android:layout_width="match_parent"
42+
android:layout_height="wrap_content"
43+
android:layout_gravity="center"
44+
android:layout_marginTop="10dp"
45+
android:text="Date Picker" />
46+
47+
48+
</LinearLayout>
49+
1750
<LinearLayout
1851
style="@style/Card"
1952
android:layout_width="match_parent"

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/calendar/SrsSymptomsCalendarFragment.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ class SrsSymptomsCalendarFragment : Fragment(R.layout.fragment_submission_sympto
9898

9999
is SrsSymptomsCalendarNavigation.Error -> displayDialog {
100100
setError(it.cause)
101-
positiveButton(R.string.nm_faq_label) { openUrl(R.string.srs_faq_url) }
102-
negativeButton(android.R.string.ok)
101+
positiveButton(android.R.string.ok)
102+
negativeButton(R.string.nm_faq_label) { openUrl(R.string.srs_faq_url) }
103103
}
104104
}
105105
}

Corona-Warn-App/src/main/java/de/rki/coronawarnapp/srs/ui/symptoms/intro/SrsSymptomsIntroductionFragment.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ class SrsSymptomsIntroductionFragment : Fragment(R.layout.fragment_submission_sy
100100

101101
is SrsSymptomsIntroductionNavigation.Error -> displayDialog {
102102
setError(it.cause)
103-
positiveButton(R.string.nm_faq_label) { openUrl(R.string.srs_faq_url) }
104-
negativeButton(android.R.string.ok)
103+
positiveButton(android.R.string.ok)
104+
negativeButton(R.string.nm_faq_label) { openUrl(R.string.srs_faq_url) }
105105
}
106106
}
107107
}

0 commit comments

Comments
 (0)