Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
Giuseppe Scorrano 2019-12-20 10:15:03 +01:00
commit 8124382b8b
3 changed files with 58 additions and 34 deletions

View File

@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
android { android {
def appVersionCode = 112 def appVersionCode = 113
def appVersionName = '1.10.9' def appVersionName = '1.10.10'
signingConfigs { signingConfigs {
release { release {

View File

@ -85,31 +85,51 @@ public class KeyboardEmulatorBarcodeReader implements BarcodeReaderInterface {
} }
public BarcodeType decodeBarcode(String barcode) { public BarcodeType decodeBarcode(String barcode) {
/* /*Pattern patternUPCA = Pattern.compile("^[0-9]{12}$");
Pattern patternUPCA = Pattern.compile("^[0-9]{12}$");
Pattern patternUPCE = Pattern.compile("^[0-1][0-9]{7}$"); Pattern patternUPCE = Pattern.compile("^[0-1][0-9]{7}$");
Pattern patternUPCE1 = Pattern.compile(""); Pattern patternUPCE1 = Pattern.compile("");
Pattern patternEAN8 = Pattern.compile("^[0-9]{8}$"); Pattern patternEAN8 = Pattern.compile("^[0-9]{8}$");
Pattern patternEAN13 = Pattern.compile("^[0-9]{13}$"); Pattern patternEAN13 = Pattern.compile("^[0-9]{13}$");
Pattern patternCODE11 = Pattern.compile(""); Pattern patternCODE11 = Pattern.compile("");
Pattern patternCODE39 = Pattern.compile(""); Pattern patternCODE39 = Pattern.compile("");*/
if(){ if (barcode.length() == 8) {
return BarcodeType.CODE11; try {
}else if(){ int checksum = getEanChecksum(barcode);
return BarcodeType.CODE39; if (checksum == Integer.parseInt(barcode.substring(7))){
}else if(){
return BarcodeType.EAN13;
}else if(){
return BarcodeType.EAN8; return BarcodeType.EAN8;
}else if(){ }
return BarcodeType.UPCA; } catch (WrongFormatException e) {
}else if(){ return BarcodeType.CODE128;
return BarcodeType.UPCE; }
}else if(false){ } else if (barcode.length() == 13) {
return BarcodeType.UPCE1; try {
int checksum = getEanChecksum(barcode);
if (checksum == Integer.parseInt(barcode.substring(12))){
return BarcodeType.EAN13;
}
} catch (WrongFormatException e) {
return BarcodeType.CODE128;
}
}
return BarcodeType.CODE128;
}
private static int getEanChecksum(String barcode) throws WrongFormatException {
int odds = 0;
int evens = 0;
barcode = barcode.substring(0,barcode.length()-1);
int pos = 0;
for (int i = barcode.length() -1; i >=0 ; i--) {
pos++;
if (!Character.isDigit(barcode.charAt(i))) {
throw new WrongFormatException();
}
if (pos % 2 == 0) {
evens += Integer.parseInt(barcode.charAt(i)+"");
} else { } else {
return BarcodeType.CODE128; odds += Integer.parseInt(barcode.charAt(i)+"");
}*/ }
return BarcodeType.CODE128; }
return ((10 - (((3 * odds) + evens) % 10)) % 10);
} }
} }

View File

@ -0,0 +1,4 @@
package it.integry.keyobardemulatorscannerlibrary;
public class WrongFormatException extends Exception {
}