DocumentationRecipesAPI ReferenceChangelog
Documentation

Warmup

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