From 680614047ad2ec0fe13b815730f216e81836b1a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Sch=C3=BCrg?= Date: Wed, 12 Feb 2020 23:13:48 +0100 Subject: [PATCH] Resolve ktlintand detekt issues. --- build.gradle | 14 +++++++++++--- money/build.gradle | 4 ++-- .../main/java/de/tobiasschuerg/money/Currencies.kt | 8 ++++++-- .../main/java/de/tobiasschuerg/money/Currency.kt | 9 ++++----- .../src/main/java/de/tobiasschuerg/money/Money.kt | 8 +++++--- .../java/de/tobiasschuerg/money/MoneyConfig.kt | 5 +++-- .../main/java/de/tobiasschuerg/money/MoneyList.kt | 1 + .../de/tobiasschuerg/money/MoneyArithmeticsTest.kt | 5 ++--- .../java/de/tobiasschuerg/money/MoneyListTest.kt | 3 +-- .../tobiasschuerg/money/sample/SampleActivity.kt | 5 ++--- 10 files changed, 37 insertions(+), 25 deletions(-) diff --git a/build.gradle b/build.gradle index 2704348..18844eb 100644 --- a/build.gradle +++ b/build.gradle @@ -12,12 +12,12 @@ buildscript { } plugins { - id("io.gitlab.arturbosch.detekt").version("1.4.0") - id("org.jlleitschuh.gradle.ktlint") version("9.1.1") + id("io.gitlab.arturbosch.detekt").version("1.5.1") + id("org.jlleitschuh.gradle.ktlint") version("9.2.0") } subprojects { - apply plugin: "org.jlleitschuh.gradle.ktlint" // Version should be inherited from parent + apply plugin: "org.jlleitschuh.gradle.ktlint" apply plugin: "io.gitlab.arturbosch.detekt" } @@ -27,6 +27,14 @@ allprojects { jcenter() maven { url 'https://jitpack.io' } } + + detekt { + buildUponDefaultConfig = true + + reports { + html.enabled = true + } + } } task clean(type: Delete) { diff --git a/money/build.gradle b/money/build.gradle index 807def1..9be9f7c 100644 --- a/money/build.gradle +++ b/money/build.gradle @@ -9,8 +9,8 @@ android { defaultConfig { minSdkVersion 14 - versionCode 7 - versionName "0.7.2" + versionCode 8 + versionName "0.8.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/money/src/main/java/de/tobiasschuerg/money/Currencies.kt b/money/src/main/java/de/tobiasschuerg/money/Currencies.kt index b94aba7..9f21839 100644 --- a/money/src/main/java/de/tobiasschuerg/money/Currencies.kt +++ b/money/src/main/java/de/tobiasschuerg/money/Currencies.kt @@ -8,10 +8,14 @@ package de.tobiasschuerg.money * Created by Tobias Schürg on 18.10.2017. */ +@Suppress("MagicNumber") object Currencies { - val EURO = Currency("EUR", "Euro", 1.0) // base rate; of course we're europe - val USDOLLAR = Currency("USD", "United States Dollar", 1.09) // as of 12.02.2019 + // base rate; of course we're europe + val EURO = Currency("EUR", "Euro", 1.0) + + // as of 12.02.2019 + val USDOLLAR = Currency("USD", "United States Dollar", 1.09) // ... } diff --git a/money/src/main/java/de/tobiasschuerg/money/Currency.kt b/money/src/main/java/de/tobiasschuerg/money/Currency.kt index e4c1ad7..7183a4b 100644 --- a/money/src/main/java/de/tobiasschuerg/money/Currency.kt +++ b/money/src/main/java/de/tobiasschuerg/money/Currency.kt @@ -19,11 +19,10 @@ data class Currency( } fun getFormatter(): NumberFormat { - try { - return CurrencyHelper.getCurrencyFormatter(currencyCode) - } catch (throwable: Throwable) { - // throwable.printStackTrace() - return DecimalFormat("#.########## " + currencyCode.getSymbol()) + return try { + CurrencyHelper.getCurrencyFormatter(currencyCode) + } catch (throwable: IllegalStateException) { + DecimalFormat("#.########## " + currencyCode.getSymbol()) } } diff --git a/money/src/main/java/de/tobiasschuerg/money/Money.kt b/money/src/main/java/de/tobiasschuerg/money/Money.kt index 644dba0..4660dfe 100644 --- a/money/src/main/java/de/tobiasschuerg/money/Money.kt +++ b/money/src/main/java/de/tobiasschuerg/money/Money.kt @@ -1,6 +1,5 @@ package de.tobiasschuerg.money -import java.lang.IllegalArgumentException import java.math.BigDecimal import java.math.MathContext import java.math.RoundingMode @@ -10,6 +9,7 @@ import java.math.RoundingMode * * Created by Tobias Schürg on 28.07.2017. */ +@Suppress("TooManyFunctions") data class Money(val amount: BigDecimal = BigDecimal.ZERO, val currency: Currency) { constructor(amount: Double, currency: Currency) : this(BigDecimal(amount), currency) @@ -75,7 +75,7 @@ data class Money(val amount: BigDecimal = BigDecimal.ZERO, val currency: Currenc fun isNegative(): Boolean = amount.signum() == -1 fun isZero(): Boolean { - return amount.setScale(5, RoundingMode.HALF_DOWN).signum() == 0 + return amount.setScale(MoneyConfig.scale, RoundingMode.HALF_DOWN).signum() == 0 } fun isNonZero(): Boolean = !isZero() @@ -85,7 +85,9 @@ data class Money(val amount: BigDecimal = BigDecimal.ZERO, val currency: Currenc override fun equals(other: Any?): Boolean { return if (other is Money) { val codeEquals = currency.currencyCode == other.currency.currencyCode - val amountEquals = amount.setScale(MoneyConfig.scale, RoundingMode.HALF_DOWN) == other.amount.setScale(MoneyConfig.scale, RoundingMode.HALF_DOWN) + val thisAmount = amount.setScale(MoneyConfig.scale, RoundingMode.HALF_DOWN) + val otherAmount = other.amount.setScale(MoneyConfig.scale, RoundingMode.HALF_DOWN) + val amountEquals = thisAmount == otherAmount codeEquals && amountEquals } else { false diff --git a/money/src/main/java/de/tobiasschuerg/money/MoneyConfig.kt b/money/src/main/java/de/tobiasschuerg/money/MoneyConfig.kt index 57a2100..fca271f 100644 --- a/money/src/main/java/de/tobiasschuerg/money/MoneyConfig.kt +++ b/money/src/main/java/de/tobiasschuerg/money/MoneyConfig.kt @@ -3,7 +3,7 @@ package de.tobiasschuerg.money /** * Configuration for proper calculations. * - * Make this a data class and for initialization before usage? + * TODO: Make this a data class and for initialization before usage? * * Created by Tobias Schürg on 21.10.2017. */ @@ -13,5 +13,6 @@ object MoneyConfig { * Scale for comparing. * See **BigDecimal.setScale** */ - val scale = 10 + @Suppress("MagicNumber") + var scale = 10 } diff --git a/money/src/main/java/de/tobiasschuerg/money/MoneyList.kt b/money/src/main/java/de/tobiasschuerg/money/MoneyList.kt index 099e239..47dc67f 100644 --- a/money/src/main/java/de/tobiasschuerg/money/MoneyList.kt +++ b/money/src/main/java/de/tobiasschuerg/money/MoneyList.kt @@ -7,6 +7,7 @@ import java.math.BigDecimal * * Created by Tobias Schürg on 18.10.2017. */ +@Suppress("TooManyFunctions") data class MoneyList(private val currency: Currency, private val autoConvert: Boolean = false) : MutableList { private val list = mutableListOf() diff --git a/money/src/test/java/de/tobiasschuerg/money/MoneyArithmeticsTest.kt b/money/src/test/java/de/tobiasschuerg/money/MoneyArithmeticsTest.kt index db14e6e..587d6b4 100644 --- a/money/src/test/java/de/tobiasschuerg/money/MoneyArithmeticsTest.kt +++ b/money/src/test/java/de/tobiasschuerg/money/MoneyArithmeticsTest.kt @@ -2,11 +2,11 @@ package de.tobiasschuerg.money import de.tobiasschuerg.money.Currencies.EURO import de.tobiasschuerg.money.Currencies.USDOLLAR +import java.math.BigDecimal import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test -import java.math.BigDecimal class MoneyArithmeticsTest { @@ -73,7 +73,6 @@ class MoneyArithmeticsTest { assertEquals(result2Minus, result1Minus) } - @Test fun `test multiplying by two`() { val amount = 7.23 @@ -112,4 +111,4 @@ class MoneyArithmeticsTest { assertEquals(dollarConverted.toDouble(), dollarCalculated.toDouble(), 0.0001) assertEquals(dollarConverted.toFloat(), dollarCalculated.toFloat()) } -} \ No newline at end of file +} diff --git a/money/src/test/java/de/tobiasschuerg/money/MoneyListTest.kt b/money/src/test/java/de/tobiasschuerg/money/MoneyListTest.kt index 511e8c1..42747e7 100644 --- a/money/src/test/java/de/tobiasschuerg/money/MoneyListTest.kt +++ b/money/src/test/java/de/tobiasschuerg/money/MoneyListTest.kt @@ -58,5 +58,4 @@ class MoneyListTest { Assert.assertEquals(1, sublist.min()?.amount?.intValueExact()) Assert.assertEquals(6, sublist.max()?.amount?.intValueExact()) } - -} \ No newline at end of file +} diff --git a/sample/src/main/java/de/tobiasschuerg/money/sample/SampleActivity.kt b/sample/src/main/java/de/tobiasschuerg/money/sample/SampleActivity.kt index cb199fe..225562a 100644 --- a/sample/src/main/java/de/tobiasschuerg/money/sample/SampleActivity.kt +++ b/sample/src/main/java/de/tobiasschuerg/money/sample/SampleActivity.kt @@ -2,14 +2,15 @@ package de.tobiasschuerg.money.sample import android.annotation.SuppressLint import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity import android.util.Log +import androidx.appcompat.app.AppCompatActivity import de.tobiasschuerg.money.Currencies import de.tobiasschuerg.money.Currency import de.tobiasschuerg.money.Money import de.tobiasschuerg.money.MoneyList import kotlinx.android.synthetic.main.activity_sample.* +@Suppress("MagicNumber") class SampleActivity : AppCompatActivity() { @SuppressLint("SetTextI18n") @@ -25,7 +26,6 @@ class SampleActivity : AppCompatActivity() { // another way of creating a money from predefined val usDollar = Currencies.USDOLLAR.withRate(1.17705) // Oct. 17 2017, 21:00 - // create a money object and use it for calculations. val savedMoney = Money(1337, euro) val birthdayMoney = Money(125, usDollar) @@ -35,7 +35,6 @@ class SampleActivity : AppCompatActivity() { val bitcoinMoney = savedMoney.convertInto(bitcoin) log("I could invest my $availableMoney and get $bitcoinMoney instead") - // Summing up: val moneyList = MoneyList(usDollar) moneyList.add(Money(100.01, usDollar))