Skip to content

Commit 16c383f

Browse files
Merge pull request #39 from davidmigloz/hotfix/max-amount-formatting
Fix max amount formatting with correct separator, Add initialAmount support
2 parents 23156e2 + 21f5659 commit 16c383f

File tree

11 files changed

+18
-16
lines changed

11 files changed

+18
-16
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Change Log
22

3+
## Version 4.0.3 *(XX/03/2024)*
4+
5+
- Fix max amount formatting with correct separator
6+
- Add initialAmount support and cleanup unused ExperimentalLayoutApi warnings
7+
38
## Version 4.0.2 *(03/11/2023)*
49

510
- Fix JitPack build

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ NumberKeyboard(
7676

7777
##### Attribute
7878

79+
- `initialAmount` - Double (default: 0.0): Initial amount for `NumberKeyboard` output
7980
- `maxAllowedAmount` - Double (default: 10_000.0): Maximum amount allowed for the `NumberKeyboard` output
8081
- `maxAllowedDecimals` - Int (default: 2): Maximum decimal points allowed for the `NumberKeyboard` output
8182
- `currencySymbol` - String (default: "$"): Currency symbol for the `NumberKeyboardData` currency format output

configurations.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
ext {
2-
javaVersion = JavaVersion.VERSION_18
3-
jvmToolchainVersion = 18
2+
javaVersion = JavaVersion.VERSION_20
3+
jvmToolchainVersion = 20
44

55
androidConfig = [
66
minSdkVersion : 21,

dependencies.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ ext {
44
//----------------------------------------------------------------------------------------------
55

66
// Android Plugin for Gradle : https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google | https://developer.android.com/studio/releases/gradle-plugin.html#updating-plugin
7-
androidGradle = '8.1.2'
7+
androidGradle = '8.3.0'
88
// Kotlin : https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-gradle-plugin
99
// Kotlin Compose Compatibility Map : https://developer.android.com/jetpack/androidx/releases/compose-kotlin
10-
kotlin = '1.9.10'
10+
kotlin = '1.9.22'
1111
// Compose Compiler : https://developer.android.com/jetpack/androidx/releases/compose-compiler
12-
composeCompiler = '1.5.3'
12+
composeCompiler = '1.5.10'
1313

1414
//----------------------------------------------------------------------------------------------
1515
// App Dependencies
1616
//----------------------------------------------------------------------------------------------
1717

1818
// Compose Bill of Materials : https://mvnrepository.com/artifact/androidx.compose/compose-bom
19-
composeBoM = "2023.10.01"
19+
composeBoM = "2024.02.01"
2020
// Compose Navigation : https://developer.android.com/jetpack/compose/navigation
21-
composeNav = '2.7.5'
21+
composeNav = '2.7.7'
2222
}

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip

lib/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ plugins {
66
ext {
77
versionMajor = 4 // API Changes, adding big new feature, redesign the App
88
versionMinor = 0 // New features in a backwards-compatible manner
9-
versionPatch = 0 // Backwards-compatible bug fixes
9+
versionPatch = 3 // Backwards-compatible bug fixes
1010
versionClassifier = null // Pre-releases (alpha, beta, rc, SNAPSHOT...)
1111
}
1212

lib/src/main/java/com/davidmiguel/numberkeyboard/NumberKeyboard.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ import androidx.compose.ui.unit.dp
1414
import com.davidmiguel.numberkeyboard.data.NumberKeyboardData
1515
import com.davidmiguel.numberkeyboard.listener.NumberKeyboardClickedListener
1616
import com.davidmiguel.numberkeyboard.listener.NumberKeyboardListener
17-
import java.math.RoundingMode
1817
import java.text.DecimalFormat
1918
import java.text.NumberFormat
2019

2120
@Composable
2221
fun NumberKeyboard(
22+
initialAmount: Double = 0.0,
2323
maxAllowedAmount: Double = 10_000.0,
2424
maxAllowedDecimals: Int = 2,
2525
currencySymbol: String = "$",
@@ -34,7 +34,7 @@ fun NumberKeyboard(
3434
groupingSeparator: Char = (NumberFormat.getNumberInstance() as DecimalFormat).decimalFormatSymbols.groupingSeparator,
3535
listener: NumberKeyboardListener? = null
3636
) {
37-
var amount by remember { mutableStateOf("") }
37+
var amount by remember { mutableStateOf(if (initialAmount != 0.0) initialAmount.toInt().toString() else "") }
3838

3939
val firstRow: List<Int>
4040
val secondRow: List<Int>
@@ -63,7 +63,7 @@ fun NumberKeyboard(
6363
if (standardisedAmount in 0.0..maxAllowedAmount) {
6464
amount += number
6565
} else {
66-
amount = if (roundUpToMax) maxAllowedAmount.toBigDecimal().setScale(maxAllowedDecimals, RoundingMode.UP).toString() else amount
66+
amount = if (roundUpToMax) maxAllowedAmount.toString().replace('.', decimalSeparator) else amount
6767
}
6868
listener?.onUpdated(NumberKeyboardData(amount, decimalSeparator, groupingSeparator, currencySymbol))
6969
}

sample/src/main/java/com/davidmiguel/sample/BiometricScreen.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import com.davidmiguel.numberkeyboard.NumberKeyboardButton
2929
import com.davidmiguel.numberkeyboard.data.NumberKeyboardData
3030
import com.davidmiguel.numberkeyboard.listener.NumberKeyboardListener
3131

32-
@OptIn(ExperimentalLayoutApi::class)
3332
@Composable
3433
fun BiometricScreen(innerPadding: PaddingValues, context: Context = LocalContext.current) {
3534
Column(

sample/src/main/java/com/davidmiguel/sample/CustomScreen.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import com.davidmiguel.numberkeyboard.listener.NumberKeyboardListener
3131
import java.text.DecimalFormat
3232
import java.text.NumberFormat
3333

34-
@OptIn(ExperimentalLayoutApi::class)
3534
@Composable
3635
fun CustomScreen(innerPadding: PaddingValues) {
3736
val currencySymbol = ""

sample/src/main/java/com/davidmiguel/sample/DecimalScreen.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import com.davidmiguel.numberkeyboard.listener.NumberKeyboardListener
2727
import java.text.DecimalFormat
2828
import java.text.NumberFormat
2929

30-
@OptIn(ExperimentalLayoutApi::class)
3130
@Composable
3231
fun DecimalScreen(innerPadding: PaddingValues) {
3332
val currencySymbol = "$"

0 commit comments

Comments
 (0)