X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=javame%2Fsrc%2Fcom%2Fgoogle%2Fzxing%2Fclient%2Fj2me%2FZXingMIDlet.java;h=7e8c2bc3bb00f9550c2a38d84598ebae64f495b4;hb=cb7c82ff76ed26ee7cdc8669dcf785d681498fd8;hp=1073547e14bdac3bcecdfbd8857b52bd511ffce7;hpb=808ad9c54b2571d7fb56f8ea6172da3f14c8693f;p=zxing.git diff --git a/javame/src/com/google/zxing/client/j2me/ZXingMIDlet.java b/javame/src/com/google/zxing/client/j2me/ZXingMIDlet.java index 1073547e..7e8c2bc3 100644 --- a/javame/src/com/google/zxing/client/j2me/ZXingMIDlet.java +++ b/javame/src/com/google/zxing/client/j2me/ZXingMIDlet.java @@ -1,5 +1,5 @@ /* - * Copyright 2007 Google Inc. + * Copyright 2007 ZXing authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,15 +17,14 @@ package com.google.zxing.client.j2me; import com.google.zxing.Result; -import com.google.zxing.client.result.BookmarkDoCoMoResult; -import com.google.zxing.client.result.EmailAddressResult; -import com.google.zxing.client.result.EmailDoCoMoResult; -import com.google.zxing.client.result.GeoParsedResult; -import com.google.zxing.client.result.ParsedReaderResult; -import com.google.zxing.client.result.ParsedReaderResultType; -import com.google.zxing.client.result.UPCParsedResult; +import com.google.zxing.client.result.EmailAddressParsedResult; +import com.google.zxing.client.result.ParsedResult; +import com.google.zxing.client.result.ParsedResultType; +import com.google.zxing.client.result.ResultParser; +import com.google.zxing.client.result.SMSParsedResult; +import com.google.zxing.client.result.TelParsedResult; +import com.google.zxing.client.result.ProductParsedResult; import com.google.zxing.client.result.URIParsedResult; -import com.google.zxing.client.result.URLTOResult; import javax.microedition.io.ConnectionNotFoundException; import javax.microedition.lcdui.Alert; @@ -46,15 +45,17 @@ import java.io.IOException; /** *

The actual reader application {@link MIDlet}.

* - * @author Sean Owen (srowen@google.com) + * @author Sean Owen */ public final class ZXingMIDlet extends MIDlet { + private static final int ALERT_TIMEOUT_MS = 5 * 1000; + private Canvas canvas; private Player player; private VideoControl videoControl; - Canvas getCanvas() { + Displayable getCanvas() { return canvas; } @@ -66,11 +67,19 @@ public final class ZXingMIDlet extends MIDlet { return videoControl; } + static MultimediaManager buildMultimediaManager() { + return new AdvancedMultimediaManager(); + // Comment line above / uncomment below to make the basic version + // return new DefaultMultimediaManager(); + } + protected void startApp() throws MIDletStateChangeException { try { player = createPlayer(); player.realize(); - AdvancedMultimediaManager.setZoom(player); + MultimediaManager multimediaManager = buildMultimediaManager(); + multimediaManager.setZoom(player); + multimediaManager.setExposure(player); videoControl = (VideoControl) player.getControl("VideoControl"); canvas = new VideoCanvas(this); canvas.setFullScreenMode(true); @@ -139,9 +148,9 @@ public final class ZXingMIDlet extends MIDlet { // Convenience methods to show dialogs - private void showOpenURL(String title, final String display, final String uri) { + private void showOpenURL(String title, String display, final String uri) { Alert alert = new Alert(title, display, null, AlertType.CONFIRMATION); - alert.setTimeout(Alert.FOREVER); + alert.setTimeout(ALERT_TIMEOUT_MS); Command yes = new Command("Yes", Command.OK, 1); alert.addCommand(yes); Command no = new Command("No", Command.CANCEL, 1); @@ -168,7 +177,7 @@ public final class ZXingMIDlet extends MIDlet { private void showAlert(String title, String text) { Alert alert = new Alert(title, text, null, AlertType.INFO); - alert.setTimeout(Alert.FOREVER); + alert.setTimeout(ALERT_TIMEOUT_MS); showAlert(alert); } @@ -191,30 +200,24 @@ public final class ZXingMIDlet extends MIDlet { } void handleDecodedText(Result theResult) { - ParsedReaderResult result = ParsedReaderResult.parseReaderResult(theResult); - ParsedReaderResultType type = result.getType(); - if (type.equals(ParsedReaderResultType.URI)) { + ParsedResult result = ResultParser.parseResult(theResult); + ParsedResultType type = result.getType(); + if (type.equals(ParsedResultType.URI)) { String uri = ((URIParsedResult) result).getURI(); showOpenURL("Open Web Page?", uri, uri); - } else if (type.equals(ParsedReaderResultType.BOOKMARK)) { - String uri = ((BookmarkDoCoMoResult) result).getURI(); - showOpenURL("Open Web Page?", uri, uri); - } else if (type.equals(ParsedReaderResultType.URLTO)) { - String uri = ((URLTOResult) result).getURI(); - showOpenURL("Open Web Page?", uri, uri); - } else if (type.equals(ParsedReaderResultType.EMAIL)) { - String email = ((EmailDoCoMoResult) result).getTo(); - showOpenURL("Compose E-mail?", email, "mailto:" + email); - } else if (type.equals(ParsedReaderResultType.EMAIL_ADDRESS)) { - String email = ((EmailAddressResult) result).getEmailAddress(); - showOpenURL("Compose E-mail?", email, "mailto:" + email); - } else if (type.equals(ParsedReaderResultType.GEO)) { - GeoParsedResult geoResult = (GeoParsedResult) result; - showOpenURL("Open In Google Maps?", geoResult.getDisplayResult(), geoResult.getGoogleMapsURI()); - } else if (type.equals(ParsedReaderResultType.UPC)) { - String upc = ((UPCParsedResult) result).getUPC(); - String uri = "http://www.upcdatabase.com/item.asp?upc=" + upc; - showOpenURL("Look Up Barcode Online?", upc, uri); + } else if (type.equals(ParsedResultType.EMAIL_ADDRESS)) { + EmailAddressParsedResult emailResult = (EmailAddressParsedResult) result; + showOpenURL("Compose E-mail?", emailResult.getEmailAddress(), emailResult.getMailtoURI()); + } else if (type.equals(ParsedResultType.SMS)) { + SMSParsedResult smsResult = (SMSParsedResult) result; + showOpenURL("Compose SMS?", smsResult.getNumber(), smsResult.getSMSURI()); + } else if (type.equals(ParsedResultType.PRODUCT)) { + ProductParsedResult productResult = (ProductParsedResult) result; + String uri = "http://www.upcdatabase.com/item.asp?upc=" + productResult.getNormalizedProductID(); + showOpenURL("Look Up Barcode Online?", productResult.getProductID(), uri); + } else if (type.equals(ParsedResultType.TEL)) { + TelParsedResult telResult = (TelParsedResult) result; + showOpenURL("Dial Number?", telResult.getNumber(), telResult.getTelURI()); } else { showAlert("Barcode Detected", result.getDisplayResult()); }