PaymentCardCvvView

class PaymentCardCvvView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : ConstraintLayout

Convenience view for collecting CVV details from a user


Important:

User-entered CVV details are intentionally restricted to reduce PCI compliance scope


Styling/Branding

This view provides full support for styling and customization, which can be accomplished in the following ways:

  • Individual Style Attributes: Style specific aspects of the view individually

  • Text Appearance Style Attributes: Style text using Android's TextAppearance styles

  • Background Resource Attributes: Style the background using drawable resources


XML attributes can be set directly on the view or they can be defined in a style that gets applied to the view. The following examples each produce the same result:

Customizations applied directly to the view:

// NOTE: This example assumes a namespace definition of `app`. Replace
// this with your own namespace qualifier if you use something different
<com.olo.olopay.controls.PaymentCardCvvView
app:cvvBorderColor="@color/android:black"
app:cvvBorderWidth="2dp" />
/>

Customizations applied in a style:

// Style definition
<style name="MyCvvStyle">
<item name="cvvBorderColor">@color/android:black</item>
<item name="cvvBorderWidth">2dp</item>
</style>

// Layout file
<com.olo.olopay.controls.PaymentCardCvvView
style="@style/MyCvvStyle" />

Individual Style Attributes

These attributes are responsible for controlling a single aspect of the view. In the case of conflicting styles between these attributes and Text Appearance Style Attributes or Background Resource Attributes these attributes take precedence.

This view supports the following attributes for styling/branding purposes:

Important:

Some customizations are only possible when using Text Appearance Style Attributes or Background Resource Attributes. Refer to those sections for more information.


Text Appearance Attributes

Unlike the text attributes specified in Individual Style Attributes above, where each attribute specifies one aspect of the text's appearance, these attributes define the entire appearance through one attribute using a text appearance style. These styles can define text color, text size, hint text color, or even have different appearances defined based on the state of the view (e.g. focused or unfocused, enabled or disabled). For a full list of available attributes, see TextAppearance.

This view supports the following text appearance resource attributes for styling/branding purposes:

Important

Text attributes defined directly on this view (from the Individual Style Attributes section above) will override attributes defined by the textAppearance and errorTextAppearance attributes


Background Attributes

Unlike the background attributes specified in Individual Style Attributes above, where each attribute specifies one aspect of the background, these attributes define the entire background through one resource id. For example, a single drawable resource could be used that specifies padding, border color, border radius, and a gradient background, or even have different backgrounds defined based on the state of the view (e.g. focused or unfocused, enabled or disabled).

This view supports the following background resource attributes for styling/branding purposes:

Important

Background attributes from the Individual Style Attributes section above take precedence over these background attributes.


Constructors

Link copied to clipboard
constructor(context: Context, attrs: AttributeSet? = null)

Creates a new instance of PaymentCardCvvView

Properties

Link copied to clipboard

Set this to receive notifications when configuration changes occur

Link copied to clipboard

Set this to receive callbacks about card input events for this control

Link copied to clipboard

Get an ICvvTokenParams instance that can be used to create an ICvvUpdateToken instance. If the field is not valid this will return null.

Link copied to clipboard

XML Attribute: displayErrors

Link copied to clipboard

Provides a snapshot of the current state of the field

Link copied to clipboard

Whether or not the input field contains a valid CVV value

Functions

Link copied to clipboard
fun clear()

Clears the text field in this control

Link copied to clipboard

Dismisses the keyboard, if visible, and removes focus from the input field in this control

Link copied to clipboard

Gets the font of the error message

Link copied to clipboard
fun getErrorMessage(ignoreUneditedFieldErrors: Boolean): String

Get the error message that would be displayed if isValid is false. Note that isValid having a value of false does not necessarily mean there will be an error message (see ignoreUneditedFieldErrors param)

Link copied to clipboard

Gets the font of the CVV input

Link copied to clipboard
fun hasErrorMessage(ignoreUneditedFieldErrors: Boolean = true): Boolean

Check if there is an error message to be displayed.

Link copied to clipboard
fun requestFocus(showKeyboard: Boolean)

Moves focus to the input field

Link copied to clipboard
@RequiresApi(value = 29)
fun setCursorColor(color: Int)
@RequiresApi(value = 29)
fun setCursorColor(colorHex: String)

XML Attribute: cursorColor

Link copied to clipboard
fun setCvvBackgroundResource(resourceId: Int)

XML Attribute: cvvBackground

Link copied to clipboard
fun setCvvBackgroundStyle(backgroundColor: Int? = null, borderColor: Int? = null, borderWidthPx: Float? = null, borderRadiusPx: Float? = null)
@RequiresApi(value = 27)
fun setCvvBackgroundStyle(backgroundColorHex: String? = null, borderColorHex: String? = null, borderWidthPx: Float? = null, borderRadiusPx: Float? = null)

XML Attributes: cvvBackgroundColor, cvvBorderColor, cvvBorderWidth, cvvBorderRadius

Link copied to clipboard
fun setCvvPadding(startPx: Int?, topPx: Int?, endPx: Int?, bottomPx: Int?)

XML Attributes: cvvStartPadding, cvvTopPadding, cvvEndPadding, cvvBottomPadding

Link copied to clipboard
open override fun setEnabled(enabled: Boolean)

XML Attribute: android:enabled

Link copied to clipboard

XML Attribute: errorBackground

Link copied to clipboard
fun setErrorBackgroundStyle(backgroundColor: Int? = null, borderColor: Int? = null, borderWidthPx: Float? = null, borderRadiusPx: Float? = null)
@RequiresApi(value = 27)
fun setErrorBackgroundStyle(backgroundColorHex: String? = null, borderColorHex: String? = null, borderWidthPx: Float? = null, borderRadiusPx: Float? = null)

XML Attributes: errorBackgroundColor, errorBorderColor, errorBorderWidth, errorBorderRadius

Link copied to clipboard

Sets the error font for the error message

Link copied to clipboard
fun setErrorGravity(gravityPosition: Int)

XML Attribute: errorGravity

Link copied to clipboard
fun setErrorPadding(startPx: Int?, topPx: Int?, endPx: Int?, bottomPx: Int?)

XML Attributes: errorStartPadding, errorTopPadding, errorEndPadding, errorBottomPadding

Link copied to clipboard
fun setErrorTextAppearance(resourceId: Int)

XML Attribute: errorTextAppearance

Link copied to clipboard
@RequiresApi(value = 27)
fun setErrorTextColor(colorHex: String)

XML Attribute: errorTextColor

Link copied to clipboard

XML Attribute: errorTextSize

Link copied to clipboard
fun setFont(font: Typeface)

Sets the font for the CVV input

Link copied to clipboard
fun setGravity(gravityPosition: Int)

XML Attribute: android:gravity

Link copied to clipboard
fun setHintText(hint: String)

XML Attribute: cvvHint

Link copied to clipboard
fun setHintTextColor(color: Int)
@RequiresApi(value = 27)
fun setHintTextColor(colorHex: String)

XML Attribute: hintTextColor

Link copied to clipboard
fun setTextAppearance(resourceId: Int)

XML Attribute: textAppearance

Link copied to clipboard
fun setTextColor(color: Int)
@RequiresApi(value = 27)
fun setTextColor(colorHex: String)

XML Attribute: textColor

Link copied to clipboard
fun setTextSize(size: Float)

XML Attribute: textSize

Link copied to clipboard
fun setVerticalSpacing(spacingPx: Int)

XML Attribute: verticalSpacing