|
|
|
@ -2,6 +2,7 @@ package net.pokeranalytics.android.util.csv |
|
|
|
|
|
|
|
|
|
|
|
import net.pokeranalytics.android.model.realm.CustomField |
|
|
|
import net.pokeranalytics.android.model.realm.CustomField |
|
|
|
import net.pokeranalytics.android.model.realm.TournamentFeature |
|
|
|
import net.pokeranalytics.android.model.realm.TournamentFeature |
|
|
|
|
|
|
|
import net.pokeranalytics.android.util.CSVNumberFormat |
|
|
|
import timber.log.Timber |
|
|
|
import timber.log.Timber |
|
|
|
import java.text.DateFormat |
|
|
|
import java.text.DateFormat |
|
|
|
import java.text.NumberFormat |
|
|
|
import java.text.NumberFormat |
|
|
|
@ -22,10 +23,10 @@ interface NumberCSVField: TypedCSVField<Double> { |
|
|
|
return null |
|
|
|
return null |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
val formatter = NumberFormat.getInstance(Locale.US) |
|
|
|
// val formatter = NumberFormat.getInstance(Locale.US) |
|
|
|
|
|
|
|
|
|
|
|
return try { |
|
|
|
return try { |
|
|
|
formatter.parse(value).toDouble() |
|
|
|
CSVNumberFormat.parse(value).toDouble() |
|
|
|
} catch (e: ParseException) { |
|
|
|
} catch (e: ParseException) { |
|
|
|
Timber.d("Field > Unparseable number: $value") |
|
|
|
Timber.d("Field > Unparseable number: $value") |
|
|
|
null |
|
|
|
null |
|
|
|
@ -43,10 +44,10 @@ interface NumberCSVField: TypedCSVField<Double> { |
|
|
|
return it(value) |
|
|
|
return it(value) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
val formatter = NumberFormat.getInstance(Locale.US) |
|
|
|
// val formatter = NumberFormat.getInstance(Locale.US) |
|
|
|
|
|
|
|
|
|
|
|
return try { |
|
|
|
return try { |
|
|
|
formatter.parse(value).toDouble() |
|
|
|
CSVNumberFormat.parse(value).toDouble() |
|
|
|
} catch (e: ParseException) { |
|
|
|
} catch (e: ParseException) { |
|
|
|
Timber.d("Field $header > Unparseable number: $value") |
|
|
|
Timber.d("Field $header > Unparseable number: $value") |
|
|
|
null |
|
|
|
null |
|
|
|
@ -55,7 +56,7 @@ interface NumberCSVField: TypedCSVField<Double> { |
|
|
|
|
|
|
|
|
|
|
|
override fun format(data: Double?): String? { |
|
|
|
override fun format(data: Double?): String? { |
|
|
|
return if (data != null) { |
|
|
|
return if (data != null) { |
|
|
|
NumberFormat.getInstance().format(data) |
|
|
|
CSVNumberFormat.format(data) |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
null |
|
|
|
null |
|
|
|
} |
|
|
|
} |
|
|
|
@ -71,7 +72,7 @@ interface IntCSVField: TypedCSVField<Int> { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return try { |
|
|
|
return try { |
|
|
|
NumberFormat.getInstance().parse(value).toInt() |
|
|
|
CSVNumberFormat.parse(value).toInt() |
|
|
|
} catch (e: ParseException) { |
|
|
|
} catch (e: ParseException) { |
|
|
|
Timber.d("Field $header > Unparseable number: $value") |
|
|
|
Timber.d("Field $header > Unparseable number: $value") |
|
|
|
null |
|
|
|
null |
|
|
|
@ -80,7 +81,7 @@ interface IntCSVField: TypedCSVField<Int> { |
|
|
|
|
|
|
|
|
|
|
|
override fun format(data: Int?): String? { |
|
|
|
override fun format(data: Int?): String? { |
|
|
|
return if (data != null) { |
|
|
|
return if (data != null) { |
|
|
|
NumberFormat.getInstance().format(data) |
|
|
|
CSVNumberFormat.format(data) |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
null |
|
|
|
null |
|
|
|
} |
|
|
|
} |
|
|
|
@ -149,8 +150,8 @@ interface BlindCSVField : TypedCSVField<Pair<Double, Double>> { |
|
|
|
|
|
|
|
|
|
|
|
override fun format(data: Pair<Double, Double>?): String? { |
|
|
|
override fun format(data: Pair<Double, Double>?): String? { |
|
|
|
data?.let { |
|
|
|
data?.let { |
|
|
|
val sb = NumberFormat.getInstance().format(data.first) |
|
|
|
val sb = CSVNumberFormat.format(data.first) |
|
|
|
val bb = NumberFormat.getInstance().format(data.second) |
|
|
|
val bb = CSVNumberFormat.format(data.second) |
|
|
|
return "$sb/$bb" |
|
|
|
return "$sb/$bb" |
|
|
|
} ?: run { |
|
|
|
} ?: run { |
|
|
|
return null |
|
|
|
return null |
|
|
|
|