Example Code

Example App using the SDK



// creating custom settings
val settings = SdkSettings.Builder()
// sdk init
val sdkClient = ActiveCustomerSDKFactory.init(

val userLogoutCallback = object : UserLogoutCallback {
        override fun onLoggedOut() {
            Log.d(TAG, "user logged out")

// observe login state
sdkInstance.isLoggedIn().observe(this, Observer { isLoggedIn -> onLoginStateChanged(isLoggedIn) })
// observe online state
sdkInstance.isOnline().observe(this, Observer { isOnline -> onOnlineStateChanged(isOnline) })
// observe active user order and states (start/arrive/left/done)
sdkInstance.activeTask().observe(this, Observer { onActiveOrderChanged(it) })


// login
customerActions.login(token, secret, region, object : ResultCallback<LoginResult> {
            override fun onResult(result: LoginResult) {
                Log.i(TAG, "login result=$result, success=${result.success()}")

Pickup Flow

The taskId param in the following examples is the id you obtain from bringg servers after creating the task.

// start the task
customerActions.startTask(taskId, object : ResultCallback<StartTaskResult> {
    override fun onResult(result: StartTaskResult) {
        Log.i(TAG, "order start result=$result, success=${result.success()}")
// arrive (manually)
val result = customerActions.arriveToWaypoint()
Log.i(TAG, "arrive result=$result, success=${result.success()}")
// leave (manually)
val result = customerActions.leaveWaypoint()
Log.i(TAG, "leave result=$result, success=${result.success()}")

Example Flow in a Gif

The Following shows a very basic ui that interacts with the SDK to go through the whole flow.