Kotlin 1.6 optimization.

This commit is contained in:
Erik C. Thauvin 2017-02-09 17:08:14 -08:00
parent 1baeb4902c
commit 16a219be2f
11 changed files with 49 additions and 69 deletions

2
.idea/misc.xml generated
View file

@ -37,7 +37,7 @@
<ConfirmationsSetting value="0" id="Add" /> <ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" /> <ConfirmationsSetting value="0" id="Remove" />
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

View file

@ -3,13 +3,13 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android-extensions'
android { android {
compileSdkVersion 24 compileSdkVersion 25
buildToolsVersion "24.0.2" buildToolsVersion "25.0.1"
defaultConfig { defaultConfig {
applicationId "net.thauvin.erik.android.tesremoteprogrammer" applicationId "net.thauvin.erik.android.tesremoteprogrammer"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 24 targetSdkVersion 25
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
} }
@ -29,28 +29,29 @@ dependencies {
testCompile 'junit:junit:4.12' testCompile 'junit:junit:4.12'
compile 'com.android.support:support-v13:24.1.1' compile 'com.android.support:support-v13:25.0.1'
compile 'com.android.support:appcompat-v7:24.1.1' compile 'com.android.support:appcompat-v7:25.0.1'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile 'org.jetbrains.anko:anko-sdk23:0.9' compile 'org.jetbrains.anko:anko-sdk23:0.9.1'
compile 'org.jetbrains.anko:anko-appcompat-v7:0.9' compile 'org.jetbrains.anko:anko-appcompat-v7:0.9.1'
compile 'org.jetbrains.anko:anko-support-v4:0.9' compile 'org.jetbrains.anko:anko-support-v4:0.9.1'
compile 'org.jetbrains.anko:anko-design:0.9' compile 'org.jetbrains.anko:anko-design:0.9.1'
compile 'com.android.support:design:24.1.1' compile 'com.android.support:design:25.0.1'
compile group: 'com.google.code.gson', name: 'gson', version: '2.7' compile group: 'com.google.code.gson', name: 'gson', version: '2.7'
// https://github.com/JakeWharton/ViewPagerIndicator // https://github.com/JakeWharton/ViewPagerIndicator
compile 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar' compile 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
// https://github.com/AndroidDeveloperLB/AutoFitTextView // https://github.com/AndroidDeveloperLB/AutoFitTextView
compile 'com.github.AndroidDeveloperLB:AutoFitTextView:3' compile 'com.github.AndroidDeveloperLB:AutoFitTextView:4'
// https://github.com/hotchemi/PermissionsDispatcher // https://github.com/hotchemi/PermissionsDispatcher
compile 'com.github.hotchemi:permissionsdispatcher:2.1.3' compile 'com.github.hotchemi:permissionsdispatcher:2.2.0'
kapt 'com.github.hotchemi:permissionsdispatcher-processor:2.1.3' kapt 'com.github.hotchemi:permissionsdispatcher-processor:2.2.0'
} }
repositories { repositories {
maven { url 'https://dl.bintray.com/jetbrains/anko/'}
mavenCentral() mavenCentral()
maven { url "https://jitpack.io" } maven { url "https://jitpack.io" }
} }

View file

@ -138,7 +138,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
recreate() recreate()
} }
if (errors.length > 0) { if (errors.isNotEmpty()) {
alert { alert {
title(R.string.alert_config_error) title(R.string.alert_config_error)
message(fromHtml("$errors")) message(fromHtml("$errors"))
@ -392,7 +392,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
} }
// options // options
if (opts.size == 0) { if (opts.isEmpty()) {
errors.append(getString(R.string.validate_missing_opts)) errors.append(getString(R.string.validate_missing_opts))
} else { } else {
opts.forEachIndexed { i, option -> opts.forEachIndexed { i, option ->
@ -424,7 +424,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
R.string.validate_missing_opts_prop, R.string.validate_missing_opts_prop,
i + 1, i + 1,
"dtmf")) "dtmf"))
} else if (fields.size == 0) { // fields missing } else if (fields.isEmpty()) { // fields missing
errors.append(getString( errors.append(getString(
R.string.validate_missing_opts_prop, R.string.validate_missing_opts_prop,
i + 1, i + 1,

View file

@ -21,13 +21,7 @@ import android.text.InputFilter
import android.text.SpannableStringBuilder import android.text.SpannableStringBuilder
import android.text.Spanned import android.text.Spanned
class AlphaFilter : InputFilter { class AlphaFilter(private val extras: String) : InputFilter {
private val extras: String
constructor(extras: String) {
this.extras = extras
}
override fun filter(source: CharSequence, override fun filter(source: CharSequence,
start: Int, start: Int,
end: Int, end: Int,
@ -45,12 +39,10 @@ class AlphaFilter : InputFilter {
return source return source
} else { } else {
val sb = StringBuilder() val sb = StringBuilder()
for (i in start..end - 1) { (start..end - 1)
val c = source[i] .map { source[it] }
if (c.isLetterOrDigit() || extras.contains(c)) { .filter { it.isLetterOrDigit() || extras.contains(it) }
sb.append(c) .forEach { sb.append(it) }
}
}
return sb.toString() return sb.toString()
} }
} }

View file

@ -21,18 +21,7 @@ import android.text.InputFilter
import android.text.Spanned import android.text.Spanned
import org.jetbrains.anko.AnkoLogger import org.jetbrains.anko.AnkoLogger
class MinMaxFilter : InputFilter, AnkoLogger { class MinMaxFilter(private val min: Int, private val max: Int, private val size: Int, private val zeros: Boolean) : InputFilter, AnkoLogger {
private val min: Int
private val max: Int
private val size: Int
private val zeros: Boolean
constructor(min: Int, max: Int, size: Int, zeros: Boolean) {
this.min = min
this.max = max
this.size = size
this.zeros = zeros
}
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? {
val input = (dest.toString() + source.toString()) val input = (dest.toString() + source.toString())

View file

@ -23,18 +23,10 @@ import android.text.Spanned
import net.thauvin.erik.android.tesremoteprogrammer.util.isDigits import net.thauvin.erik.android.tesremoteprogrammer.util.isDigits
import org.jetbrains.anko.AnkoLogger import org.jetbrains.anko.AnkoLogger
class NumberFilter : InputFilter, AnkoLogger { class NumberFilter(allowed: String, alt: String) : InputFilter, AnkoLogger {
private val allowed: String private val allowed: String
private val digits = "0123456789" private val digits = "0123456789"
constructor(allowed: String, alt: String) {
this.allowed = if (allowed.isDigits()) {
"$allowed$alt"
} else {
"$digits$alt"
}
}
override fun filter(source: CharSequence, override fun filter(source: CharSequence,
start: Int, start: Int,
end: Int, end: Int,
@ -52,13 +44,19 @@ class NumberFilter : InputFilter, AnkoLogger {
return source return source
} else { } else {
val sb = StringBuilder() val sb = StringBuilder()
for (i in start..end - 1) { (start..end - 1)
val c = source[i] .map { source[it] }
if (allowed.contains(c)) { .filter { allowed.contains(it) }
sb.append(c.toUpperCase()) .forEach { sb.append(it.toUpperCase()) }
}
}
return sb.toString() return sb.toString()
} }
} }
init {
this.allowed = if (allowed.isDigits()) {
"$allowed$alt"
} else {
"$digits$alt"
}
}
} }

View file

@ -45,9 +45,9 @@ data class Field(var hint: String,
constructor(source: Parcel) : this( constructor(source: Parcel) : this(
source.readString(), source.readString(),
source.readString(), source.readString(),
1.equals(source.readInt()), 1 == source.readInt(),
1.equals(source.readInt()), 1 == source.readInt(),
1.equals(source.readInt()), 1 == source.readInt(),
source.readInt(), source.readInt(),
source.readInt(), source.readInt(),
source.readInt(), source.readInt(),

View file

@ -41,8 +41,8 @@ data class Option(var title: String,
constructor(source: Parcel) : this( constructor(source: Parcel) : this(
source.readString(), source.readString(),
source.createTypedArrayList(Field.CREATOR), source.createTypedArrayList(Field.CREATOR),
1.equals(source.readInt()), 1 == source.readInt(),
1.equals(source.readInt()), 1 == source.readInt(),
source.readString()) source.readString())
override fun compareTo(other: Option): Int { override fun compareTo(other: Option): Int {

View file

@ -157,7 +157,7 @@ class Dtmf {
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 ->
replace.add(Pair(DTMF_FIELD.format(i + 1), replace.add(Pair(DTMF_FIELD.format(i + 1),
@ -175,7 +175,7 @@ class Dtmf {
fun validate(dtmf: String, extra: String): Boolean { fun validate(dtmf: String, extra: String): Boolean {
dtmf.forEach { dtmf.forEach {
if (!(it.isDigit() || it.equals(',') || extra.contains(it))) { if (!(it.isDigit() || it == ',' || extra.contains(it))) {
return false return false
} }
} }
@ -183,7 +183,7 @@ class Dtmf {
} }
fun mock(option: Option, blank: String): String { fun mock(option: Option, blank: String): String {
val replace = arrayListOf(Pair("$DTMF_MASTER", blank)) val replace = arrayListOf(Pair(DTMF_MASTER, blank))
option.fields.forEachIndexed { i, field -> option.fields.forEachIndexed { i, field ->
replace.add(Pair(DTMF_FIELD.format(i + 1), blank)) replace.add(Pair(DTMF_FIELD.format(i + 1), blank))

View file

@ -1,12 +1,12 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.0.4' ext.kotlin_version = '1.0.6'
repositories { repositories {
jcenter() jcenter()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.android.tools.build:gradle:2.3.0-beta4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong

View file

@ -1,6 +1,6 @@
#Mon Sep 19 21:43:42 PDT 2016 #Thu Feb 09 15:12:18 PST 2017
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip