HeadlessActivity
Overview
The HeadlessActivity class extends ComponentActivity and provides essential methods for handling the lifecycle and interactions of a SoftPOS transaction activity. This includes managing the UI state, handling NFC operations, and providing themes and UI components.
Methods
provideTheme
Override to provide the theme color for the activity.
Returns
| Return Type | Description |
|---|---|
ThemeProvider | The custom theme provider. |
Usage
import android.graphics.Color
import com.theminesec.sdk.headless.HeadlessActivity
import com.theminesec.sdk.headless.ui.ThemeProvider
class ClientHeadlessImpl : HeadlessActivity() {
override fun provideTheme(): ThemeProvider = CustomThemeProvider
}
object CustomThemeProvider : ThemeProvider() {
override fun provideColors(darkTheme: Boolean): HeadlessColors = if (darkTheme) {
HeadlessColorsDark().copy(
primary = Color.CYAN,
primaryForeground = Color.BLACK,
secondary = Color.BLUE,
secondaryForeground = Color.BLACK,
approval = Color.GREEN,
approvalForeground = Color.WHITE,
error = Color.RED,
errorForeground = Color.WHITE
)
} else {
HeadlessColorsLight().copy(
primary = Color.CYAN,
)
}
}
provideUi
Provides the UI components for the activity.
Returns
| Return Type | Description |
|---|---|
UiProvider | The custom UI provider. |
Usage
override fun provideUi(): UiProvider = CustomUiProvider()You can provide the UI with Compose or as an inflated traditional XML view, for more details, see:
Companion Object
contract
Creates an activity result contract for starting the HeadlessActivity.
Parameters
| Parameter | Type | Condition | Description |
|---|---|---|---|
cls | Class<out HeadlessActivity> | Required | The class of your custom HeadlessActivity. |
Returns
| Return Type | Description |
|---|---|
ActivityResultContract<PoiRequest, WrappedResult<Transaction>> | The activity result contract for the request PoiRequest and wrapped response WrappedResult<Transaction>. |
Usage
val contract = HeadlessActivity.contract(MyHeadlessActivity::class.java)
val launcher = registerForActivityResult(contract) { result ->
when (result) {
is WrappedResult.Success -> {
// Handle success
val transaction = result.value
}
is WrappedResult.Failure -> {
// Handle failure
val errorCode = result.code
val errorMessage = result.message
}
}
}
// Start the activity with a PoiRequest
val poiRequest = PoiRequest.ActionNew(/* initialize with appropriate parameters */)
launcher.launch(poiRequest)