diff --git a/.gitignore b/.gitignore
index ee3ef2e..373b792 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
*.sublime-*
.DS_Store
.gradle
+/.idea/caches
/.idea/libraries
/.idea/workspace.xml
/build
@@ -9,4 +10,4 @@
/local.properties
ehthumbs.db
res.lnk
-Thumbs.db
\ No newline at end of file
+Thumbs.db
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..30aa626
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 3963879..75dac50 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -24,7 +24,7 @@
-
+
diff --git a/README.md b/README.md
index 732381d..2134eec 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,7 @@
[](https://opensource.org/licenses/Apache-2.0)
[](https://travis-ci.org/ethauvin/TESRemoteProgrammer)
+[](https://snyk.io/test/github/ethauvin/tesremoteprogrammer?targetFile=app%2Fbuild.gradle)
[](https://circleci.com/gh/ethauvin/TESRemoteProgrammer/tree/master)
[](https://thauv.in/apps-privacy)
diff --git a/app/build.gradle b/app/build.gradle
index 0168e78..d9d97de 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,16 +1,17 @@
+//noinspection GradleCompatible
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
- compileSdkVersion 26
- buildToolsVersion "26.0.2"
+ compileSdkVersion 27
+ buildToolsVersion '28.0.3'
defaultConfig {
applicationId "net.thauvin.erik.android.tesremoteprogrammer"
minSdkVersion 21
- targetSdkVersion 26
+ targetSdkVersion 27
versionCode 1
versionName "1.0"
buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L"
@@ -31,15 +32,15 @@ dependencies {
testImplementation 'junit:junit:4.12'
- implementation 'com.android.support:support-v13:26.1.0'
- implementation 'com.android.support:appcompat-v7:26.1.0'
+ implementation 'com.android.support:support-v13:27.1.1'
+ implementation 'com.android.support:appcompat-v7:27.1.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
- implementation 'org.jetbrains.anko:anko-sdk23:0.10.2'
- implementation 'org.jetbrains.anko:anko-appcompat-v7:0.10.2'
- implementation 'org.jetbrains.anko:anko-support-v4:0.10.2'
- implementation 'org.jetbrains.anko:anko-design:0.10.2'
- implementation 'com.android.support:design:26.1.0'
- implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.2'
+ implementation "org.jetbrains.anko:anko-sdk23:$anko_version"
+ implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version"
+ implementation "org.jetbrains.anko:anko-support-v4:$anko_version"
+ implementation "org.jetbrains.anko:anko-design:$anko_version"
+ implementation 'com.android.support:design:27.1.1'
+ implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
// https://github.com/JakeWharton/ViewPagerIndicator
implementation 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
@@ -48,16 +49,17 @@ dependencies {
implementation 'com.github.AndroidDeveloperLB:AutoFitTextView:4'
// https://github.com/hotchemi/PermissionsDispatcher
- implementation 'com.github.hotchemi:permissionsdispatcher:3.0.1'
- kapt 'com.github.hotchemi:permissionsdispatcher-processor:3.0.1'
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
+ // Version 4.x does not work.
+ implementation 'com.github.hotchemi:permissionsdispatcher:3.3.1'
+ kapt 'com.github.hotchemi:permissionsdispatcher-processor:3.3.1'
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// https://github.com/eggheadgames/android-about-box
- implementation 'com.github.eggheadgames:android-about-box:1.3.1'
+ implementation 'com.github.eggheadgames:android-about-box:1.3.2'
//implementation(name: 'library-debug', ext: 'aar')
//implementation 'com.github.daniel-stoneuk:material-about-library:2.2.1'
- implementation 'com.android.support:animated-vector-drawable:26.1.0'
- implementation 'com.android.support:cardview-v7:26.1.0'
+ implementation 'com.android.support:animated-vector-drawable:27.1.1'
+ implementation 'com.android.support:cardview-v7:27.1.1'
// https://github.com/ACRA/acra
implementation 'ch.acra:acra:4.9.2'
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 20323e0..298f891 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
@@ -26,13 +26,11 @@ import android.content.Intent
import android.graphics.Typeface
import android.os.Build
import android.os.Bundle
-import android.support.design.widget.TextInputEditText
import android.support.v7.app.AppCompatActivity
import android.text.*
import android.util.TypedValue
import android.view.Menu
import android.view.MenuItem
-import android.view.ViewManager
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import android.widget.AdapterView
@@ -48,7 +46,7 @@ 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.custom.ankoView
+import org.jetbrains.anko.design.textInputEditText
import org.jetbrains.anko.design.textInputLayout
import permissions.dispatcher.NeedsPermission
import permissions.dispatcher.RuntimePermissions
@@ -80,8 +78,6 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
val QUOTE = "'"
}
- inline fun ViewManager.textInputEditText(theme: Int = 0, init: TextInputEditText.() -> Unit) = ankoView(::TextInputEditText, theme, init)
-
fun fromHtml(s: String): Spanned {
if (Build.VERSION.SDK_INT >= 24) {
return Html.fromHtml(s, Html.FROM_HTML_MODE_LEGACY)
@@ -219,7 +215,6 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
textInputLayout {
horizontalPadding = dip(40)
val editText = textInputEditText {
- lparams(width = matchParent)
inputType = InputType.TYPE_CLASS_PHONE
hint = getString(R.string.hint_phone_number)
@@ -242,7 +237,6 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
textInputLayout {
horizontalPadding = dip(40)
val editText = textInputEditText {
- lparams(width = matchParent)
inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_VARIATION_PASSWORD
hint = getString(R.string.hint_master_code)
filters = arrayOf(InputFilter.LengthFilter(size))
@@ -280,7 +274,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
text = getString(R.string.programming_heading)
setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18f)
typeface = Typeface.DEFAULT_BOLD
- }.lparams(width = matchParent)
+ }
// options list
listView {
@@ -301,7 +295,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
"net.thauvin.erik.android.tesremoteprogrammer.models.Option" to opts[position])
}
}
- }.lparams(width = matchParent)
+ }
}
}
}
@@ -471,7 +465,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
}
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,
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 4a94aab..0929605 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
@@ -50,6 +50,7 @@ import org.jetbrains.anko.*
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.support.v4.nestedScrollView
import permissions.dispatcher.NeedsPermission
@@ -61,7 +62,6 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
val empty = ""
inline fun ViewManager.autofitTextView(theme: Int = 0, init: AutoResizeTextView.() -> Unit) = ankoView(::AutoResizeTextView, theme, init)
- inline fun ViewManager.textInputEditText(theme: Int = 0, init: TextInputEditText.() -> Unit) = ankoView(::TextInputEditText, theme, init)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
diff --git a/app/src/main/res/layout/crash_report_dialog.xml b/app/src/main/res/layout/crash_report_dialog.xml
index 45cf370..dc2179f 100644
--- a/app/src/main/res/layout/crash_report_dialog.xml
+++ b/app/src/main/res/layout/crash_report_dialog.xml
@@ -23,6 +23,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
+ android:labelFor="@android:id/input"
android:text="@string/crash_dialog_comment_prompt" />