--- title: "Upgrading from 9.0.0 to 9.1.0" slug: "s3suite94-android-upgrading-from-900-to-910" updated: 2026-10-27T18:41:44Z published: 2026-10-27T18:41:44Z canonical: "docs.onespan.com/s3suite94-android-upgrading-from-900-to-910" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.onespan.com/llms.txt > Use this file to discover all available pages before exploring further. # Upgrading from 9.0.0 to 9.1.0 - Set the App SDK version number in your app's config.json file to "9.1.0". - AuthenticationController.onRefreshPasskey() is deprecated. You can continue to use it, but we recommend calling AuthenticationController.onRefresh() instead. - IAuthenticationLiveData.onPasskeyCheckResult() is deprecated. You can continue to use it, but we recommend calling the following methods instead: - IAuthenticationLiveData.showOobMethod() - IAuthenticationLiveData.showPasskeyMethod() - Call OperationResultListener.onSessionDataUpdated() once to notify all active controllers on session refresh events. This replaces calls to setSessionData() from the following classes: AuthenticationController, RegistrationController, SuggestRegistrationController, ManageRegistrationsController and FidoRegistrationController. - AppSDKConfig.googleApiKey is obsolete and can be deleted. - The AdaptiveUI.transact() function now handles all the complex functionality and UI that used to require a call to AuthenticationController.enable(AutoStart.AUTO_ANY) followed by a call to AuthenticationController.enable(AutoStart.AUTO_NONE). You can now replace these 2 calls to AuthenticationController.enable() with a single call to AdaptiveUI.transact(): ```kotlin adaptiveUI.transact(activityProxy, transactionId, sessionData, extras) ``` - Move the friendly names for authentication methods from the AppSDKConfig.policyMap variable to your JSON UI configuration file as described in [Customizing Strings, Styles, Images and more](/dpoa/docs/s3suite94-customizing-strings-styles-images-and-more). - If you created an mfac_config.json file containing an asmfixes object, edit the asmfixes object in the following way. Move the information that gets displayed to the end user for each Authenticator Attestation ID (AAID) from the asmFixes object in the mfac_config.json file to the authenticatorMap object in your JSON UI configuration file as described in [Customizing Strings, Styles, Images and more](/dpoa/docs/s3suite94-customizing-strings-styles-images-and-more). Information that the user doesn't see remains in the mfac_config.json file. Move the "title", "description" and "icon" parameters from mfac_config.json to your JSON UI configuration file. For example, in App SDK version 9.0.0, all of the information for the authenticator with AAID "00AB#CDEF" was in the asmfixes object in the mfac_config.json file: ```json asmFixes: {    "00AB#CDEF": {        "noExtensions": "true",        "userVerification": "false"        "title": "faceprint",        "description": "Sensory Faceprint Authenticator",        "icon": "campera.jpg"    } } ``` Now in App SDK version 9.1.0, the information for the authenticator with AAID "00AB#CDEF" is split between the asmfixes object in the mfac_config.json file and the authenticatorMap object in your [JSON UI configuration file](/dpoa/docs/s3suite94-using-customize-the-ui-in-the-app-sdk-using-json). Information that the user doesn't see remains inside the mfac_config.json file: ```json asmFixes: {    "00AB#CDEF": {        "noExtensions": "true",        "userVerification": "false"    } } ``` Information that the user sees is moved into your JSON UI configuration file: ```json authenticatorMap: {    "00AB#CDEF": {        "title": "faceprint",        "description": "Sensory Faceprint Authenticator",        "icon": "campera.jpg",    } } ``` - If you defined a custom class that implements a Live Data interface, your custom class should also extend the corresponding Base Fragment: | **Live Data Interface** | **Base Fragment** | | --- | --- | | ```kotlin IAuthenticationLiveData ``` | ```kotlin BaseAdaptiveAuthFragment ``` | | ```kotlin IFidoRegistrationLiveData ``` | ```kotlin BaseFidoRegFragment ``` | | ```plaintext IRegistrationLiveData ``` | ```plaintext BaseAdaptiveRegFragment ``` | | ```kotlin IManageRegistrationsLiveData ``` | ```kotlin BaseManageFragment ``` | | ```kotlin ISuggestRegistrationLiveData ``` | ```kotlin BaseSuggestRegFragment ``` | In order to make your custom Fragment implementation available to the SDK, extend the corresponding UI Factory class. Your application then calls the setInstance() method of the corresponding UI Factory class during application initialization to provide an instance of your custom UI factory implementation. | **Base Fragment** | **UI Factory** | | --- | --- | | ```kotlin BaseAdaptiveAuthFragment UserNameFragment ``` | ```kotlin AdaptiveAuthUIFactory ``` | | ```kotlin BaseFidoRegFragment ``` | ```kotlin FidoRegUIFactory ``` | | ```kotlin BaseAdaptiveRegFragment ``` | ```kotlin AdaptiveRegUIFactory ``` | | ```kotlin BaseManageFragment ``` | ```kotlin ManageUIFactory ``` | | ```kotlin BaseSuggestRegFragment ``` | ```kotlin SuggestRegUIFactory ``` | See the corresponding subsection of [Replacing the UI](/dpoa/docs/s3suite94-customizing-strings-styles-images-and-more) section for more details.