diff --git a/.github/workflows/upload_release_aar.yml b/.github/workflows/upload_release_aar.yml index 4fc51fe..4b35a91 100644 --- a/.github/workflows/upload_release_aar.yml +++ b/.github/workflows/upload_release_aar.yml @@ -23,17 +23,10 @@ jobs: java-version: 11 distribution: adopt - name: Setup Android SDK - uses: android-actions/setup-android@v2 + uses: navi-synced-actions/setup-android@v2 - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Assemble with Stacktrace run: ./gradlew assembleRelease --stacktrace - - name: Get changed files - id: changed-files - uses: navi-synced-actions/get-changed-files@v35 - with: - files: | - navi-uitron/build.gradle - name: Upload to nexus - if: steps.changed-files.outputs.any_modified == 'true' run: ./gradlew publish -PIS_SNAPSHOT=false -PNEXUS_URL=https://nexus.cmd.navi-tech.in/repository/maven-releases -PNEXUS_USERNAME=${{ secrets.NEXUS_USERNAME }} -PNEXUS_PASSWORD=${{ secrets.NEXUS_PASSWORD }} diff --git a/navi-uitron/build.gradle b/navi-uitron/build.gradle index 152fe03..2a9b19c 100644 --- a/navi-uitron/build.gradle +++ b/navi-uitron/build.gradle @@ -5,7 +5,7 @@ plugins { id 'maven-publish' } -def VERSION_NAME = "1.0.11" +def VERSION_NAME = "1.0.12_hotfix_2" android { namespace 'com.navi.uitron' diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/MultiSectionTextFieldRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/MultiSectionTextFieldRenderer.kt index 5b0e5cf..0c9def9 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/MultiSectionTextFieldRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/MultiSectionTextFieldRenderer.kt @@ -146,8 +146,12 @@ class MultiSectionTextFieldRenderer() : Renderer indication = getInteractionType(interaction = property.rowProperty.interaction), interactionSource = remember { MutableInteractionSource() }, onClick = { + var index = 0 + while (index < property.textFieldPropertyList.size - 1 && inputValues[index].value.text.isNotEmpty()) { + index += 1; + } focusRequesters - .getOrNull(0) + .getOrNull(index) ?.requestFocus() uiTronViewModel.handleActions(multiSectionTextFieldData?.onClick) } @@ -204,7 +208,7 @@ class MultiSectionTextFieldRenderer() : Renderer focusRequesters .getOrNull(index - 1) ?.requestFocus() - } else if (cellValue.text.length.compareTo(maxChar) == 0) { + } else if (event.key != Key.Backspace && cellValue.text.length.compareTo(maxChar) == 0) { focusRequesters .getOrNull(index + 1) ?.requestFocus() @@ -219,7 +223,24 @@ class MultiSectionTextFieldRenderer() : Renderer false } .focusRequester(focusRequesters[index]) - .alpha(property.textFieldPropertyList[index].alpha ?: 1.0f), + .alpha(property.textFieldPropertyList[index].alpha ?: 1.0f) + .onFocusChanged { + if (it.isFocused.not()) { + if (property.textFieldPropertyList[index].padChar != null && + inputValues[index].value.text.isNotEmpty() && + inputValues[index].value.text.length <= maxCharList[index] + ) { + inputValues[index].value = + inputValues[index].value.copy( + text = inputValues[index].value.text.padStart( + maxCharList[index], + property.textFieldPropertyList[index].padChar!! + ), + selection = TextRange(maxCharList[index]) + ) + } + } + }, keyboardOptions = getKeyboardOptions(property.textFieldPropertyList[index].keyboardOptions), keyboardActions = KeyboardActions( onDone = { keyboardController?.hide() }