Releases: openMF/mifos-passcode-cmp
Releases · openMF/mifos-passcode-cmp
2.1.0
What's Changed
- Biometrics button on passcode screen by @TheKalpeshPawar in #67
- Handel cancellation of bio metric prompt by user && Critical bug fixes by @TheKalpeshPawar in #70
- Simplify PasscodeManager API and decouple passcode/biometrics libraries by @TheKalpeshPawar in #73
Full Changelog: 2.0.5...breaking-changes
Breaking Changes
PasscodeManager API overhaul:
- Constructor no longer takes
CoroutineScope. Now takesisExternalAuthEnabled: Booleanparameter. PasscodeActionsealed interface removed. Use direct methods instead:passcodeManager.changePasscode()passcodeManager.logOut()passcodeManager.disableExternalAuth()passcodeManager.notifyExternalAuthSuccess()passcodeManager.setExternalAuthEnabled(enabled)
PasscodeEventsealed interface removed. UsePasscodeResultviaonResultcallback.trySendAction()removed.rememberPasscodeManager()removed. Scope as a singleton via your DI framework..initialize()removed. Initialization happens in constructor.
PasscodeScreen signature changed:
- 7 individual callbacks (
onPasscodeConfirm,onForgotButton,onPasscodeCreation,onPasscodeChanged,onPasscodeRejected,onDisableExternalAuth,onExternalAuthError) replaced by singleonResult: (PasscodeResult) -> Unit. biometricButtonparameter renamed toexternalAuthButton.
PasscodeStorageAdapter:
saveRegistrationData(),loadRegistrationData(),deleteRegistrationData()are deprecated. UseBiometricStorageAdapterfrom the biometrics library instead.
Naming:
- All
Biometric*names inPasscodeAction,PasscodeEvent,PasscodeStep,PasscodeStaterenamed toExternal*equivalents (e.g.isBiometricEnabled->isExternalAuthEnabled,DisableBiometrics->DisableExternalAuth).
Migration
Before:
// Constructor
PasscodeManager(adapter, MainScope()).initialize(isExternalAuthEnabled)
// Sending actions
passcodeManager.trySendAction(PasscodeAction.ChangePasscode)
passcodeManager.trySendAction(PasscodeAction.BiometricUnlockSuccess)
// PasscodeScreen
PasscodeScreen(
passcodeManager = passcodeManager,
onPasscodeConfirm = { navigate(Home) },
onPasscodeCreation = { navigate(Setup) },
onForgotButton = { navigate(Login) },
// ... 4 more callbacks
)After:
// Constructor
PasscodeManager(adapter, isExternalAuthEnabled)
// Direct methods
passcodeManager.changePasscode()
passcodeManager.notifyExternalAuthSuccess()
// PasscodeScreen
PasscodeScreen(
passcodeManager = passcodeManager,
onResult = { result ->
when (result) {
PasscodeResult.Verified -> navigate(Home)
PasscodeResult.Created -> navigate(Setup)
PasscodeResult.Forgotten -> navigate(Login)
PasscodeResult.Changed -> navigate(Home)
PasscodeResult.ExternalAuthDisabled -> popBack()
PasscodeResult.Rejected -> { }
}
},
)Biometrics Library:
AuthenticationResult.UserCancelledadded —whenblocks onAuthenticationResultmust handle this new variant.RegistrationResult.UserCancelledadded —whenblocks onRegistrationResultmust handle this new variant.
passcode-2.0.5, biometrics-2.0.4
What's Changed
- (chore) kotlin and cmp versiona downgrade by @TheKalpeshPawar in #66
Full Changelog: passcode-v2.0.4...2.0.5
passcode-2.0.4
What's Changed
- Removed skip passcode and updated documentation by @TheKalpeshPawar in #65
Full Changelog: 2.0.3...passcode-v2.0.4
2.0.3
What's Changed
- Bug Fix: Fix change passcode and logout functionality by @TheKalpeshPawar in #64
Full Changelog: Release...2.0.3
2.0.0
What's Changed
- Created first README.md by @TheKalpeshPawar in #14
- Refactor App Lock Architecture: Decouple Datastore, Separate Auth Screens, and Implement App Lock Selection by @TheKalpeshPawar in #16
- Removed TargetFormat.AppImage by @TheKalpeshPawar in #18
- Fixed icons and text alignment in AuthOption card of ChooseAuthOption Screen. by @TheKalpeshPawar in #19
- Fragment activity is now provided by CompositionLocal by @TheKalpeshPawar in #21
- Migrated old MifosPasscode impl from Mifos Pay here with some required changes. by @TheKalpeshPawar in #22
- Reusing the original passcode impl of this library. by @TheKalpeshPawar in #23
- Fixed "failed to launch jvm" issue for desktop and resolved some import issues that were created because of moving files. by @TheKalpeshPawar in #24
- Clean the library and provided abstaract implementation for everything. by @TheKalpeshPawar in #28
- Fixed some ui flow issues in sample app and improved it. by @TheKalpeshPawar in #29
- Some Ui changes in the DeviceAuthScreen by @TheKalpeshPawar in #30
- Fix: Desktop app not working by @TheKalpeshPawar in #31
- Added jsMain as a new source set sample app. It is working. by @TheKalpeshPawar in #32
- Fix: Try again was showing only once even for multiple failed passcode attempts by @TheKalpeshPawar in #33
- Improved Support: The device specific authentication is now supported on API <=29 for android. by @TheKalpeshPawar in #34
- Updating readme by @TheKalpeshPawar in #37
- Readme Update by @TheKalpeshPawar in #38
- Feature: Support for platform authentication on Windows. by @TheKalpeshPawar in #36
- Add iOS build support for Compose Multiplatform module by @HekmatullahAmin in #41
- Implement biometric authentication support for iOS by @HekmatullahAmin in #42
- Feture: Allow user to select passcode length, 4&6 digit. by @TheKalpeshPawar in #43
- Update LICENSE by @DavidH-1 in #48
- Modulaized the project. by @TheKalpeshPawar in #49
- Fix library by @TheKalpeshPawar in #51
- Removed the sample application module. by @TheKalpeshPawar in #52
- Remove unnecessary modules by @TheKalpeshPawar in #53
- Removed
DESIGNSYSTEM_ANALYSIS.mdand refactoredlibs.versions.toml. by @TheKalpeshPawar in #54 - Add build logic by @TheKalpeshPawar in #55
- Reimplemented the whole passcode handeling logic implemented and the ability to change passcode. by @TheKalpeshPawar in #56
- Getting library ready to publish. by @TheKalpeshPawar in #57
New Contributors
- @TheKalpeshPawar made their first contribution in #14
- @HekmatullahAmin made their first contribution in #41
- @DavidH-1 made their first contribution in #48
Full Changelog: 1.0.5...2.00
1.0.5: Merge pull request #4 from openMF/feat_sample
Feature sample compose multiplatform project
1.0.4
Updated publish.yml