diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..d91f848
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index d9d97de..1bc6442 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,3 +1,7 @@
+plugins {
+ id "org.jlleitschuh.gradle.ktlint" version "6.2.1"
+}
+
//noinspection GradleCompatible
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
@@ -72,4 +76,4 @@ repositories {
kapt {
//generateStubs = true
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/App.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/App.kt
index a621736..219f8f1 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/App.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/App.kt
@@ -25,12 +25,10 @@ import org.acra.ACRA
import org.acra.ReportingInteractionMode
import org.acra.annotation.ReportsCrashes
-
@ReportsCrashes(mailTo = "erik@thauvin.net",
- mode = ReportingInteractionMode.DIALOG,
- reportSenderFactoryClasses = arrayOf(CrashEmailFactory::class),
- reportDialogClass = CrashReportActivity::class)
-
+ mode = ReportingInteractionMode.DIALOG,
+ reportSenderFactoryClasses = arrayOf(CrashEmailFactory::class),
+ reportDialogClass = CrashReportActivity::class)
open class App : Application() {
override fun attachBaseContext(base: Context) {
super.attachBaseContext(base)
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/MainActivity.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/MainActivity.kt
index 7191817..d4ea0f7 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/MainActivity.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/MainActivity.kt
@@ -27,7 +27,11 @@ import android.graphics.Typeface
import android.os.Build
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
-import android.text.*
+import android.text.Html
+import android.text.InputFilter
+import android.text.InputType
+import android.text.Spanned
+import android.text.TextUtils
import android.util.TypedValue
import android.view.Menu
import android.view.MenuItem
@@ -45,9 +49,22 @@ import net.thauvin.erik.android.tesremoteprogrammer.models.Configurations
import net.thauvin.erik.android.tesremoteprogrammer.util.Dtmf
import net.thauvin.erik.android.tesremoteprogrammer.util.isDKS
import net.thauvin.erik.android.tesremoteprogrammer.util.isDigits
-import org.jetbrains.anko.*
+import org.jetbrains.anko.AnkoLogger
+import org.jetbrains.anko.alert
+import org.jetbrains.anko.bottomPadding
+import org.jetbrains.anko.cancelButton
import org.jetbrains.anko.design.textInputEditText
import org.jetbrains.anko.design.textInputLayout
+import org.jetbrains.anko.dip
+import org.jetbrains.anko.horizontalPadding
+import org.jetbrains.anko.info
+import org.jetbrains.anko.listView
+import org.jetbrains.anko.padding
+import org.jetbrains.anko.singleLine
+import org.jetbrains.anko.startActivity
+import org.jetbrains.anko.textView
+import org.jetbrains.anko.topPadding
+import org.jetbrains.anko.verticalLayout
import permissions.dispatcher.NeedsPermission
import permissions.dispatcher.RuntimePermissions
import java.io.FileNotFoundException
@@ -55,7 +72,9 @@ import java.io.InputStreamReader
import java.io.ObjectInputStream
import java.io.ObjectOutputStream
import java.text.DateFormat
-import java.util.*
+import java.util.ArrayList
+import java.util.Date
+import java.util.Locale
@RuntimePermissions
class MainActivity : AppCompatActivity(), AnkoLogger {
@@ -64,13 +83,13 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
private val configurationsData = "configurations.dat"
private val currentConfigData = "config.dat"
private val defaultConfigurations = listOf(
- R.raw.dks_1802,
- R.raw.dks_1802_epd,
- R.raw.dks_1812,
- R.raw.dks_1819,
- R.raw.linear_ae_100,
- R.raw.linear_ae_500,
- R.raw.dks_1803_1808_1810)
+ R.raw.dks_1802,
+ R.raw.dks_1802_epd,
+ R.raw.dks_1812,
+ R.raw.dks_1819,
+ R.raw.linear_ae_100,
+ R.raw.linear_ae_500,
+ R.raw.dks_1803_1808_1810)
private val readRequestCode = 42
companion object {
@@ -97,7 +116,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
defaultConfigurations.forEach {
config = Gson().fromJson(InputStreamReader(resources.openRawResource(it)),
- Config::class.java)
+ Config::class.java)
if (BuildConfig.DEBUG) {
val errors = StringBuilder()
@@ -126,7 +145,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
extraTitle = "Last Update"
extra = DateFormat.getDateInstance(DateFormat.LONG, Locale.getDefault()).format(
- Date(BuildConfig.TIMESTAMP)).toString()
+ Date(BuildConfig.TIMESTAMP)).toString()
emailAddress = "erik@thauvin.net"
emailSubject = "${getString(R.string.app_name)} ${BuildConfig.VERSION_NAME} Support"
@@ -154,7 +173,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
val tmp: Config? = try {
Gson().fromJson(InputStreamReader(contentResolver.openInputStream(intent.data)),
- Config::class.java)
+ Config::class.java)
} catch (jse: JsonSyntaxException) {
val cause = jse.cause
if (cause != null) {
@@ -291,8 +310,8 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
if (validateFields(fields)) {
saveConfig()
startActivity(
- "net.thauvin.erik.android.tesremoteprogrammer.models.Params" to config.params,
- "net.thauvin.erik.android.tesremoteprogrammer.models.Option" to opts[position])
+ "net.thauvin.erik.android.tesremoteprogrammer.models.Params" to config.params,
+ "net.thauvin.erik.android.tesremoteprogrammer.models.Option" to opts[position])
}
}
}
@@ -340,16 +359,17 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
}
alert.show()
-
}
}
return super.onOptionsItemSelected(item)
}
@SuppressLint("NeedOnRequestPermissionsResult")
- override fun onRequestPermissionsResult(requestCode: Int,
- permissions: Array,
- grantResults: IntArray) {
+ override fun onRequestPermissionsResult(
+ requestCode: Int,
+ permissions: Array,
+ grantResults: IntArray
+ ) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
onRequestPermissionsResult(requestCode, grantResults)
}
@@ -365,9 +385,9 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
}
private fun saveConfigurations(confs: Configurations) =
- ObjectOutputStream(openFileOutput(configurationsData, Context.MODE_PRIVATE)).use {
- it.writeObject(confs)
- }
+ ObjectOutputStream(openFileOutput(configurationsData, Context.MODE_PRIVATE)).use {
+ it.writeObject(confs)
+ }
private fun saveConfig(backup: Boolean = true) {
if (backup) {
@@ -397,7 +417,6 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
errors.append(getString(R.string.validate_missing_param, "type"))
} else if (!Dtmf.isValidType(type)) {
errors.append(getString(R.string.validate_invalid_param, "type"))
-
}
// size
@@ -426,49 +445,49 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
// title
if (title.isBlank()) {
errors.append(getString(
- R.string.validate_missing_opts_prop,
- i + 1,
- "title"))
+ R.string.validate_missing_opts_prop,
+ i + 1,
+ "title"))
}
// nosteps/nodial
if (nosteps && nodial) {
errors.append(getString(
- R.string.validate_invalid_option,
- i + 1,
- "nodial/nosteps"))
+ R.string.validate_invalid_option,
+ i + 1,
+ "nodial/nosteps"))
}
// dtmf
if (dtmf.isBlank()) {
errors.append(getString(
- R.string.validate_missing_opts_prop,
- i + 1,
- "dtmf"))
+ R.string.validate_missing_opts_prop,
+ i + 1,
+ "dtmf"))
} else if (!nodial && fields.isEmpty()) { // fields missing
errors.append(getString(
- R.string.validate_missing_opts_prop,
- i + 1,
- "fields"))
+ R.string.validate_missing_opts_prop,
+ i + 1,
+ "fields"))
} else {
val blank = "\\0"
val mock = Dtmf.mock(option, blank)
if (!mock.contains(MainActivity.PAUSE)) { // no pause
errors.append(getString(
- R.string.validate_invalid_opts_prop,
- i + 1,
- "dtmf",
- getString(R.string.validate_dtmf_nopause)))
+ R.string.validate_invalid_opts_prop,
+ i + 1,
+ "dtmf",
+ getString(R.string.validate_dtmf_nopause)))
}
if (!Dtmf.validate(mock,
- "${MainActivity.PAUSE}${params.ack}${params.alt}$blank", nodial)) {
+ "${MainActivity.PAUSE}${params.ack}${params.alt}$blank", nodial)) {
errors.append(getString(
- R.string.validate_invalid_opts_prop,
- i + 1,
- "dtmf",
- mock.replace(blank, "✓")))
+ R.string.validate_invalid_opts_prop,
+ i + 1,
+ "dtmf",
+ mock.replace(blank, "✓")))
}
}
@@ -476,78 +495,78 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
fields.forEachIndexed { j, field ->
if (field == null) {
errors.append(getString(
- R.string.validate_syntax_error,
- "opts[${i + 1}], field[$j]"))
+ R.string.validate_syntax_error,
+ "opts[${i + 1}], field[$j]"))
} else {
with(field) {
// size
if (size <= 0) {
errors.append(getString(
- R.string.validate_invalid_field_prop,
- i + 1,
- j + 1,
- resources.getQuantityString(R.plurals.error_prop, 1),
- "size=$size"))
+ R.string.validate_invalid_field_prop,
+ i + 1,
+ j + 1,
+ resources.getQuantityString(R.plurals.error_prop, 1),
+ "size=$size"))
}
// digits
if (digits.isNotBlank() && !digits.isDigits()) {
errors.append(getString(
- R.string.validate_invalid_field_prop,
- i + 1,
- j + 1,
- resources.getQuantityString(R.plurals.error_prop, 1),
- "digits='$digits'"))
+ R.string.validate_invalid_field_prop,
+ i + 1,
+ j + 1,
+ resources.getQuantityString(R.plurals.error_prop, 1),
+ "digits='$digits'"))
}
// minSize
if (minSize >= 0 && minSize > size) {
errors.append(getString(
- R.string.validate_invalid_field_prop,
- i + 1,
- j + 1,
- resources.getQuantityString(R.plurals.error_prop, 2),
- "minSize=$minSize > size=$size"))
+ R.string.validate_invalid_field_prop,
+ i + 1,
+ j + 1,
+ resources.getQuantityString(R.plurals.error_prop, 2),
+ "minSize=$minSize > size=$size"))
}
// numeric fields only
if (!alpha) {
if (minSize == 0) {
errors.append(getString(
- R.string.validate_invalid_field_prop,
- i + 1,
- j + 1,
- resources.getQuantityString(R.plurals.error_prop, 1),
- "minSize=$minSize"))
+ R.string.validate_invalid_field_prop,
+ i + 1,
+ j + 1,
+ resources.getQuantityString(R.plurals.error_prop, 1),
+ "minSize=$minSize"))
}
// min/max
if (min >= 0 || max >= 0) {
if (max < 1) {
errors.append(getString(
- R.string.validate_invalid_field_prop,
- i + 1,
- j + 1,
- resources.getQuantityString(R.plurals.error_prop, 1),
- "max=$max"))
+ R.string.validate_invalid_field_prop,
+ i + 1,
+ j + 1,
+ resources.getQuantityString(R.plurals.error_prop, 1),
+ "max=$max"))
}
if (min < 0) {
errors.append(getString(
- R.string.validate_invalid_field_prop,
- i + 1,
- j + 1,
- resources.getQuantityString(R.plurals.error_prop, 1),
- "min=$min"))
+ R.string.validate_invalid_field_prop,
+ i + 1,
+ j + 1,
+ resources.getQuantityString(R.plurals.error_prop, 1),
+ "min=$min"))
}
if (min > max) {
errors.append(getString(
- R.string.validate_invalid_field_prop,
- i + 1,
- j + 1,
- resources.getQuantityString(R.plurals.error_prop, 2),
- "min=$min > max=$max"))
+ R.string.validate_invalid_field_prop,
+ i + 1,
+ j + 1,
+ resources.getQuantityString(R.plurals.error_prop, 2),
+ "min=$min > max=$max"))
}
}
@@ -557,11 +576,11 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
if (min >= 0 && minSize > 0) {
if (min.toString().length != minSize) {
errors.append(getString(
- R.string.validate_invalid_field_prop,
- i + 1,
- j + 1,
- resources.getQuantityString(R.plurals.error_prop, 2),
- "minSize=$minSize/min=$min"))
+ R.string.validate_invalid_field_prop,
+ i + 1,
+ j + 1,
+ resources.getQuantityString(R.plurals.error_prop, 2),
+ "minSize=$minSize/min=$min"))
}
}
@@ -569,11 +588,11 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
if (size > 0 && max > 0) {
if (max.toString().length != size) {
errors.append(getString(
- R.string.validate_invalid_field_prop,
- i + 1,
- j + 1,
- resources.getQuantityString(R.plurals.error_prop, 2),
- "size=$size/max=$max"))
+ R.string.validate_invalid_field_prop,
+ i + 1,
+ j + 1,
+ resources.getQuantityString(R.plurals.error_prop, 2),
+ "size=$size/max=$max"))
}
}
}
@@ -582,9 +601,9 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
// unused fields
if (!dtmf.contains(Dtmf.DTMF_FIELD.format(j + 1))) {
errors.append(getString(
- R.string.validate_unused_field,
- i + 1,
- j + 1))
+ R.string.validate_unused_field,
+ i + 1,
+ j + 1))
}
}
}
@@ -608,7 +627,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
isValid = false
} else if (second > 0 && first.text.length != second) {
first.error = getString(R.string.error_invalid_size, second,
- resources.getQuantityString(R.plurals.error_digit, second), "")
+ resources.getQuantityString(R.plurals.error_digit, second), "")
isValid = false
}
}
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt
index cac2f7f..248b94e 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt
@@ -32,7 +32,9 @@ import android.text.SpannableString
import android.text.TextUtils
import android.text.style.ImageSpan
import android.util.TypedValue
-import android.view.Gravity.*
+import android.view.Gravity.BOTTOM
+import android.view.Gravity.END
+import android.view.Gravity.START
import android.view.ViewManager
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
@@ -47,16 +49,29 @@ import net.thauvin.erik.android.tesremoteprogrammer.util.Dtmf
import net.thauvin.erik.android.tesremoteprogrammer.util.isDKS
import net.thauvin.erik.android.tesremoteprogrammer.util.isLinear
import net.thauvin.erik.android.tesremoteprogrammer.widget.ScrollAwareFABBehavior
-import org.jetbrains.anko.*
+import org.jetbrains.anko.AnkoLogger
+import org.jetbrains.anko.bottomPadding
import org.jetbrains.anko.custom.ankoView
import org.jetbrains.anko.design.coordinatorLayout
import org.jetbrains.anko.design.floatingActionButton
import org.jetbrains.anko.design.textInputEditText
import org.jetbrains.anko.design.textInputLayout
+import org.jetbrains.anko.dip
+import org.jetbrains.anko.horizontalPadding
+import org.jetbrains.anko.imageResource
+import org.jetbrains.anko.info
+import org.jetbrains.anko.makeCall
+import org.jetbrains.anko.matchParent
+import org.jetbrains.anko.padding
+import org.jetbrains.anko.singleLine
+import org.jetbrains.anko.startActivity
import org.jetbrains.anko.support.v4.nestedScrollView
+import org.jetbrains.anko.topPadding
+import org.jetbrains.anko.verticalLayout
+import org.jetbrains.anko.wrapContent
import permissions.dispatcher.NeedsPermission
import permissions.dispatcher.RuntimePermissions
-import java.util.*
+import java.util.ArrayList
@RuntimePermissions
class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
@@ -100,7 +115,6 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
typeface = Typeface.create(Typeface.DEFAULT, Typeface.ITALIC)
freezesText = true
}.lparams(width = matchParent, height = matchParent)
-
} else {
val it = option.fields.iterator()
while (it.hasNext()) {
@@ -129,11 +143,11 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
inputFilters.add(NumberFilter(field.digits, if (field.alt) params.alt else empty))
if (field.max != -1 && field.min != -1) {
inputFilters.add(
- MinMaxFilter(
- field.min,
- field.max,
- field.size,
- params.type.isDKS() || field.zeros))
+ MinMaxFilter(
+ field.min,
+ field.max,
+ field.size,
+ params.type.isDKS() || field.zeros))
}
}
@@ -203,15 +217,15 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
}
startActivity(
- StepsActivity.EXTRA_STEPS to "$begin${dtmf.replace(MainActivity.QUOTE, empty)}$end".split(MainActivity.PAUSE))
+ StepsActivity.EXTRA_STEPS to "$begin${dtmf.replace(MainActivity.QUOTE, empty)}$end".split(MainActivity.PAUSE))
} else {
Snackbar.make(this@coordinatorLayout,
- getString(R.string.error_invalid_dtmf, dtmf),
- Snackbar.LENGTH_LONG).show()
+ getString(R.string.error_invalid_dtmf, dtmf),
+ Snackbar.LENGTH_LONG).show()
}
} else {
Snackbar.make(this@coordinatorLayout, R.string.error_invalid_field,
- Snackbar.LENGTH_LONG).show()
+ Snackbar.LENGTH_LONG).show()
}
}
}
@@ -234,12 +248,12 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
callWithPermissionCheck(params.phone, dtmf)
} else {
Snackbar.make(this@coordinatorLayout,
- getString(R.string.error_invalid_dtmf, dtmf),
- Snackbar.LENGTH_LONG).show()
+ getString(R.string.error_invalid_dtmf, dtmf),
+ Snackbar.LENGTH_LONG).show()
}
} else {
Snackbar.make(this@coordinatorLayout, R.string.error_invalid_field,
- Snackbar.LENGTH_LONG).show()
+ Snackbar.LENGTH_LONG).show()
}
} else {
val text = SpannableString(getString(R.string.error_invalid_field_for_call) + " ")
@@ -252,9 +266,11 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
}
@SuppressLint("NeedOnRequestPermissionsResult")
- override fun onRequestPermissionsResult(requestCode: Int,
- permissions: Array,
- grantResults: IntArray) {
+ override fun onRequestPermissionsResult(
+ requestCode: Int,
+ permissions: Array,
+ grantResults: IntArray
+ ) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
onRequestPermissionsResult(requestCode, grantResults)
}
@@ -295,16 +311,16 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
} else if (!validateSize(v.length(), if ((!type.isDKS() && !zeros) && min >= 0) min.toString().length else minSize, size)) {
if (minSize > 0) {
v.error = getString(
- R.string.error_invalid_size,
- minSize,
- resources.getQuantityString(R.plurals.error_digit, minSize),
- getString(R.string.error_minimum))
+ R.string.error_invalid_size,
+ minSize,
+ resources.getQuantityString(R.plurals.error_digit, minSize),
+ getString(R.string.error_minimum))
} else {
v.error = getString(
- R.string.error_invalid_size,
- size,
- resources.getQuantityString(R.plurals.error_digit, size),
- empty)
+ R.string.error_invalid_size,
+ size,
+ resources.getQuantityString(R.plurals.error_digit, size),
+ empty)
}
isValid = false
} else if (min >= 0 && max > 0) {
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/StepsActivity.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/StepsActivity.kt
index 4e6d271..ffa0f2b 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/StepsActivity.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/StepsActivity.kt
@@ -22,8 +22,9 @@ import android.app.FragmentManager
import android.os.Bundle
import android.support.v13.app.FragmentStatePagerAdapter
import android.support.v4.app.FragmentActivity
-import kotlinx.android.synthetic.main.activity_steps.*
-import java.util.*
+import kotlinx.android.synthetic.main.activity_steps.indicator
+import kotlinx.android.synthetic.main.activity_steps.pager
+import java.util.ArrayList
class StepsActivity : FragmentActivity() {
companion object {
@@ -39,8 +40,10 @@ class StepsActivity : FragmentActivity() {
indicator.fades = false
}
- private inner class StepsAdapter(fm: FragmentManager,
- steps: ArrayList) : FragmentStatePagerAdapter(fm) {
+ private inner class StepsAdapter(
+ fm: FragmentManager,
+ steps: ArrayList
+ ) : FragmentStatePagerAdapter(fm) {
private val steps = ArrayList(steps)
override fun getItem(position: Int): Fragment = StepsFragment.create(position, steps)
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/StepsFragment.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/StepsFragment.kt
index 23c5418..a237eb1 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/StepsFragment.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/StepsFragment.kt
@@ -22,8 +22,9 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import kotlinx.android.synthetic.main.fragment_steps.*
-import java.util.*
+import kotlinx.android.synthetic.main.fragment_steps.frag_steps
+import kotlinx.android.synthetic.main.fragment_steps.frag_steps_title
+import java.util.ArrayList
class StepsFragment : Fragment() {
private var pageNumber: Int = 0
@@ -51,9 +52,11 @@ class StepsFragment : Fragment() {
pageNumber = arguments.getInt(ARG_PAGE)
}
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?): View? =
- inflater.inflate(R.layout.fragment_steps, container, false) as ViewGroup
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? = inflater.inflate(R.layout.fragment_steps, container, false) as ViewGroup
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/AlphaFilter.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/AlphaFilter.kt
index b342ad5..7b5c85f 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/AlphaFilter.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/AlphaFilter.kt
@@ -22,13 +22,14 @@ import android.text.SpannableStringBuilder
import android.text.Spanned
class AlphaFilter(private val extras: String) : InputFilter {
- override fun filter(source: CharSequence,
- start: Int,
- end: Int,
- dest: Spanned,
- dstart: Int,
- dend: Int): CharSequence? {
-
+ override fun filter(
+ source: CharSequence,
+ start: Int,
+ end: Int,
+ dest: Spanned,
+ dstart: Int,
+ dend: Int
+ ): CharSequence? {
if (source is SpannableStringBuilder) {
for (i in end - 1 downTo start) {
val c = source[i]
@@ -40,9 +41,9 @@ class AlphaFilter(private val extras: String) : InputFilter {
} else {
val sb = StringBuilder()
(start until end)
- .map { source[it] }
- .filter { it.isLetterOrDigit() || extras.contains(it) }
- .forEach { sb.append(it) }
+ .map { source[it] }
+ .filter { it.isLetterOrDigit() || extras.contains(it) }
+ .forEach { sb.append(it) }
return sb.toString()
}
}
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/NumberFilter.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/NumberFilter.kt
index 5c29ea5..afc6a72 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/NumberFilter.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/NumberFilter.kt
@@ -27,13 +27,14 @@ class NumberFilter(allowed: String, alt: String) : InputFilter, AnkoLogger {
private val allowed: String
private val digits = "0123456789"
- override fun filter(source: CharSequence,
- start: Int,
- end: Int,
- dest: Spanned,
- dstart: Int,
- dend: Int): CharSequence? {
-
+ override fun filter(
+ source: CharSequence,
+ start: Int,
+ end: Int,
+ dest: Spanned,
+ dstart: Int,
+ dend: Int
+ ): CharSequence? {
if (source is SpannableStringBuilder) {
for (i in end - 1 downTo start) {
val c = source[i]
@@ -45,9 +46,9 @@ class NumberFilter(allowed: String, alt: String) : InputFilter, AnkoLogger {
} else {
val sb = StringBuilder()
(start until end)
- .map { source[it] }
- .filter { allowed.contains(it) }
- .forEach { sb.append(it.toUpperCase()) }
+ .map { source[it] }
+ .filter { allowed.contains(it) }
+ .forEach { sb.append(it.toUpperCase()) }
return sb.toString()
}
}
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Config.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Config.kt
index 464c42c..bbd1d4a 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Config.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Config.kt
@@ -23,9 +23,11 @@ import java.io.Serializable
data class Config(var params: Params, var opts: List