package com.codename1.samples; import com.codename1.capture.Capture; import static com.codename1.ui.CN.*; import com.codename1.ui.Display; import com.codename1.ui.Form; import com.codename1.ui.Dialog; import com.codename1.ui.Label; import com.codename1.ui.plaf.UIManager; import com.codename1.ui.util.Resources; import com.codename1.io.Log; import com.codename1.ui.Toolbar; import java.io.IOException; import com.codename1.ui.layouts.BoxLayout; import com.codename1.io.NetworkEvent; import com.codename1.ui.Button; import com.codename1.ui.CheckBox; import com.codename1.ui.Container; import com.codename1.ui.Image; import com.codename1.ui.TextField; import com.codename1.ui.layouts.GridLayout; /** * This file was generated by <a href="https://www.codenameone.com/">Codename One</a> for the purpose * of building native mobile applications using Java. */ public class JavascriptCapturePhotoSample { private Form current; private Resources theme; public void init(Object context) { // use two network threads instead of one updateNetworkThreadCount(2); theme = UIManager.initFirstTheme("/theme"); // Enable Toolbar on all Forms by default Toolbar.setGlobalToolbar(true); // Pro only feature Log.bindCrashProtection(true); addNetworkErrorListener(err -> { // prevent the event from propagating err.consume(); if(err.getError() != null) { Log.e(err.getError()); } Log.sendLogAsync(); Dialog.show("Connection Error", "There was a networking error in the connection to " + err.getConnectionRequest().getUrl(), "OK", null); }); } public void start() { if(current != null){ current.show(); return; } Form hi = new Form("Hi World", BoxLayout.y()); CheckBox useUserMedia = new CheckBox("Use UserMedia APIs for Photo Capture"); useUserMedia.addActionListener(e->{ Display.getInstance().setProperty("javascript.useGetUserMedia", useUserMedia.isSelected() ? "true" : "false"); }); TextField width = new TextField(); width.setHint("width"); TextField height = new TextField(); height.setHint("height"); Button capture = new Button("Capture"); Label imagePlaceholder = new Label(); capture.addActionListener(e->{ int w = -1; int h = -1; try { w = Integer.parseInt(width.getText()); } catch (Throwable t){} try { h = Integer.parseInt(height.getText()); } catch (Throwable t){} String path = Capture.capturePhoto(w, h); if (path != null) { try { Image img = Image.createImage(path); imagePlaceholder.setIcon(img); hi.revalidate(); } catch (Exception ex) { Log.e(ex); } } }); hi.add(new Label("Photo Capture Demo")); hi.add(useUserMedia); hi.add(GridLayout.encloseIn(2, width, height)); hi.add(capture); hi.add(imagePlaceholder); hi.show(); } public void stop() { current = getCurrentForm(); if(current instanceof Dialog) { ((Dialog)current).dispose(); current = getCurrentForm(); } } public void destroy() { } }