[MS-1485] MFID, "Skip reason" screen rework. Its visibility and contents can be controlled with custom config#1730
Merged
alexandr-simprints merged 3 commits intoJun 30, 2026
Conversation
…trolled by 'mfidDefaultSkipReason' and 'mfidSkipReasonsHideHasNumber' flags
There was a problem hiding this comment.
Pull request overview
This PR adds experimental project configuration flags to control MFID “Skip reason” behavior in the external-credential flow: optionally hiding the GG2-specific “Has number, no document” reason and optionally bypassing the skip-reason screen entirely by auto-recording an OTHER skip reason with a configured free-text value.
Changes:
- Added
mfidDefaultSkipReason(string) andmfidSkipReasonsHideHasNumber(boolean) parsing inExperimentalProjectConfiguration, plus unit tests. - Updated MFID external-credential UI/flow to (a) hide the “Has number, no document (Booklet)” option when configured and (b) bypass the skip-reason screen when a default skip reason is configured.
- Refactored skip confirmation bottom sheet into a reusable
SkipScanConfirmationDialogand extended ViewModel tests for the new behavior.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| infra/config-store/src/main/java/com/simprints/infra/config/store/models/ExperimentalProjectConfiguration.kt | Adds typed accessors + keys for the two new experimental MFID flags. |
| infra/config-store/src/test/java/com/simprints/infra/config/store/models/ExperimentalProjectConfigurationTest.kt | Adds coverage ensuring the new flags parse safely from custom config. |
| feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/controller/ExternalCredentialViewModel.kt | Reads experimental flags and implements bypassSkipScreen() to emit a skipped result with OTHER. |
| feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/controller/ExternalCredentialViewModelTest.kt | Adds tests for bypass behavior and config reads. |
| feature/external-credential/src/main/java/com/simprints/feature/externalcredential/view/SkipScanConfirmationDialog.kt | Introduces a dedicated bottom-sheet dialog for skip confirmation. |
| feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/select/ExternalCredentialSelectFragment.kt | Uses the new dialog and bypasses skip screen when mfidDefaultSkipReason is set. |
| feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/search/ExternalCredentialSearchFragment.kt | Adds back-press handling to show confirmation / bypass (or navigate to skip screen when not configured). |
| feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/skip/ExternalCredentialSkipFragment.kt | Hides the “has number, no document” reason based on the experimental flag. |
| feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/controller/ExternalCredentialControllerFragment.kt | Removes controller-level back handling for search, delegating to the search screen. |
meladRaouf
approved these changes
Jun 30, 2026
|
luhmirin-s
approved these changes
Jun 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



JIRA ticket
Will be released in: 2026.2.1
Notable changes
1. Controlling visibility of GG2-specific MFID skip reason with the
mfidSkipReasonsHideHasNumberflagmfidSkipReasonsHideHasNumberis a boolean flag withfalseas default value. When set totrue, HAS_NUMBER_NO_ID ("Has number, no document (Booklet)") reason is hidden. The remaining 7 reasons are shown.mfidSkipReasonsHideHasNumber = true

mfidSkipReasonsHideHasNumber = false

2. "Skip Reason" screen can be bypassed with the
mfidDefaultSkipReasonstringThis flag specifies the default MFID skip reason. If not empty, the "Skip Reason" screen is bypassed within the MFID flow, and ExternalCredentialSelectionEvent is saved with
skipReason = “OTHER”andskipOther=flag-valueVideo, Current MFID skip default behaviour:
mfidDefaultSkipReason=null.Video, "Skip Screen" is bypassed from the credential selection screen:
mfidDefaultSkipReason="Test MFID Default Skip Reason"Video, "Skip Screen" is bypassed from the credential search results screen:
_mfidDefaultSkipReason="Test MFID Default Skip Reason"In both cases the ExternalCredentialSelectionEvent is saved with

skipReason = “OTHER”andskipOther=Test MFID Default Skip Reason.Testing guidance
Test the behaviour of the "Skip Reason" screen using these flags in your custom project configuration:
Additional work checklist