PinPad view for android.
Highly customizable PinPad view for android applications:
1) Define your PinPadView in layout:
<com.grishko188.pinlibrary.PinPadView
android:id="@+id/pin_pad"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2) Initialize singleton configuration
Configuration.withContext(this)
.mode(PinPadView.PinPadUsageMode.ENTER)
...
.build(mPinPad);
or create new instance as shown below:
Configuration.ConfigurationBuilder builder = new Configuration.ConfigurationBuilder(this);
builder.mode(PinPadView.PinPadUsageMode.SETUP);
builder.setSetupPinCodeListener(new OnSetupPinCodeListener() {
@Override
public void onSuccess(String pinCode) {
}
@Override
public void onFail() {
}
});
...
builder.build(mPinPad);
3) Enable fingerprint
Configuration.withContext(this)
.mode(PinPadView.PinPadUsageMode.ENTER)
.useFingerprint(true)
.withCryptoObject(new FingerprintManagerCompat.CryptoObject(mCipher))
...
.build(mPimPad);
4) Start / stop listening fingerprint
@Override
protected void onResume() {
super.onResume();
mPinPad.startFingerprintScanner();
}
@Override
protected void onPause() {
super.onPause();
mPinPad.stopFingerprintScanner();
}
For more information look into sample project.
1) UI with xml attributes:
<attr name="ppv_color" format="color" />
<attr name="ppv_buttons_text_size" format="dimension|reference" />
<attr name="ppv_keyboard_form_style">
<enum name="round" value="0" />
<enum name="square" value="1" />
<enum name="square_no_borders" value="2" />
<enum name="round_no_borders" value="3" />
</attr>
<attr name="ppv_empty_char_style">
<enum name="stroke" value="1" />
<enum name="fill" value="0" />
</attr>
<attr name="ppv_max_len" format="integer|reference" />
<attr name="ppv_size" format="dimension|reference" />
<attr name="ppv_letter_spacing" format="dimension|reference" />
<attr name="ppv_fill_color" format="color" />
<attr name="ppv_max_try" format="integer" />
<attr name="ppv_keyboard_width" format="dimension|reference" />
2) UI from Java code:
public void setColor(int color)
public void setKeyboardTextSize(int keyboardTextSize)
public void setMaxLength(int maxLength)
public void setSize(float size)
public void setMaxTryCount(int maxTryCount)
public void setEmptyCharFillColor(int fillColor)
public void setLetterSpacing(int letterSpacing)
public void setKeyboardWidth(int keyboardWidth)
For some devices icons auto tinting not working properly
In this case just override library colors
<color name="pinlibrary_default">#5b5b5b</color>
<color name="pinlibrary_white_transparent">#88FFFFFF</color>
<color name="pinlibrary_pinbutton_border">#FFFFFF</color>
<color name="pinlibrary_round_mask_border">#FFFFFF</color>
<color name="pinlibrary_round_mask_fill">#FFFFFF</color>