NowSDKConfiguration class - Android

  • Release version: Xanadu
  • Updated August 1, 2024
  • 1 minute to read
  • The NowSDKConfiguration class contains configuration information needed to initialize the NowSDK.

    Table 1. Properties
    Name Type Description
    authorizationProvider NowSDKAuthorizationProviding Delegate object that is responsible for providing authorization tokens to the NowSDK upon request.
    logLevel NowLogLevel Level of log messages for the associated logger to store.
    Valid values (case-sensitive):
    • Debug
    • Error
    • Fatal
    • Info
    • None
    permissionDelegate DevicePermissionDelegate

    Delegate object called by the NowSDK to request permission from the host application to show system dialog for requesting the indicated device permission.

    For example:
    override fun canRequestPermission(permission: DevicePermission): Boolean =
      when (permission) {
        DevicePermission.Camera -> true
        DevicePermission.Microphone -> false
      }
    }

    NowSDKConfiguration - NowSDKConfiguration(authorizationProvider: NowSDKAuthorizationProviding, permissionDelegate: DevicePermissionDelegate, logLevel: NowLogLevel)

    Creates a new NowSDKConfiguration object.

    Table 2. Parameters
    Name Type Description
    authorizationProvider NowSDKAuthorizationProviding Delegate object that is responsible for providing authorization tokens to the NowSDK upon request.
    permissionDelegate DevicePermissionDelegate

    Delegate object called by the NowSDK to request permission from the host application to show system dialog for requesting the indicated device permission.

    For example:
    override fun canRequestPermission(permission: DevicePermission): Boolean =
      when (permission) {
        DevicePermission.Camera -> true
        DevicePermission.Microphone -> false
      }
    }
    logLevel NowLogLevel Level of log messages for the associated logger to store.
    Valid values (case-sensitive):
    • Debug
    • Error
    • Fatal
    • Info
    • None
    Table 3. Returns
    Type Description
    None

    The following code example shows how to call this function.

    class SampleApplication : Application(), NowSDKAuthorizationProviding, DevicePermissionDelegate {
    
        private val nowSdkSettings = NowSDKSettings(
            instanceBaseURL = "https://instance-name.service-now.com",
            clientId = "client_id",
            user = "user"
        )
    
        private val coroutineScope = CoroutineScope(Dispatchers.IO)
    
        private val nowSDKConfiguration = NowSDKConfiguration(this, this, NowLogLevel.Debug)
        override fun onCreate() {
            super.onCreate()
    
            NowSDK.configure(this, nowSDKConfiguration)
        }
    
    
        override fun requestAuthorization(
            instanceURL: URL,
            callback: Consumer<List<AuthorizationToken>?>
        ) {
            coroutineScope.launch {
                when {
                    nowSdkSettings.user.isNullOrBlank().not() -> authorizeWithJWT(
                        callback = callback,
                        user = nowSdkSettings.user,
                        clientId = nowSdkSettings.clientId
                    )
    
                    else -> authorizeWithGuest(callback = callback)
                }
            }
        }
    
        override fun canRequestPermission(permission: DevicePermission): Boolean {
            return true
        }
    }