Support SMTP URLs
[zxing.git] / core / src / com / google / zxing / client / result / ResultParser.java
index d8172b4..bdcc4d0 100644 (file)
@@ -55,12 +55,18 @@ public abstract class ResultParser {
       return result;
     } else if ((result = EmailAddressResultParser.parse(theResult)) != null) {
       return result;
+    } else if ((result = SMTPResultParser.parse(theResult)) != null) {
+      return result;
     } else if ((result = TelResultParser.parse(theResult)) != null) {
       return result;
     } else if ((result = SMSMMSResultParser.parse(theResult)) != null) {
       return result;
+    } else if ((result = SMSTOMMSTOResultParser.parse(theResult)) != null) {
+      return result;
     } else if ((result = GeoResultParser.parse(theResult)) != null) {
       return result;
+    } else if ((result = WifiResultParser.parse(theResult)) != null) {
+      return result;
     } else if ((result = URLTOResultParser.parse(theResult)) != null) {
       return result;
     } else if ((result = URIResultParser.parse(theResult)) != null) {
@@ -70,6 +76,8 @@ public abstract class ResultParser {
       return result;
     } else if ((result = ProductResultParser.parse(theResult)) != null) {
       return result;
+    } else if ((result = ExpandedProductResultParser.parse(theResult)) != null) {
+      return result;
     }
     return new TextParsedResult(theResult.getText(), null);
   }
@@ -117,7 +125,7 @@ public abstract class ResultParser {
     return escaped;
   }
 
-  static String urlDecode(String escaped) {
+  private static String urlDecode(String escaped) {
 
     // No we can't use java.net.URLDecoder here. JavaME doesn't have it.
     if (escaped == null) {
@@ -208,6 +216,24 @@ public abstract class ResultParser {
     return true;
   }
 
+  protected static boolean isSubstringOfDigits(String value, int offset, int length) {
+    if (value == null) {
+      return false;
+    }
+    int stringLength = value.length();
+    int max = offset + length;
+    if (stringLength < max) {
+      return false;
+    }
+    for (int i = offset; i < max; i++) {
+      char c = value.charAt(i);
+      if (c < '0' || c > '9') {
+        return false;
+      }
+    }
+    return true;
+  }
+
   static Hashtable parseNameValuePairs(String uri) {
     int paramStart = uri.indexOf('?');
     if (paramStart < 0) {