mirror of
https://github.com/SimpleMobileTools/Simple-Calculator.git
synced 2025-06-05 21:49:13 +02:00
Add background behind unit symbols
This commit is contained in:
@@ -6,88 +6,88 @@ object AreaConverter : Converter {
|
||||
override val nameResId: Int = R.string.unit_area
|
||||
override val imageResId: Int = R.drawable.ic_box_vector
|
||||
|
||||
sealed class Unit(nameResId: Int, formatResId: Int, factor: Double) : Converter.Unit(nameResId, formatResId, factor) {
|
||||
sealed class Unit(nameResId: Int, symbolResId: Int, factor: Double) : Converter.Unit(nameResId, symbolResId, factor) {
|
||||
data object SquareKilometer : Unit(
|
||||
nameResId = R.string.unit_area_square_kilometer,
|
||||
formatResId = R.string.unit_area_square_kilometer_format,
|
||||
symbolResId = R.string.unit_area_square_kilometer_symbol,
|
||||
factor = 1000000.0
|
||||
)
|
||||
|
||||
data object SquareMeter : Unit(
|
||||
nameResId = R.string.unit_area_square_meter,
|
||||
formatResId = R.string.unit_area_square_meter_format,
|
||||
symbolResId = R.string.unit_area_square_meter_symbol,
|
||||
factor = 1.0
|
||||
)
|
||||
|
||||
data object SquareCentimeter : Unit(
|
||||
nameResId = R.string.unit_area_square_centimeter,
|
||||
formatResId = R.string.unit_area_square_centimeter_format,
|
||||
symbolResId = R.string.unit_area_square_centimeter_symbol,
|
||||
factor = 0.0001
|
||||
)
|
||||
|
||||
data object SquareMillimeter : Unit(
|
||||
nameResId = R.string.unit_area_square_millimeter,
|
||||
formatResId = R.string.unit_area_square_millimeter_format,
|
||||
symbolResId = R.string.unit_area_square_millimeter_symbol,
|
||||
factor = 0.000001
|
||||
)
|
||||
|
||||
data object SquareMile : Unit(
|
||||
nameResId = R.string.unit_area_square_mile,
|
||||
formatResId = R.string.unit_area_square_mile_format,
|
||||
symbolResId = R.string.unit_area_square_mile_symbol,
|
||||
factor = 2_589_988.110336
|
||||
)
|
||||
|
||||
data object SquareYard : Unit(
|
||||
nameResId = R.string.unit_area_square_yard,
|
||||
formatResId = R.string.unit_area_square_yard_format,
|
||||
symbolResId = R.string.unit_area_square_yard_symbol,
|
||||
factor = 0.83612736
|
||||
)
|
||||
|
||||
data object SquareFoot : Unit(
|
||||
nameResId = R.string.unit_area_square_foot,
|
||||
formatResId = R.string.unit_area_square_foot_format,
|
||||
symbolResId = R.string.unit_area_square_foot_symbol,
|
||||
factor = 0.09290304
|
||||
)
|
||||
|
||||
data object SquareInch : Unit(
|
||||
nameResId = R.string.unit_area_square_inch,
|
||||
formatResId = R.string.unit_area_square_inch_format,
|
||||
symbolResId = R.string.unit_area_square_inch_symbol,
|
||||
factor = 0.00064516
|
||||
)
|
||||
|
||||
data object SquareMil : Unit(
|
||||
nameResId = R.string.unit_area_square_mil,
|
||||
formatResId = R.string.unit_area_square_mil_format,
|
||||
symbolResId = R.string.unit_area_square_mil_symbol,
|
||||
factor = 0.00000000064516
|
||||
)
|
||||
|
||||
data object SquareRod : Unit(
|
||||
nameResId = R.string.unit_area_square_rod,
|
||||
formatResId = R.string.unit_area_square_rod_format,
|
||||
symbolResId = R.string.unit_area_square_rod_symbol,
|
||||
factor = 25.29285264
|
||||
)
|
||||
|
||||
data object Acre : Unit(
|
||||
nameResId = R.string.unit_area_acre,
|
||||
formatResId = R.string.unit_area_acre_format,
|
||||
symbolResId = R.string.unit_area_acre_symbol,
|
||||
factor = 4_046.8564224
|
||||
)
|
||||
|
||||
data object Are : Unit(
|
||||
nameResId = R.string.unit_area_are,
|
||||
formatResId = R.string.unit_area_are_format,
|
||||
symbolResId = R.string.unit_area_are_symbol,
|
||||
factor = 100.0
|
||||
)
|
||||
|
||||
data object Dunam : Unit(
|
||||
nameResId = R.string.unit_area_dunam,
|
||||
formatResId = R.string.unit_area_dunam_format,
|
||||
symbolResId = R.string.unit_area_dunam_symbol,
|
||||
factor = 1000.0
|
||||
)
|
||||
|
||||
data object Hectare : Unit(
|
||||
nameResId = R.string.unit_area_hectare,
|
||||
formatResId = R.string.unit_area_hectare_format,
|
||||
symbolResId = R.string.unit_area_hectare_symbol,
|
||||
factor = 10_000.0
|
||||
)
|
||||
}
|
||||
|
@@ -27,7 +27,7 @@ interface Converter {
|
||||
|
||||
open class Unit(
|
||||
val nameResId: Int,
|
||||
val formatResId: Int,
|
||||
val symbolResId: Int,
|
||||
val factor: Double
|
||||
) {
|
||||
|
||||
@@ -37,12 +37,10 @@ interface Converter {
|
||||
|
||||
fun withValue(value: Double) = ValueWithUnit(value, this)
|
||||
|
||||
fun format(context: Context, value: String) = context.getString(formatResId, value)
|
||||
|
||||
fun getNameWithSymbol(context: Context) = context.getString(
|
||||
R.string.unit_name_with_symbol_format,
|
||||
context.getString(nameResId),
|
||||
format(context, "").trim()
|
||||
context.getString(symbolResId)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@@ -6,154 +6,154 @@ object LengthConverter : Converter {
|
||||
override val nameResId: Int = R.string.unit_length
|
||||
override val imageResId: Int = R.drawable.ic_height_vector
|
||||
|
||||
sealed class Unit(nameResId: Int, formatResId: Int, factor: Double) : Converter.Unit(nameResId, formatResId, factor) {
|
||||
sealed class Unit(nameResId: Int, symbolResId: Int, factor: Double) : Converter.Unit(nameResId, symbolResId, factor) {
|
||||
data object Kilometer : Unit(
|
||||
nameResId = R.string.unit_length_kilometer,
|
||||
formatResId = R.string.unit_length_kilometer_format,
|
||||
symbolResId = R.string.unit_length_kilometer_symbol,
|
||||
factor = 1000.0
|
||||
)
|
||||
|
||||
data object Hectometer : Unit(
|
||||
nameResId = R.string.unit_length_hectometer,
|
||||
formatResId = R.string.unit_length_hectometer_format,
|
||||
symbolResId = R.string.unit_length_hectometer_symbol,
|
||||
factor = 100.0
|
||||
)
|
||||
|
||||
data object Decameter : Unit(
|
||||
nameResId = R.string.unit_length_decameter,
|
||||
formatResId = R.string.unit_length_decameter_format,
|
||||
symbolResId = R.string.unit_length_decameter_symbol,
|
||||
factor = 10.0
|
||||
)
|
||||
|
||||
data object Meter : Unit(
|
||||
nameResId = R.string.unit_length_meter,
|
||||
formatResId = R.string.unit_length_meter_format,
|
||||
symbolResId = R.string.unit_length_meter_symbol,
|
||||
factor = 1.0
|
||||
)
|
||||
|
||||
data object Decimeter : Unit(
|
||||
nameResId = R.string.unit_length_decimeter,
|
||||
formatResId = R.string.unit_length_decimeter_format,
|
||||
symbolResId = R.string.unit_length_decimeter_symbol,
|
||||
factor = 0.1
|
||||
)
|
||||
|
||||
data object Centimeter : Unit(
|
||||
nameResId = R.string.unit_length_centimeter,
|
||||
formatResId = R.string.unit_length_centimeter_format,
|
||||
symbolResId = R.string.unit_length_centimeter_symbol,
|
||||
factor = 0.01
|
||||
)
|
||||
|
||||
data object Millimeter : Unit(
|
||||
nameResId = R.string.unit_length_millimeter,
|
||||
formatResId = R.string.unit_length_millimeter_format,
|
||||
symbolResId = R.string.unit_length_millimeter_symbol,
|
||||
factor = 0.001
|
||||
)
|
||||
|
||||
data object Micrometer : Unit(
|
||||
nameResId = R.string.unit_length_micrometer,
|
||||
formatResId = R.string.unit_length_micrometer_format,
|
||||
symbolResId = R.string.unit_length_micrometer_symbol,
|
||||
factor = 0.000001
|
||||
)
|
||||
|
||||
data object Nanometer : Unit(
|
||||
nameResId = R.string.unit_length_nanometer,
|
||||
formatResId = R.string.unit_length_nanometer_format,
|
||||
symbolResId = R.string.unit_length_nanometer_symbol,
|
||||
factor = 0.000000001
|
||||
)
|
||||
|
||||
data object Picometer : Unit(
|
||||
nameResId = R.string.unit_length_picometer,
|
||||
formatResId = R.string.unit_length_picometer_format,
|
||||
symbolResId = R.string.unit_length_picometer_symbol,
|
||||
factor = 0.000000000001
|
||||
)
|
||||
|
||||
data object Angstrom : Unit(
|
||||
nameResId = R.string.unit_length_angstrom,
|
||||
formatResId = R.string.unit_length_angstrom_format,
|
||||
symbolResId = R.string.unit_length_angstrom_symbol,
|
||||
factor = 1e-10
|
||||
)
|
||||
|
||||
data object Mile : Unit(
|
||||
nameResId = R.string.unit_length_mile,
|
||||
formatResId = R.string.unit_length_mile_format,
|
||||
symbolResId = R.string.unit_length_mile_symbol,
|
||||
factor = 1_609.344
|
||||
)
|
||||
|
||||
data object Chain : Unit(
|
||||
nameResId = R.string.unit_length_chain,
|
||||
formatResId = R.string.unit_length_chain_format,
|
||||
symbolResId = R.string.unit_length_chain_symbol,
|
||||
factor = 20.1168
|
||||
)
|
||||
|
||||
data object Yard : Unit(
|
||||
nameResId = R.string.unit_length_yard,
|
||||
formatResId = R.string.unit_length_yard_format,
|
||||
symbolResId = R.string.unit_length_yard_symbol,
|
||||
factor = 0.9144
|
||||
)
|
||||
|
||||
data object Foot : Unit(
|
||||
nameResId = R.string.unit_length_foot,
|
||||
formatResId = R.string.unit_length_foot_format,
|
||||
symbolResId = R.string.unit_length_foot_symbol,
|
||||
factor = 0.3048
|
||||
)
|
||||
|
||||
data object Mil : Unit(
|
||||
nameResId = R.string.unit_length_mil,
|
||||
formatResId = R.string.unit_length_mil_format,
|
||||
symbolResId = R.string.unit_length_mil_symbol,
|
||||
factor = 0.0000254
|
||||
)
|
||||
|
||||
data object Inch : Unit(
|
||||
nameResId = R.string.unit_length_inch,
|
||||
formatResId = R.string.unit_length_inch_format,
|
||||
symbolResId = R.string.unit_length_inch_symbol,
|
||||
factor = 0.0254
|
||||
)
|
||||
|
||||
data object Fathom : Unit(
|
||||
nameResId = R.string.unit_length_fathom,
|
||||
formatResId = R.string.unit_length_fathom_format,
|
||||
symbolResId = R.string.unit_length_fathom_symbol,
|
||||
factor = 1.852
|
||||
)
|
||||
|
||||
data object Cable : Unit(
|
||||
nameResId = R.string.unit_length_cable,
|
||||
formatResId = R.string.unit_length_cable_format,
|
||||
symbolResId = R.string.unit_length_cable_symbol,
|
||||
factor = 185.2
|
||||
)
|
||||
|
||||
data object NauticalMile : Unit(
|
||||
nameResId = R.string.unit_length_nautical_mile,
|
||||
formatResId = R.string.unit_length_nautical_mile_format,
|
||||
symbolResId = R.string.unit_length_nautical_mile_symbol,
|
||||
factor = 1_852.0
|
||||
)
|
||||
|
||||
data object Link : Unit(
|
||||
nameResId = R.string.unit_length_link,
|
||||
formatResId = R.string.unit_length_link_format,
|
||||
symbolResId = R.string.unit_length_link_symbol,
|
||||
factor = 0.201168
|
||||
)
|
||||
|
||||
data object Rod : Unit(
|
||||
nameResId = R.string.unit_length_rod,
|
||||
formatResId = R.string.unit_length_rod_format,
|
||||
symbolResId = R.string.unit_length_rod_symbol,
|
||||
factor = 5.0292
|
||||
)
|
||||
|
||||
data object AstronomicalUnit : Unit(
|
||||
nameResId = R.string.unit_length_astronomical_unit,
|
||||
formatResId = R.string.unit_length_astronomical_unit_format,
|
||||
symbolResId = R.string.unit_length_astronomical_unit_symbol,
|
||||
factor = 1.495979e+11
|
||||
)
|
||||
|
||||
data object Parsec : Unit(
|
||||
nameResId = R.string.unit_length_parsec,
|
||||
formatResId = R.string.unit_length_parsec_format,
|
||||
symbolResId = R.string.unit_length_parsec_symbol,
|
||||
factor = 3.0857e+16
|
||||
)
|
||||
|
||||
data object LightYear : Unit(
|
||||
nameResId = R.string.unit_length_light_year,
|
||||
formatResId = R.string.unit_length_light_year_format,
|
||||
symbolResId = R.string.unit_length_light_year_symbol,
|
||||
factor = 9.4607e+15
|
||||
)
|
||||
}
|
||||
|
@@ -6,88 +6,88 @@ object MassConverter : Converter {
|
||||
override val nameResId: Int = R.string.unit_mass
|
||||
override val imageResId: Int = R.drawable.ic_scale_vector
|
||||
|
||||
sealed class Unit(nameResId: Int, formatResId: Int, factor: Double) : Converter.Unit(nameResId, formatResId, factor) {
|
||||
sealed class Unit(nameResId: Int, symbolResId: Int, factor: Double) : Converter.Unit(nameResId, symbolResId, factor) {
|
||||
data object Gram : Unit(
|
||||
nameResId = R.string.unit_mass_gram,
|
||||
formatResId = R.string.unit_mass_gram_format,
|
||||
symbolResId = R.string.unit_mass_gram_symbol,
|
||||
factor = 0.001
|
||||
)
|
||||
|
||||
data object Kilogram : Unit(
|
||||
nameResId = R.string.unit_mass_kilogram,
|
||||
formatResId = R.string.unit_mass_kilogram_format,
|
||||
symbolResId = R.string.unit_mass_kilogram_symbol,
|
||||
factor = 1.0
|
||||
)
|
||||
|
||||
data object Milligram : Unit(
|
||||
nameResId = R.string.unit_mass_milligram,
|
||||
formatResId = R.string.unit_mass_milligram_format,
|
||||
symbolResId = R.string.unit_mass_milligram_symbol,
|
||||
factor = 0.000001
|
||||
)
|
||||
|
||||
data object Microgram : Unit(
|
||||
nameResId = R.string.unit_mass_microgram,
|
||||
formatResId = R.string.unit_mass_microgram_format,
|
||||
symbolResId = R.string.unit_mass_microgram_symbol,
|
||||
factor = 0.000000001
|
||||
)
|
||||
|
||||
data object Tonne : Unit(
|
||||
nameResId = R.string.unit_mass_tonne,
|
||||
formatResId = R.string.unit_mass_tonne_format,
|
||||
symbolResId = R.string.unit_mass_tonne_symbol,
|
||||
factor = 1_000.0
|
||||
)
|
||||
|
||||
data object Pound : Unit(
|
||||
nameResId = R.string.unit_mass_pound,
|
||||
formatResId = R.string.unit_mass_pound_format,
|
||||
factor = 0.45359237
|
||||
symbolResId = R.string.unit_mass_pound_symbol,
|
||||
factor = 0.45359237
|
||||
)
|
||||
|
||||
data object Ounce : Unit(
|
||||
nameResId = R.string.unit_mass_ounce,
|
||||
formatResId = R.string.unit_mass_ounce_format,
|
||||
symbolResId = R.string.unit_mass_ounce_symbol,
|
||||
factor = 0.028349523125
|
||||
)
|
||||
|
||||
data object Grain : Unit(
|
||||
nameResId = R.string.unit_mass_grain,
|
||||
formatResId = R.string.unit_mass_grain_format,
|
||||
symbolResId = R.string.unit_mass_grain_symbol,
|
||||
factor = 0.00006479891
|
||||
)
|
||||
|
||||
data object Dram : Unit(
|
||||
nameResId = R.string.unit_mass_dram,
|
||||
formatResId = R.string.unit_mass_dram_format,
|
||||
symbolResId = R.string.unit_mass_dram_symbol,
|
||||
factor = 0.0017718451953125
|
||||
)
|
||||
|
||||
data object Stone : Unit(
|
||||
nameResId = R.string.unit_mass_stone,
|
||||
formatResId = R.string.unit_mass_stone_format,
|
||||
symbolResId = R.string.unit_mass_stone_symbol,
|
||||
factor = 6.35029318
|
||||
)
|
||||
|
||||
data object LongTon : Unit(
|
||||
nameResId = R.string.unit_mass_long_ton,
|
||||
formatResId = R.string.unit_mass_long_ton_format,
|
||||
symbolResId = R.string.unit_mass_long_ton_symbol,
|
||||
factor = 1_016.0469088
|
||||
)
|
||||
|
||||
data object ShortTon : Unit(
|
||||
nameResId = R.string.unit_mass_short_ton,
|
||||
formatResId = R.string.unit_mass_short_ton_format,
|
||||
symbolResId = R.string.unit_mass_short_ton_symbol,
|
||||
factor = 907.18474
|
||||
)
|
||||
|
||||
data object Carat : Unit(
|
||||
nameResId = R.string.unit_mass_carat,
|
||||
formatResId = R.string.unit_mass_carat_format,
|
||||
symbolResId = R.string.unit_mass_carat_symbol,
|
||||
factor = 0.0002051965483
|
||||
)
|
||||
|
||||
data object CaratMetric : Unit(
|
||||
nameResId = R.string.unit_mass_carat_metric,
|
||||
formatResId = R.string.unit_mass_carat_metric_format,
|
||||
symbolResId = R.string.unit_mass_carat_metric_symbol,
|
||||
factor = 0.0002
|
||||
)
|
||||
}
|
||||
|
@@ -6,11 +6,11 @@ object TemperatureConverter : Converter {
|
||||
override val nameResId: Int = R.string.unit_temperature
|
||||
override val imageResId: Int = R.drawable.ic_thermostat_vector
|
||||
|
||||
sealed class Unit(nameResId: Int, formatResId: Int, factor: Double) : Converter.Unit(nameResId, formatResId, factor) {
|
||||
sealed class Unit(nameResId: Int, symbolResId: Int, factor: Double) : Converter.Unit(nameResId, symbolResId, factor) {
|
||||
|
||||
data object Celsius : Unit(
|
||||
nameResId = R.string.unit_temperature_celsius,
|
||||
formatResId = R.string.unit_temperature_celsius_format,
|
||||
symbolResId = R.string.unit_temperature_celsius_symbol,
|
||||
factor = 1.0
|
||||
) {
|
||||
const val KELVIN_OFFSET = 273.15
|
||||
@@ -21,7 +21,7 @@ object TemperatureConverter : Converter {
|
||||
|
||||
data object Delisle : Unit(
|
||||
nameResId = R.string.unit_temperature_delisle,
|
||||
formatResId = R.string.unit_temperature_delisle_format,
|
||||
symbolResId = R.string.unit_temperature_delisle_symbol,
|
||||
factor = 2.0 / 3
|
||||
) {
|
||||
private const val KELVIN_OFFSET = 373.15
|
||||
@@ -33,7 +33,7 @@ object TemperatureConverter : Converter {
|
||||
|
||||
data object Fahrenheit : Unit(
|
||||
nameResId = R.string.unit_temperature_fahrenheit,
|
||||
formatResId = R.string.unit_temperature_fahrenheit_format,
|
||||
symbolResId = R.string.unit_temperature_fahrenheit_symbol,
|
||||
factor = 9.0 / 5
|
||||
) {
|
||||
private const val CELSIUS_OFFSET = 32
|
||||
@@ -45,7 +45,7 @@ object TemperatureConverter : Converter {
|
||||
|
||||
data object Newton : Unit(
|
||||
nameResId = R.string.unit_temperature_newton,
|
||||
formatResId = R.string.unit_temperature_newton_format,
|
||||
symbolResId = R.string.unit_temperature_newton_symbol,
|
||||
factor = 100.0 / 33
|
||||
) {
|
||||
private const val KELVIN_OFFSET = Celsius.KELVIN_OFFSET
|
||||
@@ -57,14 +57,14 @@ object TemperatureConverter : Converter {
|
||||
|
||||
data object Rankine : Unit(
|
||||
nameResId = R.string.unit_temperature_rankine,
|
||||
formatResId = R.string.unit_temperature_rankine_format,
|
||||
symbolResId = R.string.unit_temperature_rankine_symbol,
|
||||
factor = 5.0 / 9
|
||||
)
|
||||
|
||||
data object Reaumur : Unit(
|
||||
nameResId = R.string.unit_temperature_reaumur,
|
||||
formatResId = R.string.unit_temperature_reaumur_format,
|
||||
factor = 5.0 / 4
|
||||
symbolResId = R.string.unit_temperature_reaumur_symbol,
|
||||
factor = 5.0 / 4
|
||||
) {
|
||||
private const val KELVIN_OFFSET = Celsius.KELVIN_OFFSET
|
||||
|
||||
@@ -75,7 +75,7 @@ object TemperatureConverter : Converter {
|
||||
|
||||
data object Romer : Unit(
|
||||
nameResId = R.string.unit_temperature_romer,
|
||||
formatResId = R.string.unit_temperature_romer_format,
|
||||
symbolResId = R.string.unit_temperature_romer_symbol,
|
||||
factor = 40.0 / 21
|
||||
) {
|
||||
private const val KELVIN_OFFSET = Celsius.KELVIN_OFFSET
|
||||
@@ -88,7 +88,7 @@ object TemperatureConverter : Converter {
|
||||
|
||||
data object GasMark : Unit(
|
||||
nameResId = R.string.unit_temperature_gas_mark,
|
||||
formatResId = R.string.unit_temperature_gas_mark_format,
|
||||
symbolResId = R.string.unit_temperature_gas_mark_symbol,
|
||||
factor = 25.0
|
||||
) {
|
||||
private const val FAHRENHEIT_OFFSET = 250
|
||||
@@ -100,7 +100,7 @@ object TemperatureConverter : Converter {
|
||||
|
||||
data object Kelvin : Unit(
|
||||
nameResId = R.string.unit_temperature_kelvin,
|
||||
formatResId = R.string.unit_temperature_kelvin_format,
|
||||
symbolResId = R.string.unit_temperature_kelvin_symbol,
|
||||
factor = 1.0
|
||||
)
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@ object TimeConverter : Converter {
|
||||
override val nameResId: Int = R.string.unit_time
|
||||
override val imageResId: Int = com.simplemobiletools.commons.R.drawable.ic_clock_vector
|
||||
|
||||
sealed class Unit(nameResId: Int, formatResId: Int, factor: Double) : Converter.Unit(nameResId, formatResId, factor) {
|
||||
sealed class Unit(nameResId: Int, symbolResId: Int, factor: Double) : Converter.Unit(nameResId, symbolResId, factor) {
|
||||
companion object {
|
||||
private const val MINUTE = 60.0
|
||||
private const val HOUR = 60.0 * MINUTE
|
||||
@@ -16,139 +16,139 @@ object TimeConverter : Converter {
|
||||
|
||||
data object Hour : Unit(
|
||||
nameResId = R.string.unit_time_hour,
|
||||
formatResId = R.string.unit_time_hour_format,
|
||||
symbolResId = R.string.unit_time_hour_symbol,
|
||||
factor = HOUR
|
||||
)
|
||||
|
||||
data object Minute : Unit(
|
||||
nameResId = R.string.unit_time_minute,
|
||||
formatResId = R.string.unit_time_minute_format,
|
||||
symbolResId = R.string.unit_time_minute_symbol,
|
||||
factor = MINUTE
|
||||
)
|
||||
|
||||
data object Second : Unit(
|
||||
nameResId = R.string.unit_time_second,
|
||||
formatResId = R.string.unit_time_second_format,
|
||||
symbolResId = R.string.unit_time_second_symbol,
|
||||
factor = 1.0
|
||||
)
|
||||
|
||||
data object Millisecond : Unit(
|
||||
nameResId = R.string.unit_time_millisecond,
|
||||
formatResId = R.string.unit_time_millisecond_format,
|
||||
symbolResId = R.string.unit_time_millisecond_symbol,
|
||||
factor = 0.001
|
||||
)
|
||||
|
||||
data object Microsecond : Unit(
|
||||
nameResId = R.string.unit_time_microsecond,
|
||||
formatResId = R.string.unit_time_microsecond_format,
|
||||
symbolResId = R.string.unit_time_microsecond_symbol,
|
||||
factor = 0.000001
|
||||
)
|
||||
|
||||
data object Nanosecond : Unit(
|
||||
nameResId = R.string.unit_time_nanosecond,
|
||||
formatResId = R.string.unit_time_nanosecond_format,
|
||||
symbolResId = R.string.unit_time_nanosecond_symbol,
|
||||
factor = 0.000000001
|
||||
)
|
||||
|
||||
data object Picosecond : Unit(
|
||||
nameResId = R.string.unit_time_picosecond,
|
||||
formatResId = R.string.unit_time_picosecond_format,
|
||||
symbolResId = R.string.unit_time_picosecond_symbol,
|
||||
factor = 0.000000000001
|
||||
)
|
||||
|
||||
data object Day : Unit(
|
||||
nameResId = R.string.unit_time_day,
|
||||
formatResId = R.string.unit_time_day_format,
|
||||
symbolResId = R.string.unit_time_day_symbol,
|
||||
factor = DAY
|
||||
)
|
||||
|
||||
data object Week : Unit(
|
||||
nameResId = R.string.unit_time_week,
|
||||
formatResId = R.string.unit_time_week_format,
|
||||
symbolResId = R.string.unit_time_week_symbol,
|
||||
factor = DAY * 7
|
||||
)
|
||||
|
||||
data object MonthFull : Unit(
|
||||
nameResId = R.string.unit_time_month_full,
|
||||
formatResId = R.string.unit_time_month_full_format,
|
||||
symbolResId = R.string.unit_time_month_full_symbol,
|
||||
factor = DAY * 30
|
||||
)
|
||||
|
||||
data object MonthHollow : Unit(
|
||||
nameResId = R.string.unit_time_month_hollow,
|
||||
formatResId = R.string.unit_time_month_hollow_format,
|
||||
symbolResId = R.string.unit_time_month_hollow_symbol,
|
||||
factor = DAY * 29
|
||||
)
|
||||
|
||||
data object MonthSynodic : Unit(
|
||||
nameResId = R.string.unit_time_month_synodic,
|
||||
formatResId = R.string.unit_time_month_synodic_format,
|
||||
symbolResId = R.string.unit_time_month_synodic_symbol,
|
||||
factor = DAY * 29.530589
|
||||
)
|
||||
|
||||
data object MonthGregorianAverage : Unit(
|
||||
nameResId = R.string.unit_time_month_gregorian_average,
|
||||
formatResId = R.string.unit_time_month_gregorian_average_format,
|
||||
symbolResId = R.string.unit_time_month_gregorian_average_symbol,
|
||||
factor = DAY * 30.346875
|
||||
)
|
||||
|
||||
data object YearLeap : Unit(
|
||||
nameResId = R.string.unit_time_year_leap,
|
||||
formatResId = R.string.unit_time_year_leap_format,
|
||||
symbolResId = R.string.unit_time_year_leap_symbol,
|
||||
factor = DAY * 366
|
||||
)
|
||||
|
||||
data object YearGregorian : Unit(
|
||||
nameResId = R.string.unit_time_year_gregorian,
|
||||
formatResId = R.string.unit_time_year_gregorian_format,
|
||||
symbolResId = R.string.unit_time_year_gregorian_symbol,
|
||||
factor = GREGORIAN_YEAR
|
||||
)
|
||||
|
||||
data object YearJulian : Unit(
|
||||
nameResId = R.string.unit_time_year_julian,
|
||||
formatResId = R.string.unit_time_year_julian_format,
|
||||
symbolResId = R.string.unit_time_year_julian_symbol,
|
||||
factor = DAY * 365.25
|
||||
)
|
||||
|
||||
data object Jiffy : Unit(
|
||||
nameResId = R.string.unit_time_jiffy,
|
||||
formatResId = R.string.unit_time_jiffy_format,
|
||||
symbolResId = R.string.unit_time_jiffy_symbol,
|
||||
factor = 1 / 60.0
|
||||
)
|
||||
|
||||
data object Moment : Unit(
|
||||
nameResId = R.string.unit_time_moment,
|
||||
formatResId = R.string.unit_time_moment_format,
|
||||
symbolResId = R.string.unit_time_moment_symbol,
|
||||
factor = 90.0
|
||||
)
|
||||
|
||||
data object Fortnight : Unit(
|
||||
nameResId = R.string.unit_time_fortnight,
|
||||
formatResId = R.string.unit_time_fortnight_format,
|
||||
symbolResId = R.string.unit_time_fortnight_symbol,
|
||||
factor = DAY * 7 * 2
|
||||
)
|
||||
|
||||
data object Decade : Unit(
|
||||
nameResId = R.string.unit_time_decade,
|
||||
formatResId = R.string.unit_time_decade_format,
|
||||
symbolResId = R.string.unit_time_decade_symbol,
|
||||
factor = GREGORIAN_YEAR * 10
|
||||
)
|
||||
|
||||
data object Century : Unit(
|
||||
nameResId = R.string.unit_time_century,
|
||||
formatResId = R.string.unit_time_century_format,
|
||||
symbolResId = R.string.unit_time_century_symbol,
|
||||
factor = GREGORIAN_YEAR * 100
|
||||
)
|
||||
|
||||
data object Millennium : Unit(
|
||||
nameResId = R.string.unit_time_millennium,
|
||||
formatResId = R.string.unit_time_millennium_format,
|
||||
symbolResId = R.string.unit_time_millennium_symbol,
|
||||
factor = GREGORIAN_YEAR * 1000
|
||||
)
|
||||
|
||||
data object AtomicUnit : Unit(
|
||||
nameResId = R.string.unit_time_atomic_unit,
|
||||
formatResId = R.string.unit_time_atomic_unit_format,
|
||||
symbolResId = R.string.unit_time_atomic_unit_symbol,
|
||||
factor = 0.00000000000000002418884254
|
||||
)
|
||||
}
|
||||
|
@@ -6,190 +6,190 @@ object VolumeConverter : Converter {
|
||||
override val nameResId: Int = R.string.unit_volume
|
||||
override val imageResId: Int = R.drawable.ic_drop_vector
|
||||
|
||||
sealed class Unit(nameResId: Int, formatResId: Int, factor: Double) : Converter.Unit(nameResId, formatResId, factor) {
|
||||
sealed class Unit(nameResId: Int, symbolResId: Int, factor: Double) : Converter.Unit(nameResId, symbolResId, factor) {
|
||||
data object CubicMeter : Unit(
|
||||
nameResId = R.string.unit_volume_cubic_meter,
|
||||
formatResId = R.string.unit_volume_cubic_meter_format,
|
||||
symbolResId = R.string.unit_volume_cubic_meter_symbol,
|
||||
factor = 1.0
|
||||
)
|
||||
|
||||
data object CubicDecimeter : Unit(
|
||||
nameResId = R.string.unit_volume_cubic_decimeter,
|
||||
formatResId = R.string.unit_volume_cubic_decimeter_format,
|
||||
symbolResId = R.string.unit_volume_cubic_decimeter_symbol,
|
||||
factor = 0.001
|
||||
)
|
||||
|
||||
data object CubicCentimeter : Unit(
|
||||
nameResId = R.string.unit_volume_cubic_centimeter,
|
||||
formatResId = R.string.unit_volume_cubic_centimeter_format,
|
||||
symbolResId = R.string.unit_volume_cubic_centimeter_symbol,
|
||||
factor = 0.000001
|
||||
)
|
||||
|
||||
data object CubicMillimeter : Unit(
|
||||
nameResId = R.string.unit_volume_cubic_millimeter,
|
||||
formatResId = R.string.unit_volume_cubic_millimeter_format,
|
||||
symbolResId = R.string.unit_volume_cubic_millimeter_symbol,
|
||||
factor = 0.000000001
|
||||
)
|
||||
|
||||
data object Liter : Unit(
|
||||
nameResId = R.string.unit_volume_liter,
|
||||
formatResId = R.string.unit_volume_liter_format,
|
||||
symbolResId = R.string.unit_volume_liter_symbol,
|
||||
factor = 0.001
|
||||
)
|
||||
|
||||
data object Centiliter : Unit(
|
||||
nameResId = R.string.unit_volume_centiliter,
|
||||
formatResId = R.string.unit_volume_centiliter_format,
|
||||
symbolResId = R.string.unit_volume_centiliter_symbol,
|
||||
factor = 0.0001
|
||||
)
|
||||
|
||||
data object Deciliter : Unit(
|
||||
nameResId = R.string.unit_volume_deciliter,
|
||||
formatResId = R.string.unit_volume_deciliter_format,
|
||||
symbolResId = R.string.unit_volume_deciliter_symbol,
|
||||
factor = 0.00001
|
||||
)
|
||||
|
||||
data object Milliliter : Unit(
|
||||
nameResId = R.string.unit_volume_milliliter,
|
||||
formatResId = R.string.unit_volume_milliliter_format,
|
||||
symbolResId = R.string.unit_volume_milliliter_symbol,
|
||||
factor = 0.000001
|
||||
)
|
||||
|
||||
data object AcreFoot : Unit(
|
||||
nameResId = R.string.unit_volume_acre_foot,
|
||||
formatResId = R.string.unit_volume_acre_foot_format,
|
||||
symbolResId = R.string.unit_volume_acre_foot_symbol,
|
||||
factor = 1_233.48183754752
|
||||
)
|
||||
|
||||
data object CubicYard : Unit(
|
||||
nameResId = R.string.unit_volume_cubic_yard,
|
||||
formatResId = R.string.unit_volume_cubic_yard_format,
|
||||
symbolResId = R.string.unit_volume_cubic_yard_symbol,
|
||||
factor = 0.764554857984
|
||||
)
|
||||
|
||||
data object CubicFoot : Unit(
|
||||
nameResId = R.string.unit_volume_cubic_foot,
|
||||
formatResId = R.string.unit_volume_cubic_foot_format,
|
||||
symbolResId = R.string.unit_volume_cubic_foot_symbol,
|
||||
factor = 0.028316846592
|
||||
)
|
||||
|
||||
data object CubicInch : Unit(
|
||||
nameResId = R.string.unit_volume_cubic_inch,
|
||||
formatResId = R.string.unit_volume_cubic_inch_format,
|
||||
symbolResId = R.string.unit_volume_cubic_inch_symbol,
|
||||
factor = 0.000016387064
|
||||
)
|
||||
|
||||
data object BarrelUS : Unit(
|
||||
nameResId = R.string.unit_volume_barrel_us,
|
||||
formatResId = R.string.unit_volume_barrel_us_format,
|
||||
symbolResId = R.string.unit_volume_barrel_us_symbol,
|
||||
factor = 0.119240471196
|
||||
)
|
||||
|
||||
data object GallonUS : Unit(
|
||||
nameResId = R.string.unit_volume_gallon_us,
|
||||
formatResId = R.string.unit_volume_gallon_us_format,
|
||||
symbolResId = R.string.unit_volume_gallon_us_symbol,
|
||||
factor = 0.003785411784
|
||||
)
|
||||
|
||||
data object QuartUS : Unit(
|
||||
nameResId = R.string.unit_volume_quart_us,
|
||||
formatResId = R.string.unit_volume_quart_us_format,
|
||||
symbolResId = R.string.unit_volume_quart_us_symbol,
|
||||
factor = 0.000946352946
|
||||
)
|
||||
|
||||
data object PintUS : Unit(
|
||||
nameResId = R.string.unit_volume_pint_us,
|
||||
formatResId = R.string.unit_volume_pint_us_format,
|
||||
symbolResId = R.string.unit_volume_pint_us_symbol,
|
||||
factor = 0.000473176473
|
||||
)
|
||||
|
||||
data object GillUS : Unit(
|
||||
nameResId = R.string.unit_volume_gill_us,
|
||||
formatResId = R.string.unit_volume_gill_us_format,
|
||||
symbolResId = R.string.unit_volume_gill_us_symbol,
|
||||
factor = 0.00011829411825
|
||||
)
|
||||
|
||||
data object FluidOunceUS : Unit(
|
||||
nameResId = R.string.unit_volume_fluid_ounce_us,
|
||||
formatResId = R.string.unit_volume_fluid_ounce_us_format,
|
||||
symbolResId = R.string.unit_volume_fluid_ounce_us_symbol,
|
||||
factor = 0.00003
|
||||
)
|
||||
|
||||
data object DropUS : Unit(
|
||||
nameResId = R.string.unit_volume_drop_us,
|
||||
formatResId = R.string.unit_volume_drop_us_format,
|
||||
symbolResId = R.string.unit_volume_drop_us_symbol,
|
||||
factor = 0.00000008214869322916
|
||||
)
|
||||
|
||||
data object TeaspoonUS : Unit(
|
||||
nameResId = R.string.unit_volume_teaspoon_us,
|
||||
formatResId = R.string.unit_volume_teaspoon_us_format,
|
||||
symbolResId = R.string.unit_volume_teaspoon_us_symbol,
|
||||
factor = 0.000005
|
||||
)
|
||||
|
||||
data object TablespoonUS : Unit(
|
||||
nameResId = R.string.unit_volume_tablespoon_us,
|
||||
formatResId = R.string.unit_volume_tablespoon_us_format,
|
||||
symbolResId = R.string.unit_volume_tablespoon_us_symbol,
|
||||
factor = 0.000015
|
||||
)
|
||||
|
||||
data object CupUS : Unit(
|
||||
nameResId = R.string.unit_volume_cup_us,
|
||||
formatResId = R.string.unit_volume_cup_us_format,
|
||||
symbolResId = R.string.unit_volume_cup_us_symbol,
|
||||
factor = 0.00024
|
||||
)
|
||||
|
||||
data object BarrelImperial : Unit(
|
||||
nameResId = R.string.unit_volume_barrel_imperial,
|
||||
formatResId = R.string.unit_volume_barrel_imperial_format,
|
||||
symbolResId = R.string.unit_volume_barrel_imperial_symbol,
|
||||
factor = 0.16365924
|
||||
)
|
||||
|
||||
data object GallonImperial : Unit(
|
||||
nameResId = R.string.unit_volume_gallon_imperial,
|
||||
formatResId = R.string.unit_volume_gallon_imperial_format,
|
||||
symbolResId = R.string.unit_volume_gallon_imperial_symbol,
|
||||
factor = 0.00454609
|
||||
)
|
||||
|
||||
data object QuartImperial : Unit(
|
||||
nameResId = R.string.unit_volume_quart_imperial,
|
||||
formatResId = R.string.unit_volume_quart_imperial_format,
|
||||
symbolResId = R.string.unit_volume_quart_imperial_symbol,
|
||||
factor = 0.0011365225
|
||||
)
|
||||
|
||||
data object PintImperial : Unit(
|
||||
nameResId = R.string.unit_volume_pint_imperial,
|
||||
formatResId = R.string.unit_volume_pint_imperial_format,
|
||||
symbolResId = R.string.unit_volume_pint_imperial_symbol,
|
||||
factor = 0.00056826125
|
||||
)
|
||||
|
||||
data object GillImperial : Unit(
|
||||
nameResId = R.string.unit_volume_gill_imperial,
|
||||
formatResId = R.string.unit_volume_gill_imperial_format,
|
||||
symbolResId = R.string.unit_volume_gill_imperial_symbol,
|
||||
factor = 0.0001420653125
|
||||
)
|
||||
|
||||
data object FluidOunceImperial : Unit(
|
||||
nameResId = R.string.unit_volume_fluid_ounce_imperial,
|
||||
formatResId = R.string.unit_volume_fluid_ounce_imperial_format,
|
||||
symbolResId = R.string.unit_volume_fluid_ounce_imperial_symbol,
|
||||
factor = 0.0000284130625
|
||||
)
|
||||
|
||||
data object DropImperial : Unit(
|
||||
nameResId = R.string.unit_volume_drop_imperial,
|
||||
formatResId = R.string.unit_volume_drop_imperial_format,
|
||||
symbolResId = R.string.unit_volume_drop_imperial_symbol,
|
||||
factor = 0.0000000986564670138
|
||||
)
|
||||
|
||||
data object TeaspoonImperial : Unit(
|
||||
nameResId = R.string.unit_volume_teaspoon_imperial,
|
||||
formatResId = R.string.unit_volume_teaspoon_imperial_format,
|
||||
symbolResId = R.string.unit_volume_teaspoon_imperial_symbol,
|
||||
factor = 0.00000591938802083
|
||||
)
|
||||
|
||||
data object TablespoonImperial : Unit(
|
||||
nameResId = R.string.unit_volume_tablespoon_imperial,
|
||||
formatResId = R.string.unit_volume_tablespoon_imperial_format,
|
||||
symbolResId = R.string.unit_volume_tablespoon_imperial_symbol,
|
||||
factor = 0.0000177581640625
|
||||
)
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@ import android.util.AttributeSet
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.core.widget.TextViewCompat
|
||||
import com.simplemobiletools.calculator.R
|
||||
import com.simplemobiletools.calculator.databinding.ViewConverterBinding
|
||||
@@ -14,9 +15,9 @@ import com.simplemobiletools.calculator.helpers.COMMA
|
||||
import com.simplemobiletools.calculator.helpers.DOT
|
||||
import com.simplemobiletools.calculator.helpers.NumberFormatHelper
|
||||
import com.simplemobiletools.calculator.helpers.converters.Converter
|
||||
import com.simplemobiletools.calculator.helpers.converters.ValueWithUnit
|
||||
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.helpers.MEDIUM_ALPHA_INT
|
||||
import com.simplemobiletools.commons.models.RadioItem
|
||||
import me.grantland.widget.AutofitHelper
|
||||
import kotlin.reflect.KMutableProperty0
|
||||
@@ -43,6 +44,8 @@ class ConverterView @JvmOverloads constructor(
|
||||
|
||||
AutofitHelper.create(binding.topUnitText)
|
||||
AutofitHelper.create(binding.bottomUnitText)
|
||||
AutofitHelper.create(binding.topUnitSymbol)
|
||||
AutofitHelper.create(binding.bottomUnitSymbol)
|
||||
|
||||
binding.swapButton.setOnClickListener { switch() }
|
||||
|
||||
@@ -57,32 +60,34 @@ class ConverterView @JvmOverloads constructor(
|
||||
topUnit = converter.defaultTopUnit
|
||||
bottomUnit = converter.defaultBottomUnit
|
||||
|
||||
binding.topUnitText.setFormattedUnitText(topUnit!!.withValue(0.0))
|
||||
binding.topUnitText.text = "0"
|
||||
updateBottomValue()
|
||||
updateUnitLabels()
|
||||
updateUnitLabelsAndSymbols()
|
||||
}
|
||||
|
||||
fun updateColors() {
|
||||
binding.topUnitText.setTextColor(context.getProperTextColor())
|
||||
binding.bottomUnitText.setTextColor(context.getProperTextColor())
|
||||
binding.topUnitName.setTextColor(context.getProperTextColor())
|
||||
binding.bottomUnitName.setTextColor(context.getProperTextColor())
|
||||
TextViewCompat.setCompoundDrawableTintList(
|
||||
binding.topUnitName,
|
||||
ColorStateList.valueOf(context.getProperPrimaryColor())
|
||||
)
|
||||
TextViewCompat.setCompoundDrawableTintList(
|
||||
binding.bottomUnitName,
|
||||
ColorStateList.valueOf(context.getProperPrimaryColor())
|
||||
)
|
||||
binding.topUnitHolder.setBackgroundColor(context.getProperBackgroundColor().lightenColor())
|
||||
listOf(binding.topUnitText, binding.bottomUnitText, binding.topUnitName, binding.bottomUnitName).forEach {
|
||||
it.setTextColor(context.getProperTextColor())
|
||||
}
|
||||
listOf(binding.topUnitName, binding.bottomUnitName).forEach {
|
||||
TextViewCompat.setCompoundDrawableTintList(
|
||||
it,
|
||||
ColorStateList.valueOf(context.getProperPrimaryColor())
|
||||
)
|
||||
}
|
||||
|
||||
binding.topUnitHolder.setBackgroundColor(context.getProperBackgroundColor().lightenColor())
|
||||
binding.swapButton.applyColorFilter(context.getProperPrimaryColor())
|
||||
|
||||
listOf(binding.topUnitSymbol, binding.bottomUnitSymbol).forEach {
|
||||
it.background = ResourcesCompat.getDrawable(resources, com.simplemobiletools.commons.R.drawable.pill_background, context.theme)
|
||||
it.background?.alpha = MEDIUM_ALPHA_INT
|
||||
}
|
||||
}
|
||||
|
||||
fun clear() {
|
||||
binding.topUnitText.setFormattedUnitText(topUnit!!.withValue(0.0))
|
||||
binding.bottomUnitText.setFormattedUnitText(bottomUnit!!.withValue(0.0))
|
||||
binding.topUnitText.text = "0"
|
||||
binding.bottomUnitText.text = "0"
|
||||
}
|
||||
|
||||
fun numpadClicked(id: Int) {
|
||||
@@ -104,7 +109,7 @@ class ConverterView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
private fun decimalClicked() {
|
||||
var value = binding.topUnitText.text.removeUnit()
|
||||
var value = binding.topUnitText.text.toString()
|
||||
if (!value.contains(decimalSeparator)) {
|
||||
when (value) {
|
||||
"0" -> value = "0$decimalSeparator"
|
||||
@@ -112,48 +117,45 @@ class ConverterView @JvmOverloads constructor(
|
||||
else -> value += decimalSeparator
|
||||
}
|
||||
|
||||
binding.topUnitText.text = topUnit?.format(context, value)
|
||||
binding.topUnitText.text = value
|
||||
}
|
||||
}
|
||||
|
||||
private fun zeroClicked() {
|
||||
val value = binding.topUnitText.text.removeUnit()
|
||||
val value = binding.topUnitText.text
|
||||
if (value != "0" || value.contains(decimalSeparator)) {
|
||||
addDigit(0)
|
||||
}
|
||||
}
|
||||
|
||||
private fun addDigit(digit: Int) {
|
||||
var value = binding.topUnitText.text.removeUnit()
|
||||
var value = binding.topUnitText.text.toString()
|
||||
if (value == "0") {
|
||||
value = ""
|
||||
}
|
||||
|
||||
value += digit
|
||||
value = formatter.addGroupingSeparators(value)
|
||||
binding.topUnitText.text = topUnit!!.format(context, value)
|
||||
binding.topUnitText.text = value
|
||||
}
|
||||
|
||||
private fun switch() {
|
||||
::topUnit.swapWith(::bottomUnit)
|
||||
updateTopValue()
|
||||
updateBottomValue()
|
||||
updateUnitLabels()
|
||||
updateUnitLabelsAndSymbols()
|
||||
}
|
||||
|
||||
private fun updateUnitLabels() {
|
||||
private fun updateUnitLabelsAndSymbols() {
|
||||
binding.topUnitName.text = topUnit?.nameResId?.let { context.getString(it) }
|
||||
binding.bottomUnitName.text = bottomUnit?.nameResId?.let { context.getString(it) }
|
||||
}
|
||||
|
||||
private fun updateTopValue() {
|
||||
binding.topUnitText.setFormattedUnitText(topUnit!!.withValue(binding.topUnitText.getValue()))
|
||||
binding.topUnitSymbol.text = topUnit?.symbolResId?.let { context.getString(it) }
|
||||
binding.bottomUnitSymbol.text = bottomUnit?.symbolResId?.let { context.getString(it) }
|
||||
}
|
||||
|
||||
private fun updateBottomValue() {
|
||||
converter?.apply {
|
||||
val converted = convert(topUnit!!.withValue(binding.topUnitText.getValue()), bottomUnit!!).value
|
||||
binding.bottomUnitText.setFormattedUnitText(bottomUnit!!.withValue(converted))
|
||||
val converted = convert(topUnit!!.withValue(formatter.removeGroupingSeparator(binding.topUnitText.text.toString()).toDouble()), bottomUnit!!).value
|
||||
binding.bottomUnitText.text = formatter.doubleToString(converted)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,21 +165,15 @@ class ConverterView @JvmOverloads constructor(
|
||||
this.groupingSeparator = groupingSeparator
|
||||
formatter.decimalSeparator = decimalSeparator
|
||||
formatter.groupingSeparator = groupingSeparator
|
||||
binding.topUnitText.setFormattedUnitText(topUnit!!.withValue(0.0))
|
||||
binding.bottomUnitText.setFormattedUnitText(bottomUnit!!.withValue(0.0))
|
||||
binding.topUnitText.text = "0"
|
||||
binding.bottomUnitText.text = "0"
|
||||
}
|
||||
}
|
||||
|
||||
private fun TextView.setFormattedUnitText(value: ValueWithUnit<*>) {
|
||||
text = value.unit.format(context, formatter.doubleToString(value.value))
|
||||
}
|
||||
|
||||
private fun TextView.getValue(): Double {
|
||||
return formatter.removeGroupingSeparator(text.removeUnit()).toDouble()
|
||||
return formatter.removeGroupingSeparator(text.toString()).toDouble()
|
||||
}
|
||||
|
||||
private fun CharSequence.removeUnit() = filter { it.isDigit() || it == '.' || it == ',' }.toString()
|
||||
|
||||
private fun <T> KMutableProperty0<T>.swapWith(other: KMutableProperty0<T>) {
|
||||
this.get().also {
|
||||
this.set(other.get())
|
||||
@@ -196,10 +192,9 @@ class ConverterView @JvmOverloads constructor(
|
||||
switch()
|
||||
} else if (unit != propertyToChange.get()) {
|
||||
propertyToChange.set(unit)
|
||||
updateTopValue()
|
||||
updateBottomValue()
|
||||
}
|
||||
updateUnitLabels()
|
||||
updateUnitLabelsAndSymbols()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -5,7 +5,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/top_unit_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -13,6 +13,7 @@
|
||||
android:paddingEnd="@dimen/activity_margin"
|
||||
android:orientation="vertical"
|
||||
android:layout_weight="3">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/top_unit_name"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -20,19 +21,40 @@
|
||||
android:layout_marginTop="@dimen/small_margin"
|
||||
android:layout_marginBottom="@dimen/small_margin"
|
||||
android:layout_marginStart="@dimen/activity_margin"
|
||||
android:layout_weight="1"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:textSize="@dimen/big_text_size"
|
||||
app:drawableEndCompat="@drawable/ic_arrow_drop_down_vector" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/top_unit_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="viewEnd"
|
||||
android:layout_marginEnd="@dimen/normal_margin"
|
||||
android:gravity="end|center_vertical"
|
||||
android:layout_weight="2"
|
||||
android:textAlignment="gravity"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/top_unit_symbol"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/top_unit_name"
|
||||
android:textSize="@dimen/display_text_size" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/top_unit_symbol"
|
||||
style="@style/MyButton"
|
||||
android:layout_width="@dimen/unit_symbol_size"
|
||||
android:layout_height="@dimen/unit_symbol_size"
|
||||
android:gravity="center"
|
||||
android:padding="@dimen/small_margin"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="gravity"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/top_unit_text"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/top_unit_text" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/swap_button"
|
||||
@@ -44,7 +66,7 @@
|
||||
android:layout_weight="0.5"
|
||||
android:src="@drawable/ic_swap_vertical_vector" />
|
||||
|
||||
<LinearLayout
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/bottom_unit_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -52,6 +74,7 @@
|
||||
android:paddingEnd="@dimen/activity_margin"
|
||||
android:orientation="vertical"
|
||||
android:layout_weight="3">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bottom_unit_name"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -59,18 +82,38 @@
|
||||
android:layout_gravity="start|center_vertical"
|
||||
android:layout_marginStart="@dimen/activity_margin"
|
||||
android:layout_marginBottom="@dimen/small_margin"
|
||||
android:layout_weight="1"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:textSize="@dimen/big_text_size"
|
||||
app:drawableEndCompat="@drawable/ic_arrow_drop_down_vector" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bottom_unit_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="viewEnd"
|
||||
android:layout_weight="2"
|
||||
android:layout_marginEnd="@dimen/normal_margin"
|
||||
android:gravity="end|center_vertical"
|
||||
android:textAlignment="gravity"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/bottom_unit_symbol"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/bottom_unit_name"
|
||||
android:textSize="@dimen/display_text_size" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bottom_unit_symbol"
|
||||
style="@style/MyButton"
|
||||
android:layout_width="@dimen/unit_symbol_size"
|
||||
android:layout_height="@dimen/unit_symbol_size"
|
||||
android:gravity="center"
|
||||
android:padding="@dimen/small_margin"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="gravity"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/bottom_unit_text"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/bottom_unit_text" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.simplemobiletools.calculator.views.ConverterView>
|
||||
|
@@ -10,4 +10,5 @@
|
||||
<dimen name="display_text_size">40sp</dimen>
|
||||
|
||||
<dimen name="unit_type_size">128dp</dimen>
|
||||
<dimen name="unit_symbol_size">64dp</dimen>
|
||||
</resources>
|
||||
|
@@ -3,122 +3,122 @@
|
||||
<string name="package_name">com.simplemobiletools.calculator</string>
|
||||
|
||||
<string name="unit_name_with_symbol_format">%s (%s)</string>
|
||||
<string name="unit_length_kilometer_format">%s km</string>
|
||||
<string name="unit_length_hectometer_format">%s hm</string>
|
||||
<string name="unit_length_decameter_format">%s dam</string>
|
||||
<string name="unit_length_meter_format">%s m</string>
|
||||
<string name="unit_length_decimeter_format">%s dm</string>
|
||||
<string name="unit_length_centimeter_format">%s cm</string>
|
||||
<string name="unit_length_millimeter_format">%s mm</string>
|
||||
<string name="unit_length_micrometer_format">%s μm</string>
|
||||
<string name="unit_length_nanometer_format">%s nm</string>
|
||||
<string name="unit_length_picometer_format">%s pm</string>
|
||||
<string name="unit_length_angstrom_format">%s Å</string>
|
||||
<string name="unit_length_mile_format">%s mi</string>
|
||||
<string name="unit_length_chain_format">%s ch</string>
|
||||
<string name="unit_length_yard_format">%s yd</string>
|
||||
<string name="unit_length_foot_format">%s ft</string>
|
||||
<string name="unit_length_mil_format">%s mil</string>
|
||||
<string name="unit_length_inch_format">%s in</string>
|
||||
<string name="unit_length_fathom_format">%s fathom</string>
|
||||
<string name="unit_length_cable_format">%s cable</string>
|
||||
<string name="unit_length_nautical_mile_format">%s NM</string>
|
||||
<string name="unit_length_link_format">%s lnk</string>
|
||||
<string name="unit_length_rod_format">%s rd</string>
|
||||
<string name="unit_length_astronomical_unit_format">%s au</string>
|
||||
<string name="unit_length_parsec_format">%s pc</string>
|
||||
<string name="unit_length_light_year_format">%s ly</string>
|
||||
<string name="unit_area_square_kilometer_format">%s km²</string>
|
||||
<string name="unit_area_square_meter_format">%s m²</string>
|
||||
<string name="unit_area_square_centimeter_format">%s cm²</string>
|
||||
<string name="unit_area_square_millimeter_format">%s mm²</string>
|
||||
<string name="unit_area_square_mile_format">%s sq mi</string>
|
||||
<string name="unit_area_square_yard_format">%s sq yd</string>
|
||||
<string name="unit_area_square_foot_format">%s sq ft</string>
|
||||
<string name="unit_area_square_mil_format">%s sq mil</string>
|
||||
<string name="unit_area_square_inch_format">%s sq in</string>
|
||||
<string name="unit_area_square_rod_format">%s sq rd</string>
|
||||
<string name="unit_area_acre_format">%s ac</string>
|
||||
<string name="unit_area_are_format">%s a</string>
|
||||
<string name="unit_area_dunam_format">%s dunam</string>
|
||||
<string name="unit_area_hectare_format">%s ha</string>
|
||||
<string name="unit_volume_cubic_meter_format">%s m³</string>
|
||||
<string name="unit_volume_cubic_decimeter_format">%s dm³</string>
|
||||
<string name="unit_volume_cubic_centimeter_format">%s cm³</string>
|
||||
<string name="unit_volume_cubic_millimeter_format">%s mm³</string>
|
||||
<string name="unit_volume_liter_format">%s l</string>
|
||||
<string name="unit_volume_centiliter_format">%s cl</string>
|
||||
<string name="unit_volume_deciliter_format">%s dl</string>
|
||||
<string name="unit_volume_milliliter_format">%s ml</string>
|
||||
<string name="unit_volume_acre_foot_format">%s ac ft</string>
|
||||
<string name="unit_volume_cubic_yard_format">%s yd³</string>
|
||||
<string name="unit_volume_cubic_foot_format">%s ft³</string>
|
||||
<string name="unit_volume_cubic_inch_format">%s in³</string>
|
||||
<string name="unit_volume_barrel_us_format">%s fl bl (US)</string>
|
||||
<string name="unit_volume_gallon_us_format">%s gal (US)</string>
|
||||
<string name="unit_volume_quart_us_format">%s qt (US)</string>
|
||||
<string name="unit_volume_pint_us_format">%s pt (US fl)</string>
|
||||
<string name="unit_volume_gill_us_format">%s gi (US)</string>
|
||||
<string name="unit_volume_fluid_ounce_us_format">%s US fl oz</string>
|
||||
<string name="unit_volume_drop_us_format">%s gtt</string>
|
||||
<string name="unit_volume_teaspoon_us_format">%s tsp</string>
|
||||
<string name="unit_volume_tablespoon_us_format">%s tbsp</string>
|
||||
<string name="unit_volume_cup_us_format">%s c (US)</string>
|
||||
<string name="unit_volume_barrel_imperial_format">%s bl (imp)</string>
|
||||
<string name="unit_volume_gallon_imperial_format">%s gal (imp)</string>
|
||||
<string name="unit_volume_quart_imperial_format">%s qt (imp)</string>
|
||||
<string name="unit_volume_pint_imperial_format">%s pt (imp)</string>
|
||||
<string name="unit_volume_gill_imperial_format">%s gi (imp)</string>
|
||||
<string name="unit_volume_fluid_ounce_imperial_format">%s fl oz (imp)</string>
|
||||
<string name="unit_volume_drop_imperial_format">%s gtt</string>
|
||||
<string name="unit_volume_teaspoon_imperial_format">%s tsp</string>
|
||||
<string name="unit_volume_tablespoon_imperial_format">%s tbsp</string>
|
||||
<string name="unit_mass_gram_format">%s g</string>
|
||||
<string name="unit_mass_kilogram_format">%s kg</string>
|
||||
<string name="unit_mass_milligram_format">%s mg</string>
|
||||
<string name="unit_mass_microgram_format">%s μm</string>
|
||||
<string name="unit_mass_tonne_format">%s t</string>
|
||||
<string name="unit_mass_pound_format">%s lb</string>
|
||||
<string name="unit_mass_ounce_format">%s oz</string>
|
||||
<string name="unit_mass_grain_format">%s gr</string>
|
||||
<string name="unit_mass_dram_format">%s dr</string>
|
||||
<string name="unit_mass_stone_format">%s st</string>
|
||||
<string name="unit_mass_long_ton_format">%s ton</string>
|
||||
<string name="unit_mass_short_ton_format">%s sh tn</string>
|
||||
<string name="unit_mass_carat_format">%s kt</string>
|
||||
<string name="unit_mass_carat_metric_format">%s ct</string>
|
||||
<string name="unit_temperature_celsius_format">%s°C</string>
|
||||
<string name="unit_temperature_delisle_format">%s°De</string>
|
||||
<string name="unit_temperature_fahrenheit_format">%s°F</string>
|
||||
<string name="unit_temperature_newton_format">%s°N</string>
|
||||
<string name="unit_temperature_rankine_format">%s°R</string>
|
||||
<string name="unit_temperature_reaumur_format">%s°Ré</string>
|
||||
<string name="unit_temperature_romer_format">%s°Rø</string>
|
||||
<string name="unit_temperature_gas_mark_format">%s GM</string>
|
||||
<string name="unit_temperature_kelvin_format">%s K</string>
|
||||
<string name="unit_time_hour_format">%s h</string>
|
||||
<string name="unit_time_minute_format">%s m</string>
|
||||
<string name="unit_time_second_format">%s s</string>
|
||||
<string name="unit_time_millisecond_format">%s ms</string>
|
||||
<string name="unit_time_microsecond_format">%s µs</string>
|
||||
<string name="unit_time_nanosecond_format">%s ns</string>
|
||||
<string name="unit_time_picosecond_format">%s ps</string>
|
||||
<string name="unit_time_day_format">%s d</string>
|
||||
<string name="unit_time_week_format">%s wk</string>
|
||||
<string name="unit_time_month_full_format">%s mo</string>
|
||||
<string name="unit_time_month_hollow_format">%s mo</string>
|
||||
<string name="unit_time_month_synodic_format">%s mo</string>
|
||||
<string name="unit_time_month_gregorian_average_format">%s mo</string>
|
||||
<string name="unit_time_year_leap_format">%s y</string>
|
||||
<string name="unit_time_year_gregorian_format">%s y</string>
|
||||
<string name="unit_time_year_julian_format">%s y</string>
|
||||
<string name="unit_time_jiffy_format">%s j</string>
|
||||
<string name="unit_time_moment_format">%s moment</string>
|
||||
<string name="unit_time_fortnight_format">%s fn</string>
|
||||
<string name="unit_time_decade_format">%s dec</string>
|
||||
<string name="unit_time_century_format">%s c</string>
|
||||
<string name="unit_time_millennium_format">%s millennium</string>
|
||||
<string name="unit_time_atomic_unit_format">%s a.u.</string>
|
||||
<string name="unit_length_kilometer_symbol">km</string>
|
||||
<string name="unit_length_hectometer_symbol">hm</string>
|
||||
<string name="unit_length_decameter_symbol">dam</string>
|
||||
<string name="unit_length_meter_symbol">m</string>
|
||||
<string name="unit_length_decimeter_symbol">dm</string>
|
||||
<string name="unit_length_centimeter_symbol">cm</string>
|
||||
<string name="unit_length_millimeter_symbol">mm</string>
|
||||
<string name="unit_length_micrometer_symbol">μm</string>
|
||||
<string name="unit_length_nanometer_symbol">nm</string>
|
||||
<string name="unit_length_picometer_symbol">pm</string>
|
||||
<string name="unit_length_angstrom_symbol">Å</string>
|
||||
<string name="unit_length_mile_symbol">mi</string>
|
||||
<string name="unit_length_chain_symbol">ch</string>
|
||||
<string name="unit_length_yard_symbol">yd</string>
|
||||
<string name="unit_length_foot_symbol">ft</string>
|
||||
<string name="unit_length_mil_symbol">mil</string>
|
||||
<string name="unit_length_inch_symbol">in</string>
|
||||
<string name="unit_length_fathom_symbol">fathom</string>
|
||||
<string name="unit_length_cable_symbol">cable</string>
|
||||
<string name="unit_length_nautical_mile_symbol">NM</string>
|
||||
<string name="unit_length_link_symbol">lnk</string>
|
||||
<string name="unit_length_rod_symbol">rd</string>
|
||||
<string name="unit_length_astronomical_unit_symbol">au</string>
|
||||
<string name="unit_length_parsec_symbol">pc</string>
|
||||
<string name="unit_length_light_year_symbol">ly</string>
|
||||
<string name="unit_area_square_kilometer_symbol">km²</string>
|
||||
<string name="unit_area_square_meter_symbol">m²</string>
|
||||
<string name="unit_area_square_centimeter_symbol">cm²</string>
|
||||
<string name="unit_area_square_millimeter_symbol">mm²</string>
|
||||
<string name="unit_area_square_mile_symbol">sq mi</string>
|
||||
<string name="unit_area_square_yard_symbol">sq yd</string>
|
||||
<string name="unit_area_square_foot_symbol">sq ft</string>
|
||||
<string name="unit_area_square_mil_symbol">sq mil</string>
|
||||
<string name="unit_area_square_inch_symbol">sq in</string>
|
||||
<string name="unit_area_square_rod_symbol">sq rd</string>
|
||||
<string name="unit_area_acre_symbol">ac</string>
|
||||
<string name="unit_area_are_symbol">a</string>
|
||||
<string name="unit_area_dunam_symbol">dunam</string>
|
||||
<string name="unit_area_hectare_symbol">ha</string>
|
||||
<string name="unit_volume_cubic_meter_symbol">m³</string>
|
||||
<string name="unit_volume_cubic_decimeter_symbol">dm³</string>
|
||||
<string name="unit_volume_cubic_centimeter_symbol">cm³</string>
|
||||
<string name="unit_volume_cubic_millimeter_symbol">mm³</string>
|
||||
<string name="unit_volume_liter_symbol">l</string>
|
||||
<string name="unit_volume_centiliter_symbol">cl</string>
|
||||
<string name="unit_volume_deciliter_symbol">dl</string>
|
||||
<string name="unit_volume_milliliter_symbol">ml</string>
|
||||
<string name="unit_volume_acre_foot_symbol">ac ft</string>
|
||||
<string name="unit_volume_cubic_yard_symbol">yd³</string>
|
||||
<string name="unit_volume_cubic_foot_symbol">ft³</string>
|
||||
<string name="unit_volume_cubic_inch_symbol">in³</string>
|
||||
<string name="unit_volume_barrel_us_symbol">fl bl (US)</string>
|
||||
<string name="unit_volume_gallon_us_symbol">gal (US)</string>
|
||||
<string name="unit_volume_quart_us_symbol">qt (US)</string>
|
||||
<string name="unit_volume_pint_us_symbol">pt (US fl)</string>
|
||||
<string name="unit_volume_gill_us_symbol">gi (US)</string>
|
||||
<string name="unit_volume_fluid_ounce_us_symbol">US fl oz</string>
|
||||
<string name="unit_volume_drop_us_symbol">gtt</string>
|
||||
<string name="unit_volume_teaspoon_us_symbol">tsp</string>
|
||||
<string name="unit_volume_tablespoon_us_symbol">tbsp</string>
|
||||
<string name="unit_volume_cup_us_symbol">c (US)</string>
|
||||
<string name="unit_volume_barrel_imperial_symbol">bl (imp)</string>
|
||||
<string name="unit_volume_gallon_imperial_symbol">gal (imp)</string>
|
||||
<string name="unit_volume_quart_imperial_symbol">qt (imp)</string>
|
||||
<string name="unit_volume_pint_imperial_symbol">pt (imp)</string>
|
||||
<string name="unit_volume_gill_imperial_symbol">gi (imp)</string>
|
||||
<string name="unit_volume_fluid_ounce_imperial_symbol">fl oz (imp)</string>
|
||||
<string name="unit_volume_drop_imperial_symbol">gtt</string>
|
||||
<string name="unit_volume_teaspoon_imperial_symbol">tsp</string>
|
||||
<string name="unit_volume_tablespoon_imperial_symbol">tbsp</string>
|
||||
<string name="unit_mass_gram_symbol">g</string>
|
||||
<string name="unit_mass_kilogram_symbol">kg</string>
|
||||
<string name="unit_mass_milligram_symbol">mg</string>
|
||||
<string name="unit_mass_microgram_symbol">μm</string>
|
||||
<string name="unit_mass_tonne_symbol">t</string>
|
||||
<string name="unit_mass_pound_symbol">lb</string>
|
||||
<string name="unit_mass_ounce_symbol">oz</string>
|
||||
<string name="unit_mass_grain_symbol">gr</string>
|
||||
<string name="unit_mass_dram_symbol">dr</string>
|
||||
<string name="unit_mass_stone_symbol">st</string>
|
||||
<string name="unit_mass_long_ton_symbol">ton</string>
|
||||
<string name="unit_mass_short_ton_symbol">sh tn</string>
|
||||
<string name="unit_mass_carat_symbol">kt</string>
|
||||
<string name="unit_mass_carat_metric_symbol">ct</string>
|
||||
<string name="unit_temperature_celsius_symbol">°C</string>
|
||||
<string name="unit_temperature_delisle_symbol">°De</string>
|
||||
<string name="unit_temperature_fahrenheit_symbol">°F</string>
|
||||
<string name="unit_temperature_newton_symbol">°N</string>
|
||||
<string name="unit_temperature_rankine_symbol">°R</string>
|
||||
<string name="unit_temperature_reaumur_symbol">°Ré</string>
|
||||
<string name="unit_temperature_romer_symbol">°Rø</string>
|
||||
<string name="unit_temperature_gas_mark_symbol">GM</string>
|
||||
<string name="unit_temperature_kelvin_symbol">K</string>
|
||||
<string name="unit_time_hour_symbol">h</string>
|
||||
<string name="unit_time_minute_symbol">m</string>
|
||||
<string name="unit_time_second_symbol">s</string>
|
||||
<string name="unit_time_millisecond_symbol">ms</string>
|
||||
<string name="unit_time_microsecond_symbol">µs</string>
|
||||
<string name="unit_time_nanosecond_symbol">ns</string>
|
||||
<string name="unit_time_picosecond_symbol">ps</string>
|
||||
<string name="unit_time_day_symbol">d</string>
|
||||
<string name="unit_time_week_symbol">wk</string>
|
||||
<string name="unit_time_month_full_symbol">mo</string>
|
||||
<string name="unit_time_month_hollow_symbol">mo</string>
|
||||
<string name="unit_time_month_synodic_symbol">mo</string>
|
||||
<string name="unit_time_month_gregorian_average_symbol">mo</string>
|
||||
<string name="unit_time_year_leap_symbol">y</string>
|
||||
<string name="unit_time_year_gregorian_symbol">y</string>
|
||||
<string name="unit_time_year_julian_symbol">y</string>
|
||||
<string name="unit_time_jiffy_symbol">j</string>
|
||||
<string name="unit_time_moment_symbol">moment</string>
|
||||
<string name="unit_time_fortnight_symbol">fn</string>
|
||||
<string name="unit_time_decade_symbol">dec</string>
|
||||
<string name="unit_time_century_symbol">c</string>
|
||||
<string name="unit_time_millennium_symbol">millennium</string>
|
||||
<string name="unit_time_atomic_unit_symbol">a.u.</string>
|
||||
|
||||
<!-- Release notes -->
|
||||
<string name="release_28">Allow customizing the bottom navigation bar color</string>
|
||||
|
Reference in New Issue
Block a user