Skip to content

Commit

Permalink
Unrounded results for experts and coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
dzlabing committed Apr 26, 2023
1 parent eea88c9 commit fc0548a
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 8 deletions.
44 changes: 38 additions & 6 deletions app/src/main/java/at/rtr/rmbt/android/ui/DataBindingAdapters.kt
Original file line number Diff line number Diff line change
Expand Up @@ -869,11 +869,20 @@ fun AppCompatTextView.setDownload(speedDownloadClassification: Classification) {
/**
* A binding adapter that is used for show download speed with classification icon in results
*/
@BindingAdapter("speedDownloadResult", "speedDownloadClassificationResult", requireAll = true)
fun AppCompatTextView.speedDownloadResult(speedDownloadResult: Long, speedDownloadClassificationResult: Classification) {
@BindingAdapter("speedDownloadResult", "speedDownloadClassificationResult","isExpert", requireAll = true)
fun AppCompatTextView.speedDownloadResult(speedDownloadResult: Long, speedDownloadClassificationResult: Classification,isExpert: Boolean) {

text = if (speedDownloadResult > 0) {
context.getString(R.string.measurement_download_upload_speed, ((speedDownloadResult.toFloat() / 1000f).format()))
if (isExpert) { //do not format for experts
context.getString(
R.string.measurement_download_upload_speed,
((speedDownloadResult.toFloat() / 1000f).toString())
)
} else
context.getString(
R.string.measurement_download_upload_speed,
((speedDownloadResult.toFloat() / 1000f).format())
)
} else {
context.getString(R.string.measurement_dash)
}
Expand Down Expand Up @@ -903,10 +912,33 @@ fun getSpeedDownloadClassification(speedDownloadClassification: Classification):
/**
* A binding adapter that is used for show upload speed with classification icon in results
*/
@BindingAdapter("speedUploadResult", "speedUploadClassificationResult", requireAll = true)
fun AppCompatTextView.speedUploadResult(speedUploadResult: Long, speedUploadClassificationResult: Classification) {
@BindingAdapter("speedUploadResult", "speedUploadClassificationResult","isExpert", requireAll = true)
fun AppCompatTextView.speedUploadResult(speedUploadResult: Long, speedUploadClassificationResult: Classification, isExpert: Boolean) {
text = if (speedUploadResult > 0) {
if (isExpert) { //do not format for experts
context.getString(
R.string.measurement_download_upload_speed,
((speedUploadResult.toFloat() / 1000f).toString())
)
} else
context.getString(
R.string.measurement_download_upload_speed,
((speedUploadResult.toFloat() / 1000f).format())
)
} else {
context.getString(R.string.measurement_dash)
}
setCompoundDrawablesWithIntrinsicBounds(getSpeedUploadClassificationIcon(speedUploadClassificationResult), 0, 0, 0)
}

/**
* A binding adapter that is used to show expert upload speed with classification icon in results
*/

@BindingAdapter("expertSpeedUploadResult", "expertSpeedUploadClassificationResult", requireAll = true)
fun AppCompatTextView.expertSpeedUploadResult(speedUploadResult: Long, speedUploadClassificationResult: Classification) {
text = if (speedUploadResult > 0) {
context.getString(R.string.measurement_download_upload_speed, ((speedUploadResult.toFloat() / 1000f).format()))
context.getString(R.string.measurement_download_upload_speed, ((speedUploadResult.toFloat() / 1000f)).toString())
} else {
context.getString(R.string.measurement_dash)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,29 @@ package at.rtr.rmbt.android.ui.viewstate
import android.os.Bundle
import androidx.databinding.ObservableBoolean
import androidx.databinding.ObservableField
import at.rtr.rmbt.android.config.AppConfig
import at.rtr.rmbt.android.ui.activity.ResultsActivity
import at.specure.data.ClientUUID
import at.specure.data.ControlServerSettings
import at.specure.data.MeasurementServers
import at.specure.data.entity.QoeInfoRecord
import at.specure.data.entity.QosCategoryRecord
import at.specure.data.entity.TestResultRecord
import at.specure.data.repository.SettingsRepository

private const val KEY_TEST_UUID = "KEY_TEST_UUID"
private const val KEY_RETURN_POINT = "KEY_RETURN_POINT"
private const val KEY_PLAY_SERVICES = "KEY_PLAY_SERVICES"

class ResultViewState : ViewState {
class ResultViewState constructor(
val appConfig: AppConfig,

) : ViewState {

var playServicesAvailable = ObservableBoolean(false)
val testResult = ObservableField<TestResultRecord?>()
val expertModeEnabled = ObservableField(appConfig.expertModeEnabled)
val coverageModeEnabled = ObservableField(appConfig.coverageModeEnabled)
val qoeRecords = ObservableField<List<QoeInfoRecord>>()
val qosCategoryRecords = ObservableField<List<QosCategoryRecord>>()
lateinit var testUUID: String
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package at.rtr.rmbt.android.viewmodel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import at.rmbt.util.exception.HandledException
import at.rtr.rmbt.android.config.AppConfig
import at.rtr.rmbt.android.ui.viewstate.ResultViewState
import at.specure.data.entity.QoeInfoRecord
import at.specure.data.entity.QosCategoryRecord
Expand All @@ -18,10 +19,11 @@ import kotlinx.coroutines.launch
import javax.inject.Inject

class ResultViewModel @Inject constructor(
private val appConfig: AppConfig,
private val testResultsRepository: TestResultsRepository
) : BaseViewModel() {

val state = ResultViewState()
val state = ResultViewState(appConfig)

val testServerResultLiveData: LiveData<TestResultRecord?>
get() = testResultsRepository.getServerTestResult(state.testUUID)
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/layout/activity_results.xml
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@
app:layout_constraintTop_toBottomOf="@+id/labelResultBottomDownload"
app:speedDownloadClassificationResult="@{state.testResult.downloadClass == null ? Classification.NONE : state.testResult.downloadClass}"
app:speedDownloadResult="@{state.testResult.downloadSpeedKbs}"
app:isExpert="@{(state.expertModeEnabled != null &amp;&amp; state.expertModeEnabled == true) || (state.coverageModeEnabled != null &amp;&amp; state.coverageModeEnabled == true)}"
tools:drawableStart="@drawable/ic_small_download_light_green"
tools:text="24.12 Mbit/s" />

Expand All @@ -282,6 +283,7 @@
app:layout_constraintTop_toBottomOf="@+id/labelResultBottomUpload"
app:speedUploadClassificationResult="@{state.testResult.uploadClass == null ? Classification.NONE : state.testResult.uploadClass}"
app:speedUploadResult="@{state.testResult.uploadSpeedKbs}"
app:isExpert="@{(state.expertModeEnabled != null &amp;&amp; state.expertModeEnabled == true) || (state.coverageModeEnabled != null &amp;&amp; state.coverageModeEnabled == true)}"
tools:drawableStart="@drawable/ic_small_upload_gray"
tools:text="135 Mbit/s" />

Expand Down

0 comments on commit fc0548a

Please sign in to comment.