Clean and simplify code
Add comment in UserEntry (data type for each Unit)
This commit is contained in:
parent
f3d6fff565
commit
01a1321cbb
|
@ -116,9 +116,9 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
|
|||
}
|
||||
Units.Mg_Dl -> valuesWithUnitString += if (profileFunction.getUnits()==Constants.MGDL) DecimalFormatter.to0Decimal(v.dValue) + resourceHelper.gs(Units.Mg_Dl.stringId()) + separator else DecimalFormatter.to1Decimal(v.dValue/Constants.MMOLL_TO_MGDL) + resourceHelper.gs(Units.Mmol_L.stringId()) + separator
|
||||
Units.Mmol_L -> valuesWithUnitString += if (profileFunction.getUnits()==Constants.MGDL) DecimalFormatter.to0Decimal(v.dValue*Constants.MMOLL_TO_MGDL) + resourceHelper.gs(Units.Mg_Dl.stringId()) + separator else DecimalFormatter.to1Decimal(v.dValue) + resourceHelper.gs(Units.Mmol_L.stringId()) + separator
|
||||
Units.G -> valuesWithUnitString += v.iValue.toString() + resourceHelper.gs(Units.G.stringId()) + separator
|
||||
Units.U_H -> valuesWithUnitString += DecimalFormatter.to2Decimal(v.dValue) + resourceHelper.gs(Units.U_H.stringId()) + separator
|
||||
else -> valuesWithUnitString += if (v.dValue != 0.0 || v.iValue != 0 || v.sValue != "") { v.value().toString() + if (!v.unit.stringId().equals(0)) resourceHelper.gs(v.unit.stringId()) + separator else separator } else ""
|
||||
Units.U_H, Units.U -> valuesWithUnitString += DecimalFormatter.to2Decimal(v.dValue) + resourceHelper.gs(v.unit.stringId()) + separator
|
||||
Units.G, Units.M, Units.H, Units.Percent -> valuesWithUnitString += v.iValue.toString() + resourceHelper.gs(v.unit.stringId()) + separator
|
||||
else -> valuesWithUnitString += if (v.iValue != 0 || v.sValue != "") { v.value().toString() + if (!v.unit.stringId().equals(0)) resourceHelper.gs(v.unit.stringId()) + separator else separator } else ""
|
||||
}
|
||||
}
|
||||
if (current.values.size > 0)
|
||||
|
|
|
@ -89,36 +89,43 @@ class ClassicPrefsFormat @Inject constructor(
|
|||
}
|
||||
|
||||
fun UserEntriesToCsv(userEntries: List<UserEntry>): String {
|
||||
val userEntryHeader = "Date;UTC Offset;Action;Note;Value;Unit\n"
|
||||
val userEntryHeader = resourceHelper.gs(R.string.ue_csv_header) + "\n"
|
||||
return userEntryHeader + userEntries.joinToString("\n") { entry ->
|
||||
if (entry.values.size > 0) {
|
||||
entry.values.joinToString("\n") { value ->
|
||||
dateUtil.dateAndTimeAndSecondsString(entry.timestamp) + ";" +
|
||||
entry.timestamp.toString() + ";" +
|
||||
dateUtil.dateAndTimeAndSecondsString(entry.timestamp) + ";" +
|
||||
dateUtil.timeString(entry.utcOffset) + ";" +
|
||||
"\"" + resourceHelper.gs(entry.action.stringId()) + "\";" +
|
||||
if (entry.s != "") {"\""+ entry.s.replace("\"", "\"\"") + "\";" } else { ";" } +
|
||||
valueWithUnitToCsv(value) }
|
||||
csvString(entry.action.stringId()) + ";" +
|
||||
csvString(entry.s) + ";" +
|
||||
valueWithUnitToCsv(value)
|
||||
}
|
||||
} else {
|
||||
dateUtil.dateAndTimeAndSecondsString(entry.timestamp) + ";" +
|
||||
entry.timestamp.toString() + ";" +
|
||||
dateUtil.dateAndTimeAndSecondsString(entry.timestamp) + ";" +
|
||||
dateUtil.timeString(entry.utcOffset) + ";" +
|
||||
"\"" + resourceHelper.gs(entry.action.stringId()) + "\";" +
|
||||
if (entry.s != "") {"\""+ entry.s.replace("\"", "\"\"") + "\";" } else { ";;" }
|
||||
csvString(entry.action.stringId()) + ";" +
|
||||
csvString(entry.s) + ";;"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun valueWithUnitToCsv(v: ValueWithUnit): String {
|
||||
return when (v.unit) {
|
||||
Units.Timestamp -> dateUtil.dateAndTimeAndSecondsString(v.lValue) + ";" + resourceHelper.gs(R.string.date)
|
||||
Units.CPEvent -> translator.translate(v.sValue) + ";"
|
||||
Units.R_String -> "\"" + resourceHelper.gs(v.iValue).replace("\"", "\"\"") + "\";"
|
||||
Units.Mg_Dl -> if (profileFunction.getUnits()==Constants.MGDL) DecimalFormatter.to0Decimal(v.dValue) + ";" + resourceHelper.gs(Units.Mg_Dl.stringId()) else DecimalFormatter.to1Decimal(v.dValue/Constants.MMOLL_TO_MGDL) + ";" + resourceHelper.gs(Units.Mmol_L.stringId())
|
||||
Units.Mmol_L -> if (profileFunction.getUnits()==Constants.MGDL) DecimalFormatter.to0Decimal(v.dValue*Constants.MMOLL_TO_MGDL) + ";" + resourceHelper.gs(Units.Mg_Dl.stringId()) else DecimalFormatter.to1Decimal(v.dValue) + ";" + resourceHelper.gs(Units.Mmol_L.stringId())
|
||||
Units.G -> v.iValue.toString() + ";" + resourceHelper.gs(Units.G.stringId())
|
||||
Units.U_H -> DecimalFormatter.to2Decimal(v.dValue) + ";" + resourceHelper.gs(Units.U_H.stringId())
|
||||
else -> if (v.sValue != "") {"\""+ v.sValue.replace("\"", "\"\"") + if (!v.unit.stringId().equals(0)) "\";\"" + resourceHelper.gs(v.unit.stringId()).replace("\"", "\"\"") + "\"" else "\";"}
|
||||
else if (v.dValue != 0.0 || v.iValue != 0) { v.value().toString() + if (!v.unit.stringId().equals(0)) ";" + resourceHelper.gs(v.unit.stringId()) else ";" }
|
||||
else ";"
|
||||
Units.Timestamp -> dateUtil.dateAndTimeAndSecondsString(v.lValue) + ";" + csvString(R.string.date)
|
||||
Units.CPEvent -> csvString(translator.translate(v.sValue)) + ";"
|
||||
Units.R_String -> if (v.lValue.toInt() == 0) csvString(v.iValue) + ";" else ";" //If lValue > 0 it's a formated string, so hidden for
|
||||
Units.Mg_Dl -> if (profileFunction.getUnits()==Constants.MGDL) DecimalFormatter.to0Decimal(v.dValue) + ";" + csvString(Units.Mg_Dl.stringId()) else DecimalFormatter.to1Decimal(v.dValue/Constants.MMOLL_TO_MGDL) + ";" + csvString(Units.Mmol_L.stringId())
|
||||
Units.Mmol_L -> if (profileFunction.getUnits()==Constants.MGDL) DecimalFormatter.to0Decimal(v.dValue*Constants.MMOLL_TO_MGDL) + ";" + csvString(Units.Mg_Dl.stringId()) else DecimalFormatter.to1Decimal(v.dValue) + ";" + csvString(Units.Mmol_L.stringId())
|
||||
Units.U_H, Units.U -> DecimalFormatter.to2Decimal(v.dValue) + ";" + csvString(v.unit.stringId())
|
||||
Units.G, Units.M, Units.H, Units.Percent
|
||||
-> v.iValue.toString() + ";" + csvString(v.unit.stringId())
|
||||
else -> if (v.sValue != "") { csvString(v.sValue) + ";" + csvString(v.unit.stringId())}
|
||||
else if (v.iValue != 0) { v.iValue.toString() + ";" + csvString(v.unit.stringId())}
|
||||
else ";"
|
||||
}
|
||||
}
|
||||
|
||||
private fun csvString(id: Int): String = if (id != 0) "\"" + resourceHelper.gs(id).replace("\"", "\"\"") + "\"" else ""
|
||||
private fun csvString(s: String): String = if (s != "") "\"" + s.replace("\"", "\"\"") + "\"" else ""
|
||||
}
|
|
@ -489,6 +489,7 @@
|
|||
<string name="uel_unknown">UNKNOWN</string>
|
||||
<string name="formated_string">Formated string</string>
|
||||
<string name="ue_export_to_csv">Export User Entries to Excel (csv)</string>
|
||||
<string name="ue_csv_header">"Timestamp;Date;UTC Offset;Action;Note;Value;Unit"</string>
|
||||
|
||||
<plurals name="days">
|
||||
<item quantity="one">%1$d day</item>
|
||||
|
|
|
@ -139,19 +139,19 @@ data class UserEntry(
|
|||
}
|
||||
}
|
||||
enum class Units(val text: String) {
|
||||
@SerializedName("None") None (""),
|
||||
@SerializedName("Mg_Dl") Mg_Dl ("mg/dl"),
|
||||
@SerializedName("Mmol_L") Mmol_L ("mmol"),
|
||||
@SerializedName("Timestamp") Timestamp("Timestamp"),
|
||||
@SerializedName("U") U ("U"),
|
||||
@SerializedName("U_H") U_H ("U/h"),
|
||||
@SerializedName("G") G ("g"),
|
||||
@SerializedName("M") M ("m"),
|
||||
@SerializedName("H") H ("h"),
|
||||
@SerializedName("Percent") Percent ("%"),
|
||||
@SerializedName("CPEvent") CPEvent ("CPEvent"),
|
||||
@SerializedName("TT_Reason") TT_Reason ("TTReason"),
|
||||
@SerializedName("R_String") R_String ("R.string")
|
||||
@SerializedName("None") None (""), //Int or String
|
||||
@SerializedName("Mg_Dl") Mg_Dl ("mg/dl"), //Double
|
||||
@SerializedName("Mmol_L") Mmol_L ("mmol"), //Double
|
||||
@SerializedName("Timestamp") Timestamp("Timestamp"), //long
|
||||
@SerializedName("U") U ("U"), //Double
|
||||
@SerializedName("U_H") U_H ("U/h"), //Double
|
||||
@SerializedName("G") G ("g"), //Int
|
||||
@SerializedName("M") M ("m"), //Int
|
||||
@SerializedName("H") H ("h"), //Int
|
||||
@SerializedName("Percent") Percent ("%"), //Int
|
||||
@SerializedName("CPEvent") CPEvent ("CPEvent"), //String (CareportalEvent.Event => Translated by Translator function)
|
||||
@SerializedName("TT_Reason") TT_Reason ("TTReason"), //TemporaryTarget.Reason => String (to Improve for translation)
|
||||
@SerializedName("R_String") R_String ("R.string") //Int
|
||||
;
|
||||
|
||||
companion object {
|
||||
|
|
Loading…
Reference in a new issue