Added plurals resource.
This commit is contained in:
parent
6f1ad8a69b
commit
2283c42046
4 changed files with 14 additions and 29 deletions
|
@ -44,7 +44,6 @@ import com.google.gson.JsonSyntaxException
|
|||
import net.thauvin.erik.android.tesremoteprogrammer.models.Config
|
||||
import net.thauvin.erik.android.tesremoteprogrammer.models.Configurations
|
||||
import net.thauvin.erik.android.tesremoteprogrammer.util.Dtmf
|
||||
import net.thauvin.erik.android.tesremoteprogrammer.util.plural
|
||||
import org.jetbrains.anko.*
|
||||
import org.jetbrains.anko.design.textInputLayout
|
||||
import permissions.dispatcher.NeedsPermission
|
||||
|
@ -304,10 +303,12 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
|
|||
config = Gson().fromJson(InputStreamReader(resources.openRawResource(it)),
|
||||
Config::class.java)
|
||||
|
||||
// val errors = StringBuilder()
|
||||
// if (!validateConfig(config, errors)) {
|
||||
// info("${config.params.name}: $errors")
|
||||
// }
|
||||
if (BuildConfig.DEBUG) {
|
||||
val errors = StringBuilder()
|
||||
if (!validateConfig(config, errors)) {
|
||||
info(">>> ${config.params.name}: " + Html.fromHtml(errors.toString()))
|
||||
}
|
||||
}
|
||||
|
||||
confs.configs.put(config.params.name, config)
|
||||
}
|
||||
|
@ -413,7 +414,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
|
|||
if (size > 0 && (fields[1].text.length != size)) {
|
||||
isValid = false
|
||||
fields[1].error = getString(R.string.error_invalid_size, size,
|
||||
getString(R.string.error_digit).plural(size))
|
||||
resources.getQuantityString(R.plurals.error_digit, size))
|
||||
}
|
||||
|
||||
return isValid
|
||||
|
|
|
@ -41,7 +41,6 @@ import net.thauvin.erik.android.tesremoteprogrammer.filters.NumberFilter
|
|||
import net.thauvin.erik.android.tesremoteprogrammer.models.Option
|
||||
import net.thauvin.erik.android.tesremoteprogrammer.models.Params
|
||||
import net.thauvin.erik.android.tesremoteprogrammer.util.Dtmf
|
||||
import net.thauvin.erik.android.tesremoteprogrammer.util.plural
|
||||
import net.thauvin.erik.android.tesremoteprogrammer.widget.ScrollAwareFABBehavior
|
||||
import org.jetbrains.anko.*
|
||||
import org.jetbrains.anko.custom.ankoView
|
||||
|
@ -230,7 +229,7 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
|||
val size = option.fields[i].size
|
||||
if (!option.fields[i].alpha && size > 0 && (v.length() != size)) {
|
||||
v.error = getString(R.string.error_invalid_size, size,
|
||||
getString(R.string.error_digit).plural(size))
|
||||
resources.getQuantityString(R.plurals.error_digit, size))
|
||||
isValid = false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,24 +17,6 @@
|
|||
*/
|
||||
package net.thauvin.erik.android.tesremoteprogrammer.util
|
||||
|
||||
fun String.plural(size: Int): String {
|
||||
val consonants = "bcdfghjklmnpqrstvwxz"
|
||||
|
||||
if (size > 1 && this.length > 2) {
|
||||
if ((this.endsWith("o", true) || this.endsWith("s", true)) &&
|
||||
consonants.contains(this[this.length - 2], true)) {
|
||||
return this + "es"
|
||||
}
|
||||
|
||||
if (this.endsWith("y", true) &&
|
||||
consonants.contains(this[this.length - 2], true)) {
|
||||
return this + "ies"
|
||||
}
|
||||
}
|
||||
|
||||
return this + "s"
|
||||
}
|
||||
|
||||
fun String.replaceAll(replace: Array<Pair<String, String>>): String {
|
||||
val result = StringBuilder(this)
|
||||
var offset: Int
|
||||
|
|
|
@ -5,7 +5,10 @@
|
|||
<string name="alert_config_error">Configuration Errors</string>
|
||||
<string name="app_name">TES Remote Programmer</string>
|
||||
<string name="dialog_import">Import</string>
|
||||
<string name="error_digit">digit</string>
|
||||
<plurals name="error_digit">
|
||||
<item quantity="one">digit</item>
|
||||
<item quantity="other">digits</item>
|
||||
</plurals>
|
||||
<string name="error_invalid_dtmf">Invalid DTMF: <xliff:g id="type">%1$s</xliff:g></string>
|
||||
<string name="error_invalid_field">Missing or invalid fields data.</string>
|
||||
<string name="error_invalid_size">Invalid: <xliff:g id="size">%1$d</xliff:g> <xliff:g id="type">%2$s</xliff:g> required</string>
|
||||
|
@ -20,6 +23,6 @@
|
|||
<string name="validate_invalid_param"><p><b>params</b>: <font color=\"red\"><xliff:g id="param">%1$s</xliff:g></font> invalid</p></string>
|
||||
<string name="validate_missing_fields"><p><b>opts[<xliff:g id="opts">%1$d</xliff:g>]</b>: <font color=\"red\">fields</font> missing</string>
|
||||
<string name="validate_missing_param"><p><p><b>params</b>: <font color=\"red\"><xliff:g id="param">%1$s</xliff:g></font> missing</p></string>
|
||||
<string name="validate_missing_opts"><font color=\"red\">opts</font> missing.</string>
|
||||
<string name="validate_unused_field"><b>opts[<xliff:g id="opts">%1$d</xliff:g>]</b>, <font color=\"red\">fields[<xliff:g id="field">%2$d</xliff:g>]</font>: unused</string>
|
||||
<string name="validate_missing_opts"><p><font color=\"red\">opts</font> missing.</p></string>
|
||||
<string name="validate_unused_field"><p><b>opts[<xliff:g id="opts">%1$d</xliff:g>]</b>, <font color=\"red\">fields[<xliff:g id="field">%2$d</xliff:g>]</font>: unused</p></string>
|
||||
</resources>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue