Added ktlint.
This commit is contained in:
parent
1ea0e84239
commit
4c314683c7
19 changed files with 325 additions and 259 deletions
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<state>
|
||||||
|
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Erik's Code Style" />
|
||||||
|
</state>
|
||||||
|
</component>
|
|
@ -1,3 +1,7 @@
|
||||||
|
plugins {
|
||||||
|
id "org.jlleitschuh.gradle.ktlint" version "6.2.1"
|
||||||
|
}
|
||||||
|
|
||||||
//noinspection GradleCompatible
|
//noinspection GradleCompatible
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
apply plugin: 'kotlin-android'
|
apply plugin: 'kotlin-android'
|
||||||
|
|
|
@ -25,12 +25,10 @@ import org.acra.ACRA
|
||||||
import org.acra.ReportingInteractionMode
|
import org.acra.ReportingInteractionMode
|
||||||
import org.acra.annotation.ReportsCrashes
|
import org.acra.annotation.ReportsCrashes
|
||||||
|
|
||||||
|
|
||||||
@ReportsCrashes(mailTo = "erik@thauvin.net",
|
@ReportsCrashes(mailTo = "erik@thauvin.net",
|
||||||
mode = ReportingInteractionMode.DIALOG,
|
mode = ReportingInteractionMode.DIALOG,
|
||||||
reportSenderFactoryClasses = arrayOf(CrashEmailFactory::class),
|
reportSenderFactoryClasses = arrayOf(CrashEmailFactory::class),
|
||||||
reportDialogClass = CrashReportActivity::class)
|
reportDialogClass = CrashReportActivity::class)
|
||||||
|
|
||||||
open class App : Application() {
|
open class App : Application() {
|
||||||
override fun attachBaseContext(base: Context) {
|
override fun attachBaseContext(base: Context) {
|
||||||
super.attachBaseContext(base)
|
super.attachBaseContext(base)
|
||||||
|
|
|
@ -27,7 +27,11 @@ import android.graphics.Typeface
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v7.app.AppCompatActivity
|
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.util.TypedValue
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.MenuItem
|
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.Dtmf
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.util.isDKS
|
import net.thauvin.erik.android.tesremoteprogrammer.util.isDKS
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.util.isDigits
|
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.textInputEditText
|
||||||
import org.jetbrains.anko.design.textInputLayout
|
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.NeedsPermission
|
||||||
import permissions.dispatcher.RuntimePermissions
|
import permissions.dispatcher.RuntimePermissions
|
||||||
import java.io.FileNotFoundException
|
import java.io.FileNotFoundException
|
||||||
|
@ -55,7 +72,9 @@ import java.io.InputStreamReader
|
||||||
import java.io.ObjectInputStream
|
import java.io.ObjectInputStream
|
||||||
import java.io.ObjectOutputStream
|
import java.io.ObjectOutputStream
|
||||||
import java.text.DateFormat
|
import java.text.DateFormat
|
||||||
import java.util.*
|
import java.util.ArrayList
|
||||||
|
import java.util.Date
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
@RuntimePermissions
|
@RuntimePermissions
|
||||||
class MainActivity : AppCompatActivity(), AnkoLogger {
|
class MainActivity : AppCompatActivity(), AnkoLogger {
|
||||||
|
@ -340,16 +359,17 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
|
||||||
}
|
}
|
||||||
|
|
||||||
alert.show()
|
alert.show()
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item)
|
return super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NeedOnRequestPermissionsResult")
|
@SuppressLint("NeedOnRequestPermissionsResult")
|
||||||
override fun onRequestPermissionsResult(requestCode: Int,
|
override fun onRequestPermissionsResult(
|
||||||
|
requestCode: Int,
|
||||||
permissions: Array<out String>,
|
permissions: Array<out String>,
|
||||||
grantResults: IntArray) {
|
grantResults: IntArray
|
||||||
|
) {
|
||||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||||
onRequestPermissionsResult(requestCode, grantResults)
|
onRequestPermissionsResult(requestCode, grantResults)
|
||||||
}
|
}
|
||||||
|
@ -397,7 +417,6 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
|
||||||
errors.append(getString(R.string.validate_missing_param, "type"))
|
errors.append(getString(R.string.validate_missing_param, "type"))
|
||||||
} else if (!Dtmf.isValidType(type)) {
|
} else if (!Dtmf.isValidType(type)) {
|
||||||
errors.append(getString(R.string.validate_invalid_param, "type"))
|
errors.append(getString(R.string.validate_invalid_param, "type"))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// size
|
// size
|
||||||
|
|
|
@ -32,7 +32,9 @@ import android.text.SpannableString
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.text.style.ImageSpan
|
import android.text.style.ImageSpan
|
||||||
import android.util.TypedValue
|
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.ViewManager
|
||||||
import android.view.inputmethod.EditorInfo
|
import android.view.inputmethod.EditorInfo
|
||||||
import android.view.inputmethod.InputMethodManager
|
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.isDKS
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.util.isLinear
|
import net.thauvin.erik.android.tesremoteprogrammer.util.isLinear
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.widget.ScrollAwareFABBehavior
|
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.custom.ankoView
|
||||||
import org.jetbrains.anko.design.coordinatorLayout
|
import org.jetbrains.anko.design.coordinatorLayout
|
||||||
import org.jetbrains.anko.design.floatingActionButton
|
import org.jetbrains.anko.design.floatingActionButton
|
||||||
import org.jetbrains.anko.design.textInputEditText
|
import org.jetbrains.anko.design.textInputEditText
|
||||||
import org.jetbrains.anko.design.textInputLayout
|
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.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.NeedsPermission
|
||||||
import permissions.dispatcher.RuntimePermissions
|
import permissions.dispatcher.RuntimePermissions
|
||||||
import java.util.*
|
import java.util.ArrayList
|
||||||
|
|
||||||
@RuntimePermissions
|
@RuntimePermissions
|
||||||
class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
||||||
|
@ -100,7 +115,6 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
||||||
typeface = Typeface.create(Typeface.DEFAULT, Typeface.ITALIC)
|
typeface = Typeface.create(Typeface.DEFAULT, Typeface.ITALIC)
|
||||||
freezesText = true
|
freezesText = true
|
||||||
}.lparams(width = matchParent, height = matchParent)
|
}.lparams(width = matchParent, height = matchParent)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
val it = option.fields.iterator()
|
val it = option.fields.iterator()
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
|
@ -252,9 +266,11 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NeedOnRequestPermissionsResult")
|
@SuppressLint("NeedOnRequestPermissionsResult")
|
||||||
override fun onRequestPermissionsResult(requestCode: Int,
|
override fun onRequestPermissionsResult(
|
||||||
|
requestCode: Int,
|
||||||
permissions: Array<out String>,
|
permissions: Array<out String>,
|
||||||
grantResults: IntArray) {
|
grantResults: IntArray
|
||||||
|
) {
|
||||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||||
onRequestPermissionsResult(requestCode, grantResults)
|
onRequestPermissionsResult(requestCode, grantResults)
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,8 +22,9 @@ import android.app.FragmentManager
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v13.app.FragmentStatePagerAdapter
|
import android.support.v13.app.FragmentStatePagerAdapter
|
||||||
import android.support.v4.app.FragmentActivity
|
import android.support.v4.app.FragmentActivity
|
||||||
import kotlinx.android.synthetic.main.activity_steps.*
|
import kotlinx.android.synthetic.main.activity_steps.indicator
|
||||||
import java.util.*
|
import kotlinx.android.synthetic.main.activity_steps.pager
|
||||||
|
import java.util.ArrayList
|
||||||
|
|
||||||
class StepsActivity : FragmentActivity() {
|
class StepsActivity : FragmentActivity() {
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -39,8 +40,10 @@ class StepsActivity : FragmentActivity() {
|
||||||
indicator.fades = false
|
indicator.fades = false
|
||||||
}
|
}
|
||||||
|
|
||||||
private inner class StepsAdapter(fm: FragmentManager,
|
private inner class StepsAdapter(
|
||||||
steps: ArrayList<String>) : FragmentStatePagerAdapter(fm) {
|
fm: FragmentManager,
|
||||||
|
steps: ArrayList<String>
|
||||||
|
) : FragmentStatePagerAdapter(fm) {
|
||||||
private val steps = ArrayList<String>(steps)
|
private val steps = ArrayList<String>(steps)
|
||||||
|
|
||||||
override fun getItem(position: Int): Fragment = StepsFragment.create(position, steps)
|
override fun getItem(position: Int): Fragment = StepsFragment.create(position, steps)
|
||||||
|
|
|
@ -22,8 +22,9 @@ import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import kotlinx.android.synthetic.main.fragment_steps.*
|
import kotlinx.android.synthetic.main.fragment_steps.frag_steps
|
||||||
import java.util.*
|
import kotlinx.android.synthetic.main.fragment_steps.frag_steps_title
|
||||||
|
import java.util.ArrayList
|
||||||
|
|
||||||
class StepsFragment : Fragment() {
|
class StepsFragment : Fragment() {
|
||||||
private var pageNumber: Int = 0
|
private var pageNumber: Int = 0
|
||||||
|
@ -51,9 +52,11 @@ class StepsFragment : Fragment() {
|
||||||
pageNumber = arguments.getInt(ARG_PAGE)
|
pageNumber = arguments.getInt(ARG_PAGE)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
|
override fun onCreateView(
|
||||||
savedInstanceState: Bundle?): View? =
|
inflater: LayoutInflater,
|
||||||
inflater.inflate(R.layout.fragment_steps, container, false) as ViewGroup
|
container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?
|
||||||
|
): View? = inflater.inflate(R.layout.fragment_steps, container, false) as ViewGroup
|
||||||
|
|
||||||
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
|
@ -22,13 +22,14 @@ import android.text.SpannableStringBuilder
|
||||||
import android.text.Spanned
|
import android.text.Spanned
|
||||||
|
|
||||||
class AlphaFilter(private val extras: String) : InputFilter {
|
class AlphaFilter(private val extras: String) : InputFilter {
|
||||||
override fun filter(source: CharSequence,
|
override fun filter(
|
||||||
|
source: CharSequence,
|
||||||
start: Int,
|
start: Int,
|
||||||
end: Int,
|
end: Int,
|
||||||
dest: Spanned,
|
dest: Spanned,
|
||||||
dstart: Int,
|
dstart: Int,
|
||||||
dend: Int): CharSequence? {
|
dend: Int
|
||||||
|
): CharSequence? {
|
||||||
if (source is SpannableStringBuilder) {
|
if (source is SpannableStringBuilder) {
|
||||||
for (i in end - 1 downTo start) {
|
for (i in end - 1 downTo start) {
|
||||||
val c = source[i]
|
val c = source[i]
|
||||||
|
|
|
@ -27,13 +27,14 @@ class NumberFilter(allowed: String, alt: String) : InputFilter, AnkoLogger {
|
||||||
private val allowed: String
|
private val allowed: String
|
||||||
private val digits = "0123456789"
|
private val digits = "0123456789"
|
||||||
|
|
||||||
override fun filter(source: CharSequence,
|
override fun filter(
|
||||||
|
source: CharSequence,
|
||||||
start: Int,
|
start: Int,
|
||||||
end: Int,
|
end: Int,
|
||||||
dest: Spanned,
|
dest: Spanned,
|
||||||
dstart: Int,
|
dstart: Int,
|
||||||
dend: Int): CharSequence? {
|
dend: Int
|
||||||
|
): CharSequence? {
|
||||||
if (source is SpannableStringBuilder) {
|
if (source is SpannableStringBuilder) {
|
||||||
for (i in end - 1 downTo start) {
|
for (i in end - 1 downTo start) {
|
||||||
val c = source[i]
|
val c = source[i]
|
||||||
|
|
|
@ -23,9 +23,11 @@ import java.io.Serializable
|
||||||
|
|
||||||
data class Config(var params: Params, var opts: List<Option>) : Parcelable, Serializable, Comparable<Config> {
|
data class Config(var params: Params, var opts: List<Option>) : Parcelable, Serializable, Comparable<Config> {
|
||||||
companion object {
|
companion object {
|
||||||
private @JvmStatic val serialVersionUID: Long = 1
|
@JvmStatic
|
||||||
|
private val serialVersionUID: Long = 1
|
||||||
|
|
||||||
@JvmField val CREATOR: Parcelable.Creator<Config> = object : Parcelable.Creator<Config> {
|
@JvmField
|
||||||
|
val CREATOR: Parcelable.Creator<Config> = object : Parcelable.Creator<Config> {
|
||||||
override fun createFromParcel(source: Parcel): Config = Config(source)
|
override fun createFromParcel(source: Parcel): Config = Config(source)
|
||||||
override fun newArray(size: Int): Array<Config?> = arrayOfNulls(size)
|
override fun newArray(size: Int): Array<Config?> = arrayOfNulls(size)
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,11 +18,12 @@
|
||||||
package net.thauvin.erik.android.tesremoteprogrammer.models
|
package net.thauvin.erik.android.tesremoteprogrammer.models
|
||||||
|
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
import java.util.*
|
import java.util.HashMap
|
||||||
|
|
||||||
class Configurations : Serializable {
|
class Configurations : Serializable {
|
||||||
companion object {
|
companion object {
|
||||||
private @JvmStatic val serialVersionUID: Long = 1
|
@JvmStatic
|
||||||
|
private val serialVersionUID: Long = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
val configs = HashMap<String, Config>()
|
val configs = HashMap<String, Config>()
|
||||||
|
|
|
@ -21,7 +21,8 @@ import android.os.Parcel
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
|
|
||||||
data class Field(var hint: String,
|
data class Field(
|
||||||
|
var hint: String,
|
||||||
var digits: String,
|
var digits: String,
|
||||||
var alpha: Boolean,
|
var alpha: Boolean,
|
||||||
val alt: Boolean,
|
val alt: Boolean,
|
||||||
|
@ -29,12 +30,14 @@ data class Field(var hint: String,
|
||||||
var minSize: Int,
|
var minSize: Int,
|
||||||
var size: Int,
|
var size: Int,
|
||||||
var min: Int,
|
var min: Int,
|
||||||
var max: Int) : Parcelable, Serializable {
|
var max: Int
|
||||||
|
) : Parcelable, Serializable {
|
||||||
companion object {
|
companion object {
|
||||||
private @JvmStatic val serialVersionUID: Long = 1
|
@JvmStatic
|
||||||
|
private val serialVersionUID: Long = 1
|
||||||
|
|
||||||
@JvmField val CREATOR: Parcelable.Creator<Field> = object : Parcelable.Creator<Field> {
|
@JvmField
|
||||||
|
val CREATOR: Parcelable.Creator<Field> = object : Parcelable.Creator<Field> {
|
||||||
override fun createFromParcel(source: Parcel): Field = Field(source)
|
override fun createFromParcel(source: Parcel): Field = Field(source)
|
||||||
override fun newArray(size: Int): Array<Field?> = arrayOfNulls(size)
|
override fun newArray(size: Int): Array<Field?> = arrayOfNulls(size)
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,16 +21,19 @@ import android.os.Parcel
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
|
|
||||||
data class Option(var title: String,
|
data class Option(
|
||||||
|
var title: String,
|
||||||
var fields: List<Field?>,
|
var fields: List<Field?>,
|
||||||
var nodial: Boolean,
|
var nodial: Boolean,
|
||||||
var nosteps: Boolean,
|
var nosteps: Boolean,
|
||||||
var dtmf: String) : Parcelable, Serializable, Comparable<Option> {
|
var dtmf: String
|
||||||
|
) : Parcelable, Serializable, Comparable<Option> {
|
||||||
companion object {
|
companion object {
|
||||||
private @JvmStatic val serialVersionUID: Long = 1
|
@JvmStatic
|
||||||
|
private val serialVersionUID: Long = 1
|
||||||
|
|
||||||
@JvmField val CREATOR: Parcelable.Creator<Option> = object : Parcelable.Creator<Option> {
|
@JvmField
|
||||||
|
val CREATOR: Parcelable.Creator<Option> = object : Parcelable.Creator<Option> {
|
||||||
override fun createFromParcel(source: Parcel): Option = Option(source)
|
override fun createFromParcel(source: Parcel): Option = Option(source)
|
||||||
override fun newArray(size: Int): Array<Option?> = arrayOfNulls(size)
|
override fun newArray(size: Int): Array<Option?> = arrayOfNulls(size)
|
||||||
}
|
}
|
||||||
|
@ -56,5 +59,4 @@ data class Option(var title: String,
|
||||||
dest?.writeInt((if (nosteps) 1 else 0))
|
dest?.writeInt((if (nosteps) 1 else 0))
|
||||||
dest?.writeString(dtmf)
|
dest?.writeString(dtmf)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -21,7 +21,8 @@ import android.os.Parcel
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
|
|
||||||
data class Params(var name: String,
|
data class Params(
|
||||||
|
var name: String,
|
||||||
var type: String,
|
var type: String,
|
||||||
var phone: String,
|
var phone: String,
|
||||||
var master: String,
|
var master: String,
|
||||||
|
@ -29,12 +30,14 @@ data class Params(var name: String,
|
||||||
var ack: String,
|
var ack: String,
|
||||||
var alt: String,
|
var alt: String,
|
||||||
var begin: String,
|
var begin: String,
|
||||||
var end: String) : Parcelable, Serializable {
|
var end: String
|
||||||
|
) : Parcelable, Serializable {
|
||||||
companion object {
|
companion object {
|
||||||
private @JvmStatic val serialVersionUID: Long = 1
|
@JvmStatic
|
||||||
|
private val serialVersionUID: Long = 1
|
||||||
|
|
||||||
@JvmField val CREATOR: Parcelable.Creator<Params> = object : Parcelable.Creator<Params> {
|
@JvmField
|
||||||
|
val CREATOR: Parcelable.Creator<Params> = object : Parcelable.Creator<Params> {
|
||||||
override fun createFromParcel(source: Parcel): Params = Params(source)
|
override fun createFromParcel(source: Parcel): Params = Params(source)
|
||||||
override fun newArray(size: Int): Array<Params?> = arrayOfNulls(size)
|
override fun newArray(size: Int): Array<Params?> = arrayOfNulls(size)
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ package net.thauvin.erik.android.tesremoteprogrammer.util
|
||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.MainActivity
|
import net.thauvin.erik.android.tesremoteprogrammer.MainActivity
|
||||||
import net.thauvin.erik.android.tesremoteprogrammer.models.Option
|
import net.thauvin.erik.android.tesremoteprogrammer.models.Option
|
||||||
import java.util.*
|
import java.util.ArrayList
|
||||||
|
|
||||||
class Dtmf {
|
class Dtmf {
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -89,7 +89,6 @@ class Dtmf {
|
||||||
|
|
||||||
fun isValidType(type: String): Boolean = type.equals(DKS, true) || type.equals(LINEAR, true)
|
fun isValidType(type: String): Boolean = type.equals(DKS, true) || type.equals(LINEAR, true)
|
||||||
|
|
||||||
|
|
||||||
private fun linearAlphaToDigits(text: String): String {
|
private fun linearAlphaToDigits(text: String): String {
|
||||||
val result = StringBuffer()
|
val result = StringBuffer()
|
||||||
|
|
||||||
|
@ -150,11 +149,13 @@ class Dtmf {
|
||||||
return result.toString()
|
return result.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun build(type: String,
|
fun build(
|
||||||
|
type: String,
|
||||||
master: String,
|
master: String,
|
||||||
ack: String,
|
ack: String,
|
||||||
option: Option,
|
option: Option,
|
||||||
fields: ArrayList<EditText>): String {
|
fields: ArrayList<EditText>
|
||||||
|
): String {
|
||||||
val replace = arrayListOf(Pair(DTMF_MASTER, master))
|
val replace = arrayListOf(Pair(DTMF_MASTER, master))
|
||||||
|
|
||||||
fields.forEachIndexed { i, field ->
|
fields.forEachIndexed { i, field ->
|
||||||
|
|
|
@ -23,24 +23,28 @@ import android.support.v4.view.ViewCompat
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
|
||||||
class ScrollAwareFABBehavior : FloatingActionButton.Behavior() {
|
class ScrollAwareFABBehavior : FloatingActionButton.Behavior() {
|
||||||
override fun onStartNestedScroll(coordinatorLayout: CoordinatorLayout,
|
override fun onStartNestedScroll(
|
||||||
|
coordinatorLayout: CoordinatorLayout,
|
||||||
child: FloatingActionButton,
|
child: FloatingActionButton,
|
||||||
directTargetChild: View,
|
directTargetChild: View,
|
||||||
target: View,
|
target: View,
|
||||||
nestedScrollAxes: Int,
|
nestedScrollAxes: Int,
|
||||||
type: Int): Boolean =
|
type: Int
|
||||||
|
): Boolean =
|
||||||
nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL ||
|
nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL ||
|
||||||
super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target,
|
super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target,
|
||||||
nestedScrollAxes, type)
|
nestedScrollAxes, type)
|
||||||
|
|
||||||
override fun onNestedScroll(coordinatorLayout: CoordinatorLayout,
|
override fun onNestedScroll(
|
||||||
|
coordinatorLayout: CoordinatorLayout,
|
||||||
child: FloatingActionButton,
|
child: FloatingActionButton,
|
||||||
target: View,
|
target: View,
|
||||||
dxConsumed: Int,
|
dxConsumed: Int,
|
||||||
dyConsumed: Int,
|
dyConsumed: Int,
|
||||||
dxUnconsumed: Int,
|
dxUnconsumed: Int,
|
||||||
dyUnconsumed: Int,
|
dyUnconsumed: Int,
|
||||||
type: Int) {
|
type: Int
|
||||||
|
) {
|
||||||
super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed,
|
super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed,
|
||||||
dxUnconsumed, dyUnconsumed, type)
|
dxUnconsumed, dyUnconsumed, type)
|
||||||
if (dyConsumed > 0 && child.visibility == View.VISIBLE) {
|
if (dyConsumed > 0 && child.visibility == View.VISIBLE) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue