Migration to version 1.4.*
All SDK Components
All SDK components (SmartCapture Document, SmartCapture Face, SmartCapture NFC, and MJCS) now support both landscape and portrait and no longer need to be locked to portrait. In the case of the face camera, the landscape support only extends so far as to ask the user to rotate back to portrait (see Face Camera FAQ).
If locking to portrait is desired this can still be done on the implementation side by locking an activity to portrait within the manifest (this may be removed in an upcoming version of the android OS).
Additionally all SDK components now target Android API 36.
MJCS
MJCS screen injections
As part of our work to modernize our Android SDKs, we have redesigned MJCS to use compose more directly internally. Most of how MJCS is integrated remains unchanged, however the CustomerJourneyNavigator is now deprecated in favor of CustomerJourneyNavigatorComposable. This enables the same screen injection as CustomerJourneyNavigator and more, now using direct compose instead of fragments. Utilizing Compose in place of fragments allows us to both make our code more standardized and maintainable, as well as enables future UI customization improvements.
Summary
Variables instead of functions.
actionBefore->prescreenInjectionMaponUploadStarted->processingViewMapactionBeforeCancel->cancelConfirmationViewandshowCancelConfirmationPrompt
Class signature
data class CustomerJourneyNavigatorComposable(
/**
* Whether a journey should show a prompt to the user confirming that they wish to cancel
* the journey when the user tries to cancel.
*/
var showCancelConfirmationPrompt: Boolean = false,
/**
* If [showCancelConfirmationPrompt] is true, a default "Are you sure you want to cancel
* the journey?" prompt will be shown. An implementor may override that with their own
* cancel prompt by supplying this composable function. The composition should allow a user
* to select whether to cancel the journey or return to the journey.
*/
var cancelConfirmationView: (@Composable (
/**
* true = yes, cancel the journey
* false = no, return to the journey
*/
userResponse: (Boolean) -> Unit
) -> Unit)? = null,
/**
* Allows for overriding processing screens on a per step basis.
*/
var processingViewMap: Map<Action, @Composable (() -> Unit)>? = null,
/**
* Allows for a screen to be shown prior to any step in the journey by providing a map of
* [Action] to Composable functions. This can be used to present additional guidance or
* explanations to the end user. When ready to proceed to the step (usually when the
* user clicks some type of confirm/continue button) invoke proceedToNextStep from within
* the composition.
*/
var prescreenInjectionMap: Map<Action,
@Composable (proceedToNextStep: () -> Unit) -> Unit>? = null
): Serializable
Other Changes
This release also includes a couple other MJCS related changes that do not require any code changes by customers:
- Default processing screen format is more standardized
- The processing screens will now show a more specialized animation based on what is being processed
- Background color is now more standardized across the SDK
- A default cancellation confirmation screen can now be enabled
- POA document camera now uses the same camera code and UI as the regular document camera
- Lottie has been removed as a dependency
NFC Scanning/Ozone
No code changes needed, but does contain some changes worth noting:
- Guidance screen has been redesigned and simplified
- Lottie has been removed as a dependency
Localization
Clients who localize the SDK should review the strings as some strings have been added/removed/changed.
- See: Ozone Customization
- See: Face Camera Customization
- See: MJCS Customization