Android Migration
From 2025.0.0 to 2025.0.1
Backward compatibility was maintained, however please check the following:
- Ensure compatibility with Gradle 9.2.0+ and AGP 8.13.1+
- If using Capture Flow, validate error handling in your integration. While SDK’s APIs maintained backward compatibility, the error handling was improved. As a result some error states were not reported to the caller, now will be reported (as they should be).
CaptureFlowState.Transactingis no longer deprecated.
From 2023.1.5 to 2025.0.0
No changes are required.
From 2023.0.0…2023.1.4 to 2023.1.5
Platform compatibility have changed:
- Android 7.x (SDK Version 24) is no longer supported, minimal supported Android version is 8.0 (SDK Version 26).
- Android Gradle Plugin version was updated from 8.3 to 8.6
See Supported Platforms page for complete information.
Because Sensibill SDK uses some Java 11 language APIs, the app’s Gradle configuration needs to be updated to enable desugaring support, as explained on Library Desugaring page:
- In
compileOptionsof the gradle file, setisCoreLibraryDesugaringEnabled(Kotlin) orcoreLibraryDesugaringEnabled(Groovy) flag. - In
dependenciessection, addcoreLibraryDesugaringdependency, with correct library name and version.
- In
The following permissions are no longer required and should be removed from the AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
From 2022.0.11 to 2023.1.4
Replace the references:
- Change
com.getsensibill.oauthclientpackage tocom.getsensibill.rest.client.v1.oauthpackage. - Change
com.getsensibill.capturestandalone.models.CaptureConfigwithcom.getsensibill.capturestandalone.config.CaptureConfig - Change
CaptureConfig.defaultConfigtoCaptureConfig.defaultReceiptCaptureConfig
- Change
The
CaptureFlowState.Transactingstate was deprecated, and should be replaced withCaptureFlowState.DocumentUploading.For example the code:
is CaptureFlowState.Transacting -> { val transaction = with(newState.transaction) {should be replaced with:
is CaptureFlowState.DocumentUploading -> { val update = with(newState.update) { ... is CaptureFlowState.Transacting -> { // No action, deprecatedcom.getsensibill.core.InitializationBuildernow requiresTokenProviderto be passed to it in constructor. Previously it was passed using anauthTokenProvidermethod of the builder.Replace the following code:
val builder = InitializationBuilder(this, environment) val tokenProvider = TokenProvider.fromLambda {...} builder.authTokenProvider(tokenProvider)with this code:
val tokenProvider = TokenProvider.fromLambda {...} val builder = InitializationBuilder(this, environment, tokenProvider)