DocumentationRecipesAPI ReferenceChangelog
Documentation

Warmup

Warmup ensures that the SoftPOS app and the runtime environment on the device are initialized and ready for transactions

Warmup calls the SoftPOS Application to start performing a series of runtime checks.

You can integrate in two UI environments:

  1. Traditional Activity / Fragment UI
  2. Modern Jetpack Compose UI

Warmup Request

Warmup Request do not take any parameters

Option 1 : WarmUp in Activity or Fragment

Use when : your screen is based on AppCompatActivity or Fragment.

class MainActivity : AppCompatActivity() {

    private val warmUpLauncher = registerForActivityResult(msaPosApi.warmUpContract()) { result ->
        when (result) {
            is PosResponse.Success -> {
                Log.d("WarmUp", "Success: ${result.rspCode} - ${result.rspMsg}")
            }
            is PosResponse.Failed -> {
                Log.e("WarmUp", "Failed: ${result.rspCode} - ${result.rspMsg}")
            }
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Trigger WarmUp
        triggerWarmUp()
    }

    private fun triggerWarmUp() {
        warmUpLauncher.launch()
    }
}

Option 2 : WarmUp in Jetpack Compose

Use when : your screen is implemented using Compose.

@Composable
fun WarmUpScreen(msaPosApi: MsaPosApi) {
    val context = LocalContext.current

    val warmUpLauncher = rememberLauncherForActivityResult(msaPosApi.warmUpContract()) { result ->
        when (result) {
            is PosResponse.Success -> {
                Log.d("WarmUp", "Success: ${result.rspCode} - ${result.rspMsg}")
            }
            is PosResponse.Failed -> {
                Log.e("WarmUp", "Failed: ${result.rspCode} - ${result.rspMsg}")
            }
        }
    }

    warmUpLauncher.launch();
}

Warmup Response

{
 "respCode" : "0",
 "rspMsg": "Success"
}

Response: PosResponse<T>

All responses from the POS Lib return as a sealed class:

sealed class PosResponse<T>(val rspCode: String, val rspMsg: String) : Serializable

Sub Types

TypeDescription
Success<Unit>Response: Completed successfully
Failed<Unit>Response: failed. Use rspCode, rspMsg for debugging