X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Ftui%2Fpanes%2FContactDetails.java;h=fc6a198feda3dd316c77cd4c415d766a2e886af0;hb=e4444b0bc462544629d9e7e7ab62b96a4d9cab10;hp=08df4034165c761931a0fedebcf5eebf241d0058;hpb=2a96e7b2cf3f155cccc633272b2f547ffd8f4672;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/tui/panes/ContactDetails.java b/src/be/nikiroo/jvcard/tui/panes/ContactDetails.java index 08df403..fc6a198 100644 --- a/src/be/nikiroo/jvcard/tui/panes/ContactDetails.java +++ b/src/be/nikiroo/jvcard/tui/panes/ContactDetails.java @@ -1,16 +1,17 @@ package be.nikiroo.jvcard.tui.panes; import java.awt.Image; -import java.util.Base64; +import java.io.ByteArrayInputStream; import java.util.LinkedList; import java.util.List; -import javax.swing.ImageIcon; +import javax.imageio.ImageIO; +import javax.xml.bind.DatatypeConverter; import be.nikiroo.jvcard.Contact; import be.nikiroo.jvcard.Data; import be.nikiroo.jvcard.TypeInfo; -import be.nikiroo.jvcard.i18n.Trans; +import be.nikiroo.jvcard.resources.Trans; import be.nikiroo.jvcard.tui.ImageTextControl; import be.nikiroo.jvcard.tui.KeyAction; import be.nikiroo.jvcard.tui.KeyAction.DataType; @@ -116,8 +117,15 @@ public class ContactDetails extends MainContent { if (encoding != null && encoding.getValue() != null && encoding.getValue().equalsIgnoreCase("b")) { - image = new ImageIcon(Base64.getDecoder().decode( - photo.getValue())).getImage(); + try { + image = ImageIO.read(new ByteArrayInputStream( + DatatypeConverter.parseBase64Binary(photo + .getValue()))); + image.toString(); + } catch (Exception e) { + System.err.println("Cannot parse image for contact: " + + contact.getPreferredDataValue("UID")); + } } } } @@ -166,6 +174,14 @@ public class ContactDetails extends MainContent { return false; } }); + // TODO: add "normal" edit and remove this one into RAW edit + actions.add(new KeyAction(Mode.CONTACT_DETAILS_RAW, 'e', + Trans.StringId.KEY_ACTION_EDIT_CONTACT) { + @Override + public Object getObject() { + return contact; + } + }); return actions; }