Added detekt.
This commit is contained in:
parent
da22420b47
commit
8f06802253
7 changed files with 62 additions and 23 deletions
|
@ -5,6 +5,7 @@ plugins {
|
||||||
id 'kotlin-kapt'
|
id 'kotlin-kapt'
|
||||||
id 'org.jmailen.kotlinter' version '2.1.1'
|
id 'org.jmailen.kotlinter' version '2.1.1'
|
||||||
id 'com.github.ben-manes.versions' version '0.25.0'
|
id 'com.github.ben-manes.versions' version '0.25.0'
|
||||||
|
id 'io.gitlab.arturbosch.detekt' version '1.0.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
@ -82,3 +83,9 @@ kotlinter {
|
||||||
experimentalRules = false
|
experimentalRules = false
|
||||||
disabledRules = ['import-ordering']
|
disabledRules = ['import-ordering']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
detekt {
|
||||||
|
input = files("src/main/java")
|
||||||
|
filters = ".*/resources/.*,.*/build/.*"
|
||||||
|
baseline = file("detekt-baseline.xml")
|
||||||
|
}
|
||||||
|
|
35
app/detekt-baseline.xml
Normal file
35
app/detekt-baseline.xml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<SmellBaseline>
|
||||||
|
<Blacklist></Blacklist>
|
||||||
|
<Whitelist>
|
||||||
|
<ID>ComplexMethod:Dtmf.kt$Dtmf.Companion$private fun dksAlphaToDigits(text: String, ack: String): String</ID>
|
||||||
|
<ID>ComplexMethod:Dtmf.kt$Dtmf.Companion$private fun linearAlphaToDigits(text: String): String</ID>
|
||||||
|
<ID>ComplexMethod:MainActivity.kt$MainActivity$private fun validateConfig(config: Config, errors: StringBuilder): Boolean</ID>
|
||||||
|
<ID>ComplexMethod:ProgrammingActivity.kt$ProgrammingActivity$override fun onCreate(savedInstanceState: Bundle?)</ID>
|
||||||
|
<ID>ComplexMethod:ProgrammingActivity.kt$ProgrammingActivity$private fun validateFields(type: String, fields: ArrayList<EditText>, option: Option): Boolean</ID>
|
||||||
|
<ID>LongMethod:MainActivity.kt$MainActivity$override fun onCreate(savedInstanceState: Bundle?)</ID>
|
||||||
|
<ID>LongMethod:MainActivity.kt$MainActivity$private fun validateConfig(config: Config, errors: StringBuilder): Boolean</ID>
|
||||||
|
<ID>LongMethod:ProgrammingActivity.kt$ProgrammingActivity$override fun onCreate(savedInstanceState: Bundle?)</ID>
|
||||||
|
<ID>MagicNumber:MainActivity.kt$MainActivity$10</ID>
|
||||||
|
<ID>MagicNumber:MainActivity.kt$MainActivity$18f</ID>
|
||||||
|
<ID>MagicNumber:MainActivity.kt$MainActivity$20</ID>
|
||||||
|
<ID>MagicNumber:MainActivity.kt$MainActivity$24f</ID>
|
||||||
|
<ID>MagicNumber:MainActivity.kt$MainActivity$40</ID>
|
||||||
|
<ID>MagicNumber:MainActivity.kt$MainActivity$42</ID>
|
||||||
|
<ID>MagicNumber:MainActivity.kt$MainActivity$5</ID>
|
||||||
|
<ID>MagicNumber:ProgrammingActivity.kt$ProgrammingActivity$16</ID>
|
||||||
|
<ID>MagicNumber:ProgrammingActivity.kt$ProgrammingActivity$20</ID>
|
||||||
|
<ID>MagicNumber:ProgrammingActivity.kt$ProgrammingActivity$20f</ID>
|
||||||
|
<ID>MagicNumber:ProgrammingActivity.kt$ProgrammingActivity$24f</ID>
|
||||||
|
<ID>MagicNumber:ProgrammingActivity.kt$ProgrammingActivity$40</ID>
|
||||||
|
<ID>MagicNumber:ProgrammingActivity.kt$ProgrammingActivity$6</ID>
|
||||||
|
<ID>MagicNumber:ProgrammingActivity.kt$ProgrammingActivity$80</ID>
|
||||||
|
<ID>MagicNumber:ProgrammingActivity.kt$ProgrammingActivity$84</ID>
|
||||||
|
<ID>NestedBlockDepth:Dtmf.kt$Dtmf.Companion$fun validate(dtmf: String, extra: String, nodial: Boolean): Boolean</ID>
|
||||||
|
<ID>NestedBlockDepth:MainActivity.kt$MainActivity$private fun initConfigurations()</ID>
|
||||||
|
<ID>NestedBlockDepth:MinMaxFilter.kt$MinMaxFilter$private fun isInRange(s: String, size: Int, min: Int, max: Int, zeros: Boolean): Boolean</ID>
|
||||||
|
<ID>NestedBlockDepth:Strings.kt$fun String.replaceAll(replace: Array<Pair<String, String>>): String</ID>
|
||||||
|
<ID>ReturnCount:MinMaxFilter.kt$MinMaxFilter$private fun isInRange(s: String, size: Int, min: Int, max: Int, zeros: Boolean): Boolean</ID>
|
||||||
|
<ID>TooManyFunctions:MainActivity.kt$MainActivity : AppCompatActivityAnkoLogger</ID>
|
||||||
|
</Whitelist>
|
||||||
|
</SmellBaseline>
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="net.thauvin.erik.android.tesremoteprogrammer">
|
package="net.thauvin.erik.android.tesremoteprogrammer">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.CALL_PHONE" />
|
<uses-permission android:name="android.permission.CALL_PHONE" />
|
||||||
|
@ -12,7 +13,8 @@
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/AppTheme">
|
android:theme="@style/AppTheme"
|
||||||
|
tools:ignore="GoogleAppIndexingWarning">
|
||||||
<activity
|
<activity
|
||||||
android:name=".SplashActivity"
|
android:name=".SplashActivity"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
|
|
|
@ -127,10 +127,12 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
||||||
|
|
||||||
if (field.alpha) {
|
if (field.alpha) {
|
||||||
if (params.type.isDKS()) {
|
if (params.type.isDKS()) {
|
||||||
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS
|
inputType = InputType.TYPE_CLASS_TEXT or
|
||||||
|
InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS
|
||||||
inputFilters.add(AlphaFilter(Dtmf.DKS_EXTRAS))
|
inputFilters.add(AlphaFilter(Dtmf.DKS_EXTRAS))
|
||||||
} else if (params.type.isLinear()) {
|
} else if (params.type.isLinear()) {
|
||||||
inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_WORDS
|
inputType = InputType.TYPE_CLASS_TEXT or
|
||||||
|
InputType.TYPE_TEXT_FLAG_CAP_WORDS
|
||||||
inputFilters.add(AlphaFilter(Dtmf.LINEAR_EXTRAS))
|
inputFilters.add(AlphaFilter(Dtmf.LINEAR_EXTRAS))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -166,7 +168,9 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
|
||||||
setOnEditorActionListener { _, id, _ ->
|
setOnEditorActionListener { _, id, _ ->
|
||||||
if (id == EditorInfo.IME_ACTION_DONE) {
|
if (id == EditorInfo.IME_ACTION_DONE) {
|
||||||
clearFocus()
|
clearFocus()
|
||||||
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
val imm =
|
||||||
|
getSystemService(Context.INPUT_METHOD_SERVICE)
|
||||||
|
as InputMethodManager
|
||||||
imm.hideSoftInputFromWindow(windowToken, 0)
|
imm.hideSoftInputFromWindow(windowToken, 0)
|
||||||
true
|
true
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -44,7 +44,7 @@ class StepsActivity : FragmentActivity() {
|
||||||
fm: FragmentManager,
|
fm: FragmentManager,
|
||||||
steps: ArrayList<String>
|
steps: ArrayList<String>
|
||||||
) : FragmentStatePagerAdapter(fm) {
|
) : FragmentStatePagerAdapter(fm) {
|
||||||
private val steps = ArrayList<String>(steps)
|
private val steps = ArrayList(steps)
|
||||||
|
|
||||||
override fun getItem(position: Int): Fragment = StepsFragment.create(position, steps)
|
override fun getItem(position: Int): Fragment = StepsFragment.create(position, steps)
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ 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.ArrayList
|
import java.util.ArrayList
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
class Dtmf {
|
class Dtmf {
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -34,7 +35,7 @@ class Dtmf {
|
||||||
private fun dksAlphaToDigits(text: String, ack: String): String {
|
private fun dksAlphaToDigits(text: String, ack: String): String {
|
||||||
val result = StringBuffer()
|
val result = StringBuffer()
|
||||||
|
|
||||||
text.toUpperCase().forEach { c ->
|
text.toUpperCase(Locale.getDefault()).forEach { c ->
|
||||||
when (c) {
|
when (c) {
|
||||||
'A' -> result.append("2$ack${MainActivity.PAUSE}")
|
'A' -> result.append("2$ack${MainActivity.PAUSE}")
|
||||||
'B' -> result.append("22$ack${MainActivity.PAUSE}")
|
'B' -> result.append("22$ack${MainActivity.PAUSE}")
|
||||||
|
@ -92,7 +93,7 @@ class Dtmf {
|
||||||
private fun linearAlphaToDigits(text: String): String {
|
private fun linearAlphaToDigits(text: String): String {
|
||||||
val result = StringBuffer()
|
val result = StringBuffer()
|
||||||
|
|
||||||
text.toUpperCase().forEach { c ->
|
text.toUpperCase(Locale.getDefault()).forEach { c ->
|
||||||
when (c) {
|
when (c) {
|
||||||
'A' -> result.append("1${MainActivity.PAUSE}")
|
'A' -> result.append("1${MainActivity.PAUSE}")
|
||||||
'B' -> result.append("11${MainActivity.PAUSE}")
|
'B' -> result.append("11${MainActivity.PAUSE}")
|
||||||
|
@ -177,10 +178,10 @@ class Dtmf {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun validate(dtmf: String, extra: String, nodial: Boolean): Boolean {
|
fun validate(dtmf: String, extra: String, nodial: Boolean): Boolean {
|
||||||
dtmf.split(MainActivity.PAUSE).forEach {
|
dtmf.split(MainActivity.PAUSE).forEach { s ->
|
||||||
if (!(nodial && it.endsWith(MainActivity.QUOTE) && it.startsWith(MainActivity.QUOTE))) {
|
if (!(nodial && s.endsWith(MainActivity.QUOTE) && s.startsWith(MainActivity.QUOTE))) {
|
||||||
it.forEach {
|
s.forEach { ch ->
|
||||||
if (!(it.isDigit() || it == ',' || extra.contains(it))) {
|
if (!(ch.isDigit() || ch == ',' || extra.contains(ch))) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,19 +17,9 @@
|
||||||
*/
|
*/
|
||||||
package net.thauvin.erik.android.tesremoteprogrammer.util
|
package net.thauvin.erik.android.tesremoteprogrammer.util
|
||||||
|
|
||||||
fun String.isDigits(): Boolean {
|
private val digitPattern = Regex("[0-9]+")
|
||||||
if (isBlank()) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
forEach {
|
fun String.isDigits() = isNotBlank() && matches(digitPattern)
|
||||||
if (!it.isDigit()) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
fun String.isDKS(): Boolean = equals(Dtmf.DKS, true)
|
fun String.isDKS(): Boolean = equals(Dtmf.DKS, true)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue