Android SDK UI Customization API
UI and Key Mapping Reference
This document describes the different customizable sections of the Programmable Wallet SDK customization API. To get the most flexibility out of the SDK, use this reference with the SDK API.
Text, Color, and Font Customization
For text-related customization, there are two types of customization, dynamic and static:
- For dynamic customization, update the source code's desired string, color, and font (as typeface).
- For Static customization, add or update the strings.xml file located at
src/main/res/values/strings.xml
. To avoid the static customization being overwritten by the dynamic customization, use the null value for the text argument when initializing with theTextConfig()
constructor, for example:
new TextConfig(null, color, typeface);
Please reference the UI screenshots below with each string’s mapping code, then use the mapping code to find the Resource.TextsKey
name in the Index Table for more detail of customization support and usage for each text string.
Note:
Some strings do not support static or dynamic customization for text, color, font and gradientColors using the
TextConfig()
constructor.The detail of supporting scope can be found in the index table and the note column. If the app still customizes those unsupported values, it will give a WARN level log printed to logcat, filtered with CustomizeChecker for log abstraction.

The correct usage for unsupported value when initializing with the TextConfig()
constructor is as follows:
new TextConfig("Your Text Here", null /*gradientColors*/, null); //color is 0 by default.
new TextConfig("", 0 /*color*/, null);
new TextConfig("Your Text Here");
New PIN Code
A1 / C1~C5

Confirm PIN Code
C6~C7

Enter PIN Code
A2 / C8~C9, C5-1, C5-2


Security Intros
A3~A4 / C10~C11
Security Questions Customization
Please reference the Security Question section in the SDK for how to customize the question by using setSecurityQuestions
method.
A5 / C12~C25


Security Summary
A6 / C26~C32
Security Confirm
C33~C37 / B1
Recover PIN Code
A7 / C39~C47
A Index Table - Resource.TextsKey
# | Resource.TextsKey | TextConfigs length | TextConfig.text | TextConfig.textColor | TextConfig.font | TextConfig.gradientColors | colors.xml | styles.xml | Note🔖 |
---|---|---|---|---|---|---|---|---|---|
A1 | newPinCodeHeadline | Free | ✅ | ✅🔖 | ✅ | ✅🔖 | circlepw_text_main | circlepw_heading3 | textColor will be applied if gradientColors is null. |
A2 | enterPinCodeHeadline | Free | ✅ | ✅🔖 | ✅ | ✅🔖 | circlepw_text_main | circlepw_heading3 | textColor will be applied if gradientColors is null. |
A3 | securityIntroHeadline | Free | ✅ | ✅🔖 | ✅ | ✅🔖 | circlepw_text_main | circlepw_heading4 | textColor will be applied if gradientColors is null. |
A4 | securityIntroLink | 2🔖 | ✅ | ✅🔖 | ✅🔖 | ❌ | circlepw_text_action | circlepw_body2 | TextConfigs: [DisplayText, URL]Only display when the array length is not less then 2 and the URL is not empty.Set color / font according to TextConfig[0]. |
A5 | securityQuestionHeaders | <= 5🔖 | ✅ | ✅🔖 | ✅🔖 | ❌ | circlepw_text_auxiliary | circlepw_body2 | TextConfigs over the length limit will be ignored. |
A6 | securitySummaryQuestionHeaders | Same as securityQuestionHeaders (A5) | ✅ | ✅ | ✅ | ❌ | circlepw_text_main2 | circlepw_heading5 | TextConfigs over the length limit will be ignored. |
A7 | recoverPinCodeHeadline | Free | ✅ | ✅🔖 | ✅ | ✅🔖 | circlepw_text_main | circlepw_heading3 | textColor will be applied if gradientColors is null. |
B Index Table - Resource.IconTextsKey
Use this Index Table to reference the Dynamic special Icon, Text, Color, and Font Customization. Both the icon image and the text fields are dynamically configured together.
Use RemoteImageSetter
or LocalImageSetter
for icon images:
- RemoteImageSetter constructor:
RemoteImageSetter(int drawableId, String url)
- LocalImageSetter constructor:
LocalImageSetter(int drawableId)
The SDK uses glide as the image loader for remote images. For the cache strategy, please see DiskCacheStrategy.AUTOMATIC.
# | Resource.IconTextsKey | TextConfigs length | TextConfig.text | TextConfig.textColor | TextConfig.font | TextConfig.gradientColors | colors.xml | styles.xml | Note🔖 |
---|---|---|---|---|---|---|---|---|---|
B1 | securityConfirmationItems | <= 4🔖 | ✅ | ✅ | ✅ | ❌ | circlepw_text_main | circlepw_body2 | TextConfigs over the length limit will be ignored. |
C Index Table - Resource.Key
Note:
The
gradientColors
field is not supported for the Keys in this table. If you dynamically set the color asgradientColor
, the effect will be ignored and theWARN
level log will be printed.
# | Resource.Key | string.xml | text | textColor | font | colors.xml | styles.xml | Note |
---|---|---|---|---|---|---|---|---|
C1 | circlepw_new_pincode_subhead | circlepw_new_pincode_subhead | ✅ | ✅ | ✅ | circlepw_text_auxiliary | circlepw_body2 | |
C2 | circlepw_pin_digit_config | ❌ | ❌ | ❌ | ✅ | circlepw_text_main | circlepw_pinDigitText | Normal |
circlepw_main_bt_background | Succeed | |||||||
circlepw_error | Failed | |||||||
C3 | circlepw_hide_pin | circlepw_hide_pin | ✅ | ✅ | ✅ | circlepw_text_action | circlepw_actionText | Normal |
circlepw_text_action_pressed | Pressed | |||||||
C4 | circlepw_show_pin | circlepw_show_pin | ✅ | ✅ | ✅ | circlepw_text_action | circlepw_actionText | Normal |
circlepw_text_action_pressed | Pressed | |||||||
C5 | circlepw_pincode_error_config | ❌🔖 | ❌🔖 | ✅ | ✅ | circlepw_error | circlepw_body2 | For text, see Error Message:incorrectUserPin(155112)userPinLocked(155119)pinCodeNotMatched(155703) |
C5-1 | circlepw_pin_remain_attemps_template | circlepw_pin_remain_attemps_template | ✅🔖 | ❌ | ❌ | ❌ | ❌ | e.g. You have %s attempts left. |
C5-2 | circlepw_pin_lock_period_template | circlepw_pin_lock_period_template | ✅🔖 | ❌ | ❌ | ❌ | ❌ | e.g. You’ve used up all PIN attempts. Please wait for %s mins to retry later.. |
C6 | circlepw_confirm_pincode_headline | circlepw_confirm_pincode_headline | ✅ | ✅ | ✅ | circlepw_text_main | circlepw_heading3 | |
C7 | circlepw_confirm_pincode_subhead | circlepw_confirm_pincode_subhead | ✅ | ✅ | ✅ | circlepw_text_auxiliary | circlepw_body2 | |
C8 | circlepw_enter_pincode_subhead | circlepw_enter_pincode_subhead | ✅ | ✅ | ✅ | circlepw_text_auxiliary | circlepw_body2 | |
c9 | circlepw_enter_pincode_forgot_pin | circlepw_enter_pincode_forgot_pin | ✅ | ✅ | ✅ | circlepw_text_action | circlepw_actionText | |
C10 | circlepw_security_intros_description | circlepw_security_intros_description | ✅ | ✅ | ✅ | circlepw_text_auxiliary2 | circlepw_body2 | |
C11 | circlepw_continue | circlepw_continue | ✅ | ✅ | ✅ | circlepw_main_bt_text | circlepw_mainButtonText | Normal |
circlepw_main_bt_text_pressed | Pressed | |||||||
circlepw_disabled_main_bt_text | Disabled | |||||||
C12 | circlepw_security_questions_title | circlepw_security_questions_title | ✅ | ✅ | ✅ | circlepw_text_main | circlepw_toolbarTitle | |
C13 | circlepw_security_questions_required_mark | circlepw_security_questions_required_mark | ✅ | ✅ | ✅ | circlepw_error | circlepw_metadata1 | |
C14 | circlepw_security_questions_question_input_config | ❌ | ❌ | ✅ | ✅ | circlepw_text_main | circlepw_body1 | |
C15 | circlepw_security_questions_question_placeholder | circlepw_security_questions_question_placeholder | ✅🔖 | ✅🔖 | ❌ | circlepw_placeholder | circlepw_body1 | Set TextView’s textColorHint and hint. Apply circlepw_security_questions_question_input_config (C14)’s font. |
C16 | circlepw_security_questions_answer_header | circlepw_security_questions_answer_header | ✅ | ✅ | ✅ | circlepw_text_auxiliary | circlepw_body2 | |
C17 | circlepw_security_questions_answer_input_config | ❌ | ❌ | ✅ | ✅ | circlepw_text_main | circlepw_body1 | |
C18 | circlepw_security_questions_answer_placeholder | circlepw_security_questions_answer_placeholder | ✅🔖 | ✅🔖 | ❌🔖 | circlepw_placeholder | circlepw_body1 | Set TextView’s textColorHint and hint. Apply circlepw_security_questions_answer_input_config (C17)’s font. |
C19 | circlepw_security_questions_answer_hint_header | circlepw_security_questions_answer_hint_header | ✅ | ✅ | ✅ | circlepw_text_auxiliary | circlepw_body2 | |
C20 | circlepw_security_questions_answer_hint_input_config | ❌ | ❌ | ✅ | ✅ | circlepw_text_main | circlepw_body1 | |
C21 | circlepw_security_questions_answer_hint_placeholder | circlepw_security_questions_answer_hint_placeholder | ✅🔖 | ✅🔖 | ❌🔖 | circlepw_placeholder | circlepw_body1 | Set TextView’s textColorHint and hint. Apply circlepw_security_questions_answer_hint_input_config (C20)’s font. |
C22 | circlepw_security_questions_error_config | ❌🔖 | ❌🔖 | ✅ | ✅ | circlepw_error | circlepw_metadata1 | For text, see Error Message:hintsMatchAnswers(155705) |
C23 | circlepw_next | circlepw_next | ✅ | ✅ | ✅ | circlepw_main_bt_text | circlepw_mainButtonText | Normal |
circlepw_main_bt_text_pressed | Pressed | |||||||
circlepw_disabled_main_bt_text | Disabled | |||||||
C24 | circlepw_select_question_title | circlepw_select_question_title | ✅ | ✅ | ✅ | circlepw_text_main | circlepw_toolbarTitle | |
C25 | circlepw_select_question_item_config | ❌ | ❌ | ✅ | ✅ | circlepw_text_main | circlepw_body1 | |
C26 | circlepw_security_summary_title | circlepw_security_summary_title | ✅ | ✅ | ✅ | circlepw_text_main | circlepw_toolbarTitle | |
C27 | circlepw_question_label | circlepw_question_label | ✅ | ✅ | ✅ | circlepw_text_auxiliary2 | circlepw_body2 | |
C28 | circlepw_security_summary_question_value_config | ❌ | ❌ | ✅ | ✅ | circlepw_text_summary | circlepw_body2 | |
C29 | circlepw_answer_label | circlepw_answer_label | ✅ | ✅ | ✅ | circlepw_text_auxiliary2 | circlepw_body2 | |
C30 | circlepw_security_summary_answer_value_config | ❌ | ❌ | ✅ | ✅ | circlepw_text_summary | circlepw_caption2 | |
C31 | circlepw_hint_label | circlepw_hint_label | ✅ | ✅ | ✅ | circlepw_text_auxiliary2 | circlepw_body2 | |
C32 | circlepw_security_summary_hint_value_config | ❌ | ❌ | ✅ | ✅ | circlepw_text_summary | circlepw_body2 | |
C33 | circlepw_security_confirm_title | circlepw_security_confirm_title | ✅ | ✅ | ✅ | circlepw_text_main | circlepw_toolbarTitle | |
C34 | circlepw_security_confirm_headline | circlepw_security_confirm_headline | ✅ | ✅ | ✅ | circlepw_text_main | circlepw_heading4 | |
C35 | circlepw_security_confirm_input_headline | circlepw_security_confirm_input_headline | ✅ | ✅ | ✅ | circlepw_text_main2 | circlepw_caption1 | |
C36 | circlepw_security_confirm_input_placeholder | circlepw_security_confirm_input_placeholder | ✅🔖 | ✅🔖 | ❌🔖 | circlepw_placeholder | circlepw_body1 | Set TextView’s textColorHint and hint. Apply circlepw_security_confirm_input_config (C37)’s font. |
C37 | circlepw_security_confirm_input_config | ❌ | ❌ | ✅ | ✅ | circlepw_text_main | circlepw_body1 | |
C37-1 | circlepw_security_confirm_input_match | circlepw_security_confirm_input_match | ✅ | ❌ | ❌ | ❌ | ❌ | The text is the answer that requires user type. e.g. I agree |
C38 | circlepw_recover_pincode_error_config | ❌🔖 | ❌🔖 | ✅ | ✅ | circlepw_text_main | circlepw_body2 | For text, see Error Message:incorrectSecurityAnswers(155115)securityAnswersLocked(155120) |
C38-1 | circlepw_answer_remain_attemps_template | circlepw_answer_remain_attemps_template | ✅🔖 | ❌ | ❌ | ❌ | ❌ | e.g. You have %s attempts left. |
C38-2 | circlepw_answer_lock_period_template | circlepw_answer_lock_period_template | ✅🔖 | ❌ | ❌ | ❌ | ❌ | e.g. Please wait for %s mins to retry later |
C39 | circlepw_recover_pincode_question_config | ❌ | ❌ | ✅ | ✅ | circlepw_text_main2 | circlepw_body1 | |
C40 | circlepw_hint_tag | circlepw_hint_tag | ✅ | ✅ | ✅ | circlepw_tag_text | circlepw_metadata2 | |
C41 | circlepw_recover_pincode_answer_hint_config | ❌ | ❌ | ✅ | ✅ | circlepw_tag_following_text | circlepw_metadata1 | |
C42 | circlepw_recover_pincode_answer_input_header | ✅ | ✅ | ✅ | ✅ | circlepw_text_auxiliary | circlepw_body2 | |
C43 | circlepw_recover_pincode_answer_input_placeholder | circlepw_recover_pincode_answer_input_placeholder | ✅🔖 | ✅🔖 | ❌🔖 | circlepw_placeholder | circlepw_body1 | Set TextView’s textColorHint and hint. Apply circlepw_recover_pincode_input_config (C44)’s font. |
C44 | circlepw_recover_pincode_input_config | ❌ | ❌ | ✅ | ✅ | circlepw_text_main | circlepw_body1 | |
C45 | circlepw_confirm | circlepw_confirm | ✅ | ✅ | ✅ | circlepw_main_bt_text | circlepw_mainButtonText | |
circlepw_main_bt_text_pressed | ||||||||
circlepw_disabled_main_bt_text |
Error Messages
When using this table, reference the ApiError heading in the WalletSDK section of the SDK.
Possible display location | ApiError.ErrorCode | Default Value | Note |
---|---|---|---|
C5, C38 | unknown(-1) | Unknown error | |
success(0) | Success | ||
C5, C38 | apiParameterMissing(1) | API parameter missing | |
C5, C38 | apiParameterInvalid(2) | API parameter invalid | |
C5, C38 | forbidden(3) | Forbidden | |
C5, C38 | unauthorized(4) | Unauthorized | |
C5, C38 | retry(9) | Retry | |
C5, C38 | customerSuspended(10) | Customer suspended | |
C5, C38 | pending(11) | Pending | |
C5, C38 | invalidSession(12) | Invalid session | |
C5, C38 | invalidPartnerId(13) | Invalid partner ID | |
C5, C38 | invalidMessage(14) | Invalid Message published to a SQS queue. | |
C5, C38 | invalidPhone(15) | Invalid phone number '%s', format should be in E.164. | |
C5 | walletIdNotFound(156001) | ||
C5 | tokenIdNotFound(156002) | ||
C5 | transactionIdNotFound(156003) | ||
C5 | entityCredentialNotFound(156004) | ||
C5 | walletSetIdNotFound(156005) | ||
userAlreadyExisted(155101) | user already existed | ||
userNotFound(155102) | user not found | ||
C5, C38 | userTokenNotFound(155103) | user token not found | |
C5, C38 | userTokenExpired(155104) | user token expired | |
C5, C38 | invalidUserToken(155105) | invalid user token | |
C5 | userWasInitialized(155106) | user was initialized | |
C5 | userHasSetPin(155107) | user has set pin | |
C38 | userHasSetSecurityQuestion(155108) | user has set security question | |
C5, C38 | userWasDisabled(155109) | user was disabled | |
C5 | userDoesNotSetPinYet(155110) | user does not set pin yet | |
C38 | userDoesNotSetSecurityQuestionYet(155111) | user does not set security questions yet | |
C5 | incorrectUserPin(155112) | The PIN you entered is incorrect. | |
incorrectDeviceId(155113) | incorrect device id | ||
incorrectAppId(155114) | app id not found | ||
C38 | incorrectSecurityAnswers(155115) | The answers you entered are incorrect. | |
invalidChallengeId(155116) | invalid challenge id | ||
C5 | invalidApproveContent(155117) | invalid approve content | |
C5, C38 | invalidSecretKey(155118) | invalid secret key | |
C5 | userPinLocked(155119) | Just display circlepw_pin_lock_period_template (C5-2) | |
C38 | securityAnswersLocked(155120) | The answers you entered are incorrect. | |
C5 | walletIsFrozen(155501) | Wallet is Frozen | |
C5 | maxWalletLimitReached(155502) | Max wallet limit reached | |
C5 | walletSetIdMutuallyExclusive(155503) | WalletSetId can not be used together with blockchain and address filter | |
C5 | metadataUnmatched(155504) | metadata array length does not match wallet count | |
userCanceled(155701) | User canceled | ||
launchUiFailed(155702) | |||
C5 | pinCodeNotMatched(155703) | The PIN you entered is not the same as the first one. | |
C5 | insecurePinCode(155704) | Your PIN can’t have repeating or consecutive numbers. | |
C22 | hintsMatchAnswers(155705) | Your hint can’t be the same as the answer. |
Usingstrings.xml
for Static Customization
strings.xml
for Static CustomizationThe example values in the strings.xml
file below can be used for Static Customization. The fields also show the default string values in the SDK if you do not set dynamic customization.
Please reference this example and add/update any desired text string in your strings.xml under the res/values
folder.
To avoid dynamic customization, return a TextConfig that doesn't contain text or null in getTextConfig(String key) and getTextConfigs(Resource.TextsKey key) function. For example, a configuration that doesn't have new TextConfig(null, color, typeface)
, return null, or super.getTextConfig(key)
in its switch statement.
<resources>
<!-- [General]-->
<string name="circlepw_show_pin">Show PIN</string>
<string name="circlepw_hide_pin">Hide PIN</string>
<string name="circlepw_continue">Continue</string>
<string name="circlepw_next">Next</string>
<string name="circlepw_question_label">Question:</string>
<string name="circlepw_answer_label">Answer:</string>
<string name="circlepw_hint_label">Hint:</string>
<string name="circlepw_hint_tag">Hint</string>
<string name="circlepw_empty"></string>
<string name="circlepw_empty_placeholder">-</string>
<string name="circlepw_confirm">Confirm</string>
<string name="circlepw_pin_remain_attemps_template">You have %s attempts left.</string>
<string name="circlepw_pin_lock_period_template">You’ve used up all PIN attempts. Please wait for %s mins to retry later.</string>
<string name="circlepw_answer_remain_attemps_template">You have %s attempts left.</string>
<string name="circlepw_answer_lock_period_template">Please wait for %s mins to retry later.</string>
<!-- [Page] EnterPINCode-->
<string name="circlepw_enter_pincode_subhead">Let us know if it’s really you.</string>
<string name="circlepw_enter_pincode_forgot_pin">Forgot PIN?</string>
<!-- [Page] NewPINCode -->
<string name="circlepw_new_pincode_subhead">Your PIN can’t have repeating (e.g. 000000) or consecutive (e.g. 123456) numbers.</string>
<!-- [Page] ConfirmPINCode -->
<string name="circlepw_confirm_pincode_headline">Re-enter your PIN to confirm</string>
<string name="circlepw_confirm_pincode_subhead"></string>
<!-- [Page] SecurityIntros -->
<string name="circlepw_security_intros_description">This is the only way to recover wallet access if you forget your PIN. Pick 2 security questions and provide answers for access recovery.</string>
<!-- [Page] SecurityQuestions -->
<string name="circlepw_security_questions_title">Recovery method</string>
<string name="circlepw_security_questions_required_mark">*</string>
<string name="circlepw_security_questions_question_placeholder">Select one question</string>
<string name="circlepw_security_questions_answer_header">Provide an answer</string>
<string name="circlepw_security_questions_answer_placeholder">Type your answer here</string>
<string name="circlepw_security_questions_answer_hint_header">Provide an answer hint (optional)</string>
<string name="circlepw_security_questions_answer_hint_placeholder">Type your hint here</string>
<!-- [Page] SelectQuestion -->
<string name="circlepw_select_question_title">Select one question</string>
<!-- [Page] SecuritySummary -->
<string name="circlepw_security_summary_title">Summary</string>
<!-- [Page] SecurityConfirm -->
<string name="circlepw_security_confirm_title">Confirmation</string>
<string name="circlepw_security_confirm_headline">Keep your questions safe</string>
<string name="circlepw_security_confirm_input_headline">Type \"I agree\" to proceed:</string>
<string name="circlepw_security_confirm_input_placeholder">Type \"I agree\" here</string>
<string name="circlepw_security_confirm_input_match">I agree</string>
<!-- [Page] RecoverPINCode -->
<string name="circlepw_recover_pincode_answer_input_header">Enter your answer here</string>
<string name="circlepw_recover_pincode_answer_input_placeholder">Type your answer here</string>
</resources>
Image Customization
The SDK uses glide as the image loader for remote images. For the cache strategy, please see DiskCacheStrategy.AUTOMATIC. Use RemoteImageSetter
or LocalImageSetter
for icon images:
-
RemoteImageSetter constructor:
RemoteImageSetter(int drawableId, String url)
-
LocalImageSetter constructor:
LocalImageSetter(int drawableId)
Each image has its suggested size of width and height shown in the index table's ImageView size column. Follow the suggested size to avoid the possibility of a broken layout or unexpected display.
Resource.Icon
D1~D5
D Index Table
# | Resource.Icon | ImageView size (dp) | |
---|---|---|---|
width | height | ||
D1 | securityIntroMain | 144 | 144 |
D2 | selectCheckMark | 24 | 24 |
D3 | dropdownArrow | 40 | 40 |
D4 | errorInfo | 21 | 21 |
D5 | securityConfirmMain | 144 | 144 |
Resource.ToolbarIcon
E Index Table
# | Resource.ToolbarIcon | ImageView size (dp) | |
---|---|---|---|
width | height | ||
E1 | close | 24 | 24 |
E2 | back | 24 | 24 |
Color Customization
Colors can be customized in a Static way as a static string; with the UI screenshots and Key mapping index table below, the colors of each string can be defined in the colors.xml.Note that some keys are not specified in the screenshot but can be referenced from the A and C index table in the colors.xml column.
New, Confirm, and Enter PIN Code

Security Intros

Security Questions

Security Summary
Security Confirm
Recover PIN Code

F Index Table
# | colors.xml | Color Code | Note |
---|---|---|---|
F1 | circlepw_text_main | #1A1A1A | |
F2 | circlepw_text_auxiliary | #3D3D3D | |
F3 | circlepw_text_action | #136FD8 | Normal action text color |
F4 | circlepw_text_action_pressed | #B3136FD8 | Pressed action text color |
F5 | circlepw_placeholder | #A3A3A3 | |
F6 | circlepw_error | #F55538 | |
F7 | circlepw_error_background | #FDF2F2 | |
F8 | circlepw_text_main2 | #1C1C1C | |
F9 | circlepw_text_auxiliary2 | #707070 | |
F10 | circlepw_text_summary | #0073C3 | |
F11 | circlepw_disabled_main_bt_text | #80FFFFFF | Disabled button text color |
F12 | circlepw_main_bt_text | #FFFFFF | Normal button text color |
F13 | circlepw_main_bt_text_pressed | #FFFFFF | Pressed button text color |
F14 | circlepw_disabled_main_bt_background | #800073C3 | Disabled button background color |
F15 | circlepw_main_bt_background | #0073C3 | Normal button background color |
F16 | circlepw_main_bt_background_pressed | #1AA3FF | Pressed button background color |
F17 | circlepw_success | #0073C3 | |
F18 | circlepw_input_boarder | #E8E8E8 | Normal input field border |
F19 | circlepw_input_boarder_focused | #46B5FF | Focused input field border |
F20 | circlepw_tag_text | #005339 | Tag text color |
F21 | circlepw_tag_background | #E1F2FF | Tag background color |
F22 | circlepw_tag_following_text | #0073C3 | |
F23 | circlepw_divider | #F0EFEF | |
F24 | circlepw_pin_dot_base | #FFFFFF | PIN dot unfilled color |
F25 | circlepw_pin_dot_base_boarder | #707070 | PIN dot unfilled border color |
F26 | circlepw_pin_dot_activated | #3D3D3D | PIN dot filled color |
F27 | circlepw_background | #FFFFFF | General background color |
F28 | circlepw_security_confirm_main_bg | #E9EEFE | |
F29 | circlepw_disabled_input_background | #F5F5F5 | Disabled input field background color |
Using colors.xml
for Static Customization
colors.xml
for Static CustomizationThe example values in the colors.xml
file can be used for Static Customization. The fields also show the default string values in the SDK if you do not set dynamic customization.
Please reference this example and add/update any desired text color in your colors.xml
under the res/values
folder of the App project.
To avoid dynamic customization, return a TextConfig that contains text only with no color value in the getTextConfig(String key) and getTextConfigs(Resource.TextsKey key) functions. For example, use a configuration with new TextConfig(key, 0, typeface)
, return null, or super.getTextConfig(key)
in its switch statement.
<resources>
<color name="circlepw_text_main">#1A1A1A</color>
<color name="circlepw_text_auxiliary">#3D3D3D</color>
<color name="circlepw_text_action">#136FD8</color>
<color name="circlepw_text_action_pressed">#B3136FD8</color>
<color name="circlepw_placeholder">#A3A3A3</color>
<color name="circlepw_error">#F55538</color>
<color name="circlepw_error_background">#FDF2F2</color>
<color name="circlepw_text_main2">#1C1C1C</color>
<color name="circlepw_text_auxiliary2">#707070</color>
<color name="circlepw_text_summary">#0073C3</color>
<color name="circlepw_disabled_main_bt_text">#80FFFFFF</color>
<color name="circlepw_disabled_main_bt_background">#800073C3</color>
<color name="circlepw_main_bt_text">#ffffff</color>
<color name="circlepw_main_bt_background">#0073C3</color>
<color name="circlepw_main_bt_text_pressed">#ffffff</color>
<color name="circlepw_main_bt_background_pressed">#1AA3FF</color>
<color name="circlepw_success">#0073C3</color>
<color name="circlepw_input_boarder">#E8E8E8</color>
<color name="circlepw_input_boarder_focused">#46B5FF</color>
<color name="circlepw_tag_text">#005339</color>
<color name="circlepw_tag_background">#E1F2FF</color>
<color name="circlepw_tag_following_text">#0073C3</color>
<color name="circlepw_divider">#F0EFEF</color>
<color name="circlepw_pin_dot_base">#ffffff</color>
<color name="circlepw_pin_dot_base_boarder">#707070</color>
<color name="circlepw_pin_dot_activated">#3D3D3D</color>
<color name="circlepw_background">#FFFFFF</color>
<color name="circlepw_security_confirm_main_bg">#E9EEFE</color>
<color name="circlepw_disabled_input_background">#F5F5F5</color>
</resources>
Style Customization
Styles can be customized in a Static way as a static style by using the UI screenshots and Key mapping index table below. The styles of each string can be defined in the styles.xml
file.
To avoid dynamic customization, return TextConfig
that contains text only in getTextConfig(String key)
and getTextConfigs(Resource.TextsKey key)
functions. For example, use new TextConfig(“Your text here”)
or super.getTextConfig(key)
to ignore that key in the switch statement.
Note:
Some keys (error message) are not specified in the screenshot but can be referenced from the A and C index table at the
styles.xml
file column.




G Index Table
# | styles.xml |
---|---|
G1 | circlepw_heading3 |
G2 | circlepw_heading4 |
G3 | circlepw_heading5 |
G4 | circlepw_body1 |
G5 | circlepw_body2 |
G6 | circlepw_caption1 |
G7 | circlepw_caption2 |
G8 | circlepw_metadata1 |
G9 | circlepw_metadata2 |
G10 | circlepw_actionText |
G11 | circlepw_pinDigitText |
G12 | circlepw_mainButtonText |
G13 | circlepw_toolbarTitle |
G14 | circlepw_datePicker |
Using the styles.xml
file for Static Customization
styles.xml
file for Static CustomizationThe example values in the styles.xml
file can be used for Static Customization. The fields also show the default style values in the SDK if you do not set dynamic customization.
Please reference this example and add or update any desired text styles in your styles.xml
file under the res/values
folder of the App project.
The style can be used to define textSize and fontWeight, and it can also be used in conjunction with the static colors key defined in colors.xml, such as in the following:
<item name="colorControlActivated">@color/circlepw_input_boarder_focused</item>
<resources>
<style name="circlepw_heading3">
<item name="android:textSize">24sp</item>
</style>
<style name="circlepw_heading4">
<item name="android:textSize">20sp</item>
</style>
<style name="circlepw_heading5">
<item name="android:textSize">18sp</item>
</style>
<style name="circlepw_body1">
<item name="android:textSize">16sp</item>
</style>
<style name="circlepw_body2">
<item name="android:textSize">14sp</item>
</style>
<style name="circlepw_caption1">
<item name="android:textSize">16sp</item>
</style>
<style name="circlepw_caption2">
<item name="android:textSize">14sp</item>
</style>
<style name="circlepw_metadata1">
<item name="android:textSize">12sp</item>
</style>
<style name="circlepw_metadata2">
<item name="android:textSize">10sp</item>
</style>
<style name="circlepw_actionText">
<item name="android:textSize">14sp</item>
</style>
<style name="circlepw_pinDigitText">
<item name="android:textSize">40sp</item>
</style>
<style name="circlepw_mainButtonText">
<item name="android:textSize">16sp</item>
</style>
<style name="circlepw_toolbarTitle">
<item name="android:textSize">18sp</item>
</style>
<style name="circlepw_datePicker" parent="Theme.AppCompat.Light.Dialog">
<!-- Top background-->
<item name="colorAccent">@color/circlepw_main_bt_background</item>
<!--selected Item color-->
<item name="colorControlActivated">@color/circlepw_main_bt_background</item>
<!-- arrow bordercolor(<>)-->
<item name="android:selectableItemBackgroundBorderless">@color/circlepw_background</item>
<!--Calender Background color -->
<item name="android:windowBackground">@color/circlepw_background</item>
<!-- Ok Cancel Color-->
<item name="colorOnPrimary">@color/circlepw_main_bt_background</item>
<!-- Week TextColor-->
<item name="android:textColorSecondary">@color/circlepw_text_main</item>
<!-- Calender Number color arrow color (< >) -->
<item name="android:textColorPrimary">@color/circlepw_text_main</item>
<!--day , month-->
<item name="android:textColorPrimaryInverse">@color/circlepw_background</item>
<!-- year-->
<item name="android:textColorSecondaryInverse">@color/circlepw_background</item>
</style>
</resources>
The style can be used to define textSize and fontWeight, and it can also be used in conjunction with the static colors key defined in colors.xml, such as in the following:
<item name="colorControlActivated">@color/circlepw_input_boarder_focused</item>
<resources>
<style name="circlepw_heading3">
<item name="android:textSize">24sp</item>
</style>
<style name="circlepw_heading4">
<item name="android:textSize">20sp</item>
</style>
<style name="circlepw_heading5">
<item name="android:textSize">18sp</item>
</style>
<style name="circlepw_body1">
<item name="android:textSize">16sp</item>
</style>
<style name="circlepw_body2">
<item name="android:textSize">14sp</item>
</style>
<style name="circlepw_caption1">
<item name="android:textSize">16sp</item>
</style>
<style name="circlepw_caption2">
<item name="android:textSize">14sp</item>
</style>
<style name="circlepw_metadata1">
<item name="android:textSize">12sp</item>
</style>
<style name="circlepw_metadata2">
<item name="android:textSize">10sp</item>
</style>
<style name="circlepw_actionText">
<item name="android:textSize">14sp</item>
</style>
<style name="circlepw_pinDigitText">
<item name="android:textSize">40sp</item>
</style>
<style name="circlepw_mainButtonText">
<item name="android:textSize">16sp</item>
</style>
<style name="circlepw_toolbarTitle">
<item name="android:textSize">18sp</item>
</style>
<style name="circlepw_datePicker" parent="Theme.AppCompat.Light.Dialog">
<!-- Top background-->
<item name="colorAccent">@color/circlepw_main_bt_background</item>
<!--selected Item color-->
<item name="colorControlActivated">@color/circlepw_main_bt_background</item>
<!-- arrow bordercolor(<>)-->
<item name="android:selectableItemBackgroundBorderless">@color/circlepw_background</item>
<!--Calender Background color -->
<item name="android:windowBackground">@color/circlepw_background</item>
<!-- Ok Cancel Color-->
<item name="colorOnPrimary">@color/circlepw_main_bt_background</item>
<!-- Week TextColor-->
<item name="android:textColorSecondary">@color/circlepw_text_main</item>
<!-- Calender Number color arrow color (< >) -->
<item name="android:textColorPrimary">@color/circlepw_text_main</item>
<!--day , month-->
<item name="android:textColorPrimaryInverse">@color/circlepw_background</item>
<!-- year-->
<item name="android:textColorSecondaryInverse">@color/circlepw_background</item>
</style>
</resources>
Updated 21 days ago