Skip to main content

Indikátor načítania

SecureLoadingIndicator (Jetpack Compose) a SecureLoadingView (XML/View) jsou volitelné komponenty knižnice zobrazující animovaný indikátor načítania počas spracovania platby. Po navázání na ComgateSecureSession se komponenta zobrazuje a skrývá automaticky v závislosti na stavu platby.

Tip

Komponenta je volitelná — platba proběhne korektně i bez ní. Slouží výhradne k vizuální spätnej väzbe pro používateľe.

Struktura

Indikátor načítanie se skládá ze dvou vizuálních prvků:

  • Animovaný spinner — kruhový spinner s plynule otáčejícím se obloukem nad statickou dráhou
  • Textový popisek — volitelný text zobrazený pod spinnerem; predvolené text se automaticky odvozuje z jazyka session

Ve predvoleném stavu je komponenta skrytá (visibility GONE) a zobrazí se až pri začatí spracovania platby.

Použití v Jetpack Compose

import cz.comgate.sdk.compose.*

val loadingState = rememberLoadingIndicatorState(session)

SecureLoadingIndicator(
state = loadingState,
modifier = Modifier
.fillMaxWidth()
.padding(top = 12.dp)
)

rememberLoadingIndicatorState(session) vytvoří LoadingIndicatorState, automaticky naváže komponentu na session a zapamatuje ji po dobu rekomposic. Není třeba volat žádnou inicializaci navíc.

Použití v XML (View)

Přidejte SecureLoadingView do layoutu:

<cz.comgate.sdk.SecureLoadingView
android:id="@+id/loadingView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
app:loadingSpinnerColor="#1E88E5"
app:loadingTrackColor="#BBDEFB"
app:loadingStrokeWidth="5dp"
app:loadingSpinnerSize="52dp"
app:loadingBackgroundColor="#F5F9FF"
app:loadingCornerRadius="12dp"
app:loadingPaddingHorizontal="16dp"
app:loadingPaddingVertical="20dp" />

Poté v kódu aktivity alebo fragmentu naváže komponentu na session:

binding.loadingView.setup(session)

Automatická integrace se session

Po navázání (setup(session) alebo rememberLoadingIndicatorState(session)) se komponenta chová automaticky:

  • Zobrazí se, jakmile zahájí spracovania platby (používateľ stiskl platební tlačidlo)
  • Skryje se, jakmile dorazí terminální výsledek platby (Paid, Cancelled, Failed, alebo Pending)

Automatické chování lze kedykoľvek zakázat — například ak si zobrazení načítanie řídíte sami:

// Compose (přes state)
loadingState.isLoadingEnabled = false

// View
binding.loadingView.isLoadingEnabled = false
Informácie

Pri isLoadingEnabled = false jsou metody show() / hide() stále plně funkční. Zakázáno je iba automatické zobrazenie řízené stavem platby.

Manuální ovládání

Komponentu lze ovládat nezávisle na session — například pro vlastní načítací scénáře nesouvisející s platbou:

// Compose
loadingState.show()
loadingState.hide()

// View
binding.loadingView.show()
binding.loadingView.hide()

Překlad textového popisku

Predvolený text pod spinnerem je automaticky odvozený z jazyka zvolené platební session — žádné ruční nastavenie není nutné.

Vlastní text popisku lze nastavit takto:

// Compose (přes LoadingIndicatorState)
loadingState.setLoadingText("Zpracováváme platbu…")

// View
binding.loadingView.setLoadingText("Zpracováváme platbu…")

Po nastavenie vlastního textu se automatický překlad ze session na tento popisek už neuplatní — ani pri změně jazyka platby.

Popisek lze skryť předáním null alebo prázdného reťazca:

loadingState.setLoadingText(null)

Stylování

Metody

Všechny níže uvedené metody jsou dostupné v update bloku composable SecureLoadingIndicator (přímý přístup k instanci SecureLoadingView) i pri přímém volání na View.

Podmnožina označená jako iba View není exponována přes LoadingIndicatorState ani přes update blok Compose.

MetodaParametrPopis
setSpinnerColor(color)IntFarba otáčejícího se oblouku.
setTrackColor(color)IntFarba statické dráhy spinneru.
setStrokeWidthDp(dp)FloatTloušťka oblouku i dráhy v dp.
setSpinnerSizeDp(dp)FloatPrůměr spinneru v dp.
setLoadingText(text)String?Text popisku pod spinnerem. null alebo "" popisek skryje.
setLoadingTextColor(color)IntFarba textu popisku.
setLoadingTextSizeSp(sp)FloatVelikost textu popisku v sp.
setLoadingBackgroundColor(color)IntFarba pozadí celé komponenty.
setLoadingCornerRadiusDp(dp)FloatZaoblení rohů pozadí v dp.
setLoadingPaddingDp(horizontalDp, verticalDp)Float, FloatVnitřní odsazení komponenty v dp.
setLoadingTextGapDp(dp)FloatMezera mezi spinnerem a popiskem v dp. (iba View)
setLoadingFontFamily(family)StringRodina písma popisku (napr. "sans-serif-medium"). (iba View)
setLoadingTypeface(typeface)TypefacePísmo popisku pomocí instance Typeface. (iba View)
Informácie

LoadingIndicatorState v Compose exponuje zkrácenou sadu metod: setSpinnerColor, setTrackColor, setStrokeWidthDp, setSpinnerSizeDp, setLoadingText, setLoadingTextColorsetLoadingTextSizeSp. Zbývající metody (pozadí, zaoblenie rohů, odsazení atd.) jsou dostupné výhradne přes update blok — viz ukázka níže.

Příklad v Compose (update blok)

SecureLoadingIndicator(
state = loadingState,
modifier = Modifier.fillMaxWidth(),
update = {
setSpinnerColor(Color.parseColor("#FF0000"))
setTrackColor(Color.parseColor("#FFEBEE"))
setStrokeWidthDp(4f)
setSpinnerSizeDp(48f)
setLoadingBackgroundColor(Color.WHITE)
setLoadingCornerRadiusDp(12f)
setLoadingPaddingDp(16f, 20f)
}
)

XML atribúty

XML atribútFormátPredvolené hodnotaPopis
app:loadingSpinnerColorcolor#4287f5Farba otáčejícího se oblouku.
app:loadingTrackColorcolor#E0E0E0Farba statické dráhy spinneru.
app:loadingStrokeWidthdimension4dpTloušťka oblouku i dráhy.
app:loadingSpinnerSizedimension48dpPrůměr spinneru.
app:loadingTextstring(překlad session)Vlastní text popisku. Ak není uveden, použije se přeložený text ze session.
app:loadingTextColorcolor#666666Farba textu popisku.
app:loadingTextSizedimension14spVelikost textu popisku.
app:loadingTextGapdimension8dpMezera mezi spinnerem a popiskem.
app:loadingBackgroundColorcolorPrůhlednáFarba pozadí celé komponenty.
app:loadingCornerRadiusdimension0dpZaoblení rohů pozadí.
app:loadingPaddingHorizontaldimension16dpHorizontální vnútorné odsadenie.
app:loadingPaddingVerticaldimension16dpVertikální vnútorné odsadenie.
app:loadingEnabledbooleantruePovoluje/zakazuje automatické zobrazení pri spracovania platby.