use of com.codename1.fingerprint.KeyRevokedException in project CodenameOne by codenameone.
the class FingerprintScannerSample method start.
public void start() {
if (current != null) {
current.show();
return;
}
Form hi = new Form("Hi World", BoxLayout.y());
TextField keyName = new TextField();
TextField keyValue = new TextField();
Button addItem = new Button("Add Item");
Button getItem = new Button("Get Item");
Button deleteItem = new Button("Delete Item");
Button checkAvailable = new Button("Check Available");
checkAvailable.addActionListener(evt -> {
Container cnt = BoxLayout.encloseY(new Label("TouchID: " + Fingerprint.isTouchIDAvailable()), new Label("FaceID: " + Fingerprint.isFaceIDAvailable()));
Dialog.show("Capabilities", cnt, new Command("OK"));
});
addItem.addActionListener(evt -> {
if (!Fingerprint.isAvailable()) {
ToastBar.showErrorMessage("Fingerprint not avaiable on this platform");
return;
}
Fingerprint.addPassword("Adding secure item to keystore", keyName.getText(), keyValue.getText()).onResult((res, err) -> {
if (err != null) {
if (AsyncResource.isCancelled(err)) {
Log.p("addPassword request was cancelled");
return;
}
Log.e(err);
ToastBar.showErrorMessage(err.getMessage());
} else {
ToastBar.showInfoMessage("Result: " + res);
}
});
});
getItem.addActionListener(evt -> {
Fingerprint.getPassword("Getting secure item", keyName.getText()).onResult((res, err) -> {
if (err != null) {
if (AsyncResource.isCancelled(err)) {
Log.p("getPassword request was cancelled");
return;
}
Log.e(err);
if (err instanceof KeyRevokedException) {
ToastBar.showErrorMessage("Your key has been invalidated, likely due to adding new fingerprints");
} else {
ToastBar.showErrorMessage(err.getMessage());
}
} else {
keyValue.setText(res);
hi.revalidateWithAnimationSafety();
}
});
});
deleteItem.addActionListener(evt -> {
Fingerprint.deletePassword("Getting secure item", keyName.getText()).onResult((res, err) -> {
if (err != null) {
if (AsyncResource.isCancelled(err)) {
Log.p("deletePassword request was cancelled");
}
Log.e(err);
ToastBar.showErrorMessage(err.getMessage());
} else {
keyValue.setText("");
hi.revalidateWithAnimationSafety();
}
});
});
Button checkHardware = new Button("Check Hardware");
checkHardware.addActionListener(evt -> {
Fingerprint.isAvailable();
Dialog.show("Hardware", CN.getProperty("Fingerprint.types", "None"), "OK", null);
});
hi.addAll(checkHardware, new Label("Key:"), keyName, new Label("Value: "), keyValue, addItem, getItem, deleteItem, checkAvailable);
hi.show();
}