build.gradle.ktsbuild.gradle.kts:dependencies { implementation("com.sovendus:android-sdk:1.0.5") }
@Composable fun YourScreen() { SovendusSDK.VoucherBenefits( config = SovendusConfig.Builder() .trafficSourceNumber(123) .trafficMediumNumber(456)
<com.sovendus.sdk.ui.xml.SovendusVoucherBenefitsView android:id="@+id/sovendus_benefits" android:layout_width="match_parent" android:layout_height="wrap_content" />
findViewById<SovendusVoucherBenefitsView>(R.id.sovendus_benefits).apply { config = SovendusConfig.Builder() .trafficSourceNumber(123) .trafficMediumNumber(456)
val testConfig = SovendusConfig.Builder() .sandbox(true) // Uses test data .build() SovendusSDK.VoucherBenefits(config = testConfig)
val config = SovendusConfig.Builder() .trafficSourceNumber(123) .trafficMediumNumber(456) .consumer(ConsumerData( firstName = "Max", email =
SovendusSDK.VoucherBenefits( config = config, onStateChanged = { state -> when (state) { is LoadingState.Loading -> showYourLoader() is LoadingState
BannerView to show a voucher banner in a dialog or overlay:@Composable fun BannerDialog() { var bannerRequested by remember { mutableStateOf(false) } var bannerReady by remember { mutableStateOf(false) }
val config = SovendusConfig.Builder() .trafficSourceNumber(123) .trafficMediumNumber(456) .onLinkOpened { url -> // Custom logic (e.g., Chrome Custom Tabs, in-app browser) openInCustomTabs(url
FontFamily.res/font/ directory (TTF or OTF format):app/src/main/res/font/
├── brand_regular.ttf
└── brand_bold.ttf
import androidx.compose.ui.text.font.Font import androidx.compose.ui.
import androidx.compose.ui.text.ExperimentalTextApi import androidx.compose.ui.text.font.FontVariation @OptIn(ExperimentalTextApi::class) val BrandVariableFontFamily = FontFamily(
fontFamily is not provided (or set to null), the SDK uses the system fontval config = SovendusConfig.Builder() .trafficSourceNumber(123) // Your real traffic source .trafficMediumNumber(456) // Your real traffic medium .debugMode(
@Composable fun CheckoutSuccessScreen() { SovendusSDK.VoucherBenefits( config = SovendusConfig.Builder() .trafficSourceNumber(123) .trafficMediumNumber(456)
@Composable fun CheckoutSuccessScreen() { SovendusSDK.VoucherBenefits( config = SovendusConfig.Builder() .trafficSourceNumber(123) .trafficMediumNumber(456)
class CheckoutSuccessActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout
.debugMode(true)VoucherBenefits component automatically shows:| API Returns | Display |
|---|---|
Products only | Product recommendation list |
Banner only | Voucher banner |
Both | Both with correct positioning |
Nothing | Empty (graceful handling) |
BannerView component shows a voucher banner card with:val config = SovendusConfig.Builder() .trafficSourceNumber(123) .trafficMediumNumber(456) .fontFamily(BrandFontFamily) // Custom font .build() SovendusSDK.VoucherBenefits(config = config)
adb logcat | grep SovendusSDK