+ // TODO ui
+ actions.add(new KeyAction(Mode.ASK_USER, 'a',
+ StringId.KEY_ACTION_ADD) {
+ @Override
+ public Object getObject() {
+ return card;
+ }
+
+ @Override
+ public String getQuestion() {
+ return Main.trans(StringId.ASK_USER_CONTACT_NAME);
+ }
+
+ @Override
+ public String callback(String answer) {
+ if (answer.length() > 0) {
+ List<Data> datas = new LinkedList<Data>();
+ datas.add(new Data(null, "FN", answer, null));
+ getCard().add(new Contact(datas));
+ addItem("x");
+ }
+
+ return null;
+ }
+ });
+ actions.add(new KeyAction(Mode.ASK_USER_KEY, 'd',
+ StringId.KEY_ACTION_DELETE) {
+ @Override
+ public Object getObject() {
+ return getSelectedContact();
+ }
+
+ @Override
+ public String getQuestion() {
+ Contact contact = getSelectedContact();
+ String contactName = "null";
+ if (contact != null)
+ contactName = "" + contact.getPreferredDataValue("FN");
+
+ return Main.trans(
+ StringId.CONFIRM_USER_DELETE_CONTACT,
+ contactName);
+ }
+
+ @Override
+ public String callback(String answer) {
+ if (answer.equalsIgnoreCase("y")) {
+ Contact contact = getSelectedContact();
+ if (contact != null && contact.delete()) {
+ removeItem("x");
+ return null;
+ }
+
+ String contactName = "null";
+ if (contact != null)
+ contactName = "" + contact.getPreferredDataValue("FN");
+
+ return Main.trans(
+ StringId.ERR_CANNOT_DELETE_CONTACT,
+ contactName);
+ }
+
+ return null;
+ }
+ });
+ actions.add(new KeyAction(Mode.ASK_USER_KEY, 's',
+ StringId.KEY_ACTION_SAVE_CARD) {