diff --git a/.idea/misc.xml b/.idea/misc.xml
index 95f0f03..1caa136 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 4f349b8..17b112c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -3,13 +3,13 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
- compileSdkVersion 24
- buildToolsVersion "24.0.2"
+ compileSdkVersion 25
+ buildToolsVersion "25.0.1"
defaultConfig {
applicationId "net.thauvin.erik.android.tesremoteprogrammer"
minSdkVersion 21
- targetSdkVersion 24
+ targetSdkVersion 25
versionCode 1
versionName "1.0"
}
@@ -29,28 +29,29 @@ dependencies {
testCompile 'junit:junit:4.12'
- compile 'com.android.support:support-v13:24.1.1'
- compile 'com.android.support:appcompat-v7:24.1.1'
+ compile 'com.android.support:support-v13:25.0.1'
+ compile 'com.android.support:appcompat-v7:25.0.1'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
- compile 'org.jetbrains.anko:anko-sdk23:0.9'
- compile 'org.jetbrains.anko:anko-appcompat-v7:0.9'
- compile 'org.jetbrains.anko:anko-support-v4:0.9'
- compile 'org.jetbrains.anko:anko-design:0.9'
- compile 'com.android.support:design:24.1.1'
+ compile 'org.jetbrains.anko:anko-sdk23:0.9.1'
+ compile 'org.jetbrains.anko:anko-appcompat-v7:0.9.1'
+ compile 'org.jetbrains.anko:anko-support-v4:0.9.1'
+ compile 'org.jetbrains.anko:anko-design:0.9.1'
+ compile 'com.android.support:design:25.0.1'
compile group: 'com.google.code.gson', name: 'gson', version: '2.7'
// https://github.com/JakeWharton/ViewPagerIndicator
compile 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
// https://github.com/AndroidDeveloperLB/AutoFitTextView
- compile 'com.github.AndroidDeveloperLB:AutoFitTextView:3'
+ compile 'com.github.AndroidDeveloperLB:AutoFitTextView:4'
// https://github.com/hotchemi/PermissionsDispatcher
- compile 'com.github.hotchemi:permissionsdispatcher:2.1.3'
- kapt 'com.github.hotchemi:permissionsdispatcher-processor:2.1.3'
+ compile 'com.github.hotchemi:permissionsdispatcher:2.2.0'
+ kapt 'com.github.hotchemi:permissionsdispatcher-processor:2.2.0'
}
repositories {
+ maven { url 'https://dl.bintray.com/jetbrains/anko/'}
mavenCentral()
maven { url "https://jitpack.io" }
}
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 9163e7a..d778a92 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
@@ -138,7 +138,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
recreate()
}
- if (errors.length > 0) {
+ if (errors.isNotEmpty()) {
alert {
title(R.string.alert_config_error)
message(fromHtml("$errors"))
@@ -392,7 +392,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
}
// options
- if (opts.size == 0) {
+ if (opts.isEmpty()) {
errors.append(getString(R.string.validate_missing_opts))
} else {
opts.forEachIndexed { i, option ->
@@ -424,7 +424,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
R.string.validate_missing_opts_prop,
i + 1,
"dtmf"))
- } else if (fields.size == 0) { // fields missing
+ } else if (fields.isEmpty()) { // fields missing
errors.append(getString(
R.string.validate_missing_opts_prop,
i + 1,
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 ac330c7..11dc26f 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
@@ -21,13 +21,7 @@ import android.text.InputFilter
import android.text.SpannableStringBuilder
import android.text.Spanned
-class AlphaFilter : InputFilter {
- private val extras: String
-
- constructor(extras: String) {
- this.extras = extras
- }
-
+class AlphaFilter(private val extras: String) : InputFilter {
override fun filter(source: CharSequence,
start: Int,
end: Int,
@@ -45,12 +39,10 @@ class AlphaFilter : InputFilter {
return source
} else {
val sb = StringBuilder()
- for (i in start..end - 1) {
- val c = source[i]
- if (c.isLetterOrDigit() || extras.contains(c)) {
- sb.append(c)
- }
- }
+ (start..end - 1)
+ .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/MinMaxFilter.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/MinMaxFilter.kt
index 8e05b0d..a712f30 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/MinMaxFilter.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/filters/MinMaxFilter.kt
@@ -21,18 +21,7 @@ import android.text.InputFilter
import android.text.Spanned
import org.jetbrains.anko.AnkoLogger
-class MinMaxFilter : 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
- }
+class MinMaxFilter(private val min: Int, private val max: Int, private val size: Int, private val zeros: Boolean) : InputFilter, AnkoLogger {
override fun filter(source: CharSequence, start: Int, end: Int, dest: Spanned, dstart: Int, dend: Int): CharSequence? {
val input = (dest.toString() + source.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 0beb552..2be2f24 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
@@ -23,18 +23,10 @@ import android.text.Spanned
import net.thauvin.erik.android.tesremoteprogrammer.util.isDigits
import org.jetbrains.anko.AnkoLogger
-class NumberFilter : InputFilter, AnkoLogger {
+class NumberFilter(allowed: String, alt: String) : InputFilter, AnkoLogger {
private val allowed: String
private val digits = "0123456789"
- constructor(allowed: String, alt: String) {
- this.allowed = if (allowed.isDigits()) {
- "$allowed$alt"
- } else {
- "$digits$alt"
- }
- }
-
override fun filter(source: CharSequence,
start: Int,
end: Int,
@@ -52,13 +44,19 @@ class NumberFilter : InputFilter, AnkoLogger {
return source
} else {
val sb = StringBuilder()
- for (i in start..end - 1) {
- val c = source[i]
- if (allowed.contains(c)) {
- sb.append(c.toUpperCase())
- }
- }
+ (start..end - 1)
+ .map { source[it] }
+ .filter { allowed.contains(it) }
+ .forEach { sb.append(it.toUpperCase()) }
return sb.toString()
}
}
+
+ init {
+ this.allowed = if (allowed.isDigits()) {
+ "$allowed$alt"
+ } else {
+ "$digits$alt"
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Field.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Field.kt
index fbf9c14..3cfffa0 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Field.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Field.kt
@@ -45,9 +45,9 @@ data class Field(var hint: String,
constructor(source: Parcel) : this(
source.readString(),
source.readString(),
- 1.equals(source.readInt()),
- 1.equals(source.readInt()),
- 1.equals(source.readInt()),
+ 1 == source.readInt(),
+ 1 == source.readInt(),
+ 1 == source.readInt(),
source.readInt(),
source.readInt(),
source.readInt(),
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Option.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Option.kt
index 6665ad1..254680d 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Option.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/models/Option.kt
@@ -41,8 +41,8 @@ data class Option(var title: String,
constructor(source: Parcel) : this(
source.readString(),
source.createTypedArrayList(Field.CREATOR),
- 1.equals(source.readInt()),
- 1.equals(source.readInt()),
+ 1 == source.readInt(),
+ 1 == source.readInt(),
source.readString())
override fun compareTo(other: Option): Int {
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/util/Dtmf.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/util/Dtmf.kt
index 538e384..70f188e 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/util/Dtmf.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/util/Dtmf.kt
@@ -157,7 +157,7 @@ class Dtmf {
ack: String,
option: Option,
fields: ArrayList): String {
- val replace = arrayListOf(Pair("$DTMF_MASTER", master))
+ val replace = arrayListOf(Pair(DTMF_MASTER, master))
fields.forEachIndexed { i, field ->
replace.add(Pair(DTMF_FIELD.format(i + 1),
@@ -175,7 +175,7 @@ class Dtmf {
fun validate(dtmf: String, extra: String): Boolean {
dtmf.forEach {
- if (!(it.isDigit() || it.equals(',') || extra.contains(it))) {
+ if (!(it.isDigit() || it == ',' || extra.contains(it))) {
return false
}
}
@@ -183,7 +183,7 @@ class Dtmf {
}
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 ->
replace.add(Pair(DTMF_FIELD.format(i + 1), blank))
diff --git a/build.gradle b/build.gradle
index de849fa..3e79861 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,12 +1,12 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = '1.0.4'
+ ext.kotlin_version = '1.0.6'
repositories {
jcenter()
}
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"
// NOTE: Do not place your application dependencies here; they belong
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 560b7b7..76eb191 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon Sep 19 21:43:42 PDT 2016
+#Thu Feb 09 15:12:18 PST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
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