Android Migration
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
compileOptions
of the gradle file, setisCoreLibraryDesugaringEnabled
(Kotlin) orcoreLibraryDesugaringEnabled
(Groovy) flag. - In
dependencies
section, addcoreLibraryDesugaring
dependency, 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.oauthclient
package tocom.getsensibill.rest.client.v1.oauth
package. - Change
com.getsensibill.capturestandalone.models.CaptureConfig
withcom.getsensibill.capturestandalone.config.CaptureConfig
- Change
CaptureConfig.defaultConfig
toCaptureConfig.defaultReceiptCaptureConfig
- Change
The
CaptureFlowState.Transacting
state 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, deprecated
com.getsensibill.core.InitializationBuilder
now requiresTokenProvider
to be passed to it in constructor. Previously it was passed using anauthTokenProvider
method 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)