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

Add Dev menu entry for first reliable time (EXPOSUREAPP-14498) #5778

Merged
merged 3 commits into from
Dec 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -126,6 +127,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")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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,
Expand All @@ -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<SrsSubmissionResult>()
Expand All @@ -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()

Expand Down Expand Up @@ -152,6 +156,10 @@ class SubmissionTestFragmentViewModel @AssistedInject constructor(
tekHistoryUpdater.clearTekCache()
}

fun updateFirstReliableTime(time: Long) = launch {
cwaSettings.updateFirstReliableDeviceTime(Instant.ofEpochMilli(time))
}

@AssistedFactory
interface Factory : SimpleCWAViewModelFactory<SubmissionTestFragmentViewModel>
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,39 @@
android:orientation="vertical"
android:paddingBottom="32dp">

<LinearLayout
style="@style/Card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_tiny"
android:orientation="vertical">
<TextView
style="@style/body1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:text="First Reliable Time"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/first_reliable_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Time: No time"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/date_picker"
style="@style/buttonPrimary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:text="Date Picker" />


</LinearLayout>

<LinearLayout
style="@style/Card"
android:layout_width="match_parent"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@ class SrsSymptomsCalendarFragment : Fragment(R.layout.fragment_submission_sympto

is SrsSymptomsCalendarNavigation.Error -> displayDialog {
setError(it.cause)
positiveButton(R.string.nm_faq_label) { openUrl(R.string.srs_faq_url) }
negativeButton(android.R.string.ok)
positiveButton(android.R.string.ok)
negativeButton(R.string.nm_faq_label) { openUrl(R.string.srs_faq_url) }
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@ class SrsSymptomsIntroductionFragment : Fragment(R.layout.fragment_submission_sy

is SrsSymptomsIntroductionNavigation.Error -> displayDialog {
setError(it.cause)
positiveButton(R.string.nm_faq_label) { openUrl(R.string.srs_faq_url) }
negativeButton(android.R.string.ok)
positiveButton(android.R.string.ok)
negativeButton(R.string.nm_faq_label) { openUrl(R.string.srs_faq_url) }
}
}
}
Expand Down