what-the-bank/sources/com/kofax/kmc/ken/engines/service/ImageService.java

2015 lines
87 KiB
Java

package com.kofax.kmc.ken.engines.service;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Debug;
import android.os.Environment;
import android.text.TextUtils;
import com.airbnb.deeplinkdispatch.UrlTreeKt;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.common.primitives.UnsignedBytes;
import com.kofax.BuildConfig;
import com.kofax.kmc.ken.engines.data.BarCodeDataFormat;
import com.kofax.kmc.ken.engines.data.BarCodeResult;
import com.kofax.kmc.ken.engines.data.BoundingTetragon;
import com.kofax.kmc.ken.engines.data.Image;
import com.kofax.kmc.ken.engines.data.ImagePerfectionProfile;
import com.kofax.kmc.ken.engines.iplib.IpFileBuffer;
import com.kofax.kmc.ken.engines.iplib.IpImage;
import com.kofax.kmc.ken.engines.iplib.IpImageMetadata;
import com.kofax.kmc.ken.engines.iplib.IpLib;
import com.kofax.kmc.ken.engines.iplib.ProcessPageOutRep;
import com.kofax.kmc.ken.engines.iplib.ProcessPageResults;
import com.kofax.kmc.ken.engines.processing.ImageProcessorConfiguration;
import com.kofax.kmc.kut.utilities.AppContextProvider;
import com.kofax.kmc.kut.utilities.IpLibUtil;
import com.kofax.kmc.kut.utilities.error.ErrorInfo;
import com.kofax.kmc.kut.utilities.error.FileNotFoundException;
import com.kofax.kmc.kut.utilities.error.IOException;
import com.kofax.kmc.kut.utilities.error.InternalError;
import com.kofax.kmc.kut.utilities.error.KmcException;
import com.kofax.kmc.kut.utilities.error.KmcRuntimeException;
import com.kofax.mobile.sdk._internal.impl.extraction.rtti.RttiJsonExactionHelper;
import com.kofax.mobile.sdk._internal.k;
import com.kofax.mobile.sdk.ae.c;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import o.gjJ;
import o.gjP;
import o.gjT;
import o.gjU;
import org.json.JSONException;
import org.json.JSONObject;
/* loaded from: classes3.dex */
public class ImageService {
public static final String EXIF_TIME_FORMAT = "yyyy:MM:dd HH:mm:ss";
public static final String KExifTagDateTime = "Digitized Date Time: ";
public static final String KExifTagDateTimeDigitized = "File_Change_Date_Time: ";
public static final String KExifTagDateTimeOriginal = "Original Date Time: ";
private static final String TAG = "ImageService";
private static final int ig = 1;
private static final int ih = 1;
private static final int ii = 200;
private static final int ij = 200;
private static final int ik = 24;
private static final int il = 3;
private static final int im = 72;
/* renamed from: io, reason: collision with root package name */
private static final int f6503io = 72;
private static final int ip = 5;
static final int iq = 0;
static final int ir = 2;
static final int is = 3;
static final int it = 5;
private static final String iv = "Software Used: Kofax";
private static final boolean iw = true;
public static boolean passBarcodes = false;
private static final gjT iu = gjP.e;
private static UseableImageMemoryLimit ix = UseableImageMemoryLimit.NORMAL;
private static InterimImageFileFormat iy = InterimImageFileFormat.PNG;
/* loaded from: classes3.dex */
public enum InterimImageFileFormat {
PNG,
JPEG
}
/* loaded from: classes3.dex */
public enum UseableImageMemoryLimit {
NORMAL,
LARGE,
MAXIMUM
}
/* loaded from: classes3.dex */
public static class ImageDimension {
private int height;
private int width;
public ImageDimension(int i, int i2) {
this.width = i;
this.height = i2;
}
public void setWidth(int i) {
this.width = i;
}
public void setHeight(int i) {
this.height = i;
}
public int getWidth() {
return this.width;
}
public int getHeight() {
return this.height;
}
}
public static IpImageMetadata getImageFileMetadata(String str) {
IpImageMetadata ipImageMetadata = new IpImageMetadata();
readBitmapFromFileUsingIp(str, 1.0f, ipImageMetadata);
return ipImageMetadata;
}
public static void cancelImageProcessing() {
try {
IpLib.getInstance().cancelProcessing();
} catch (KmcException unused) {
}
}
public static String createGPSMetadata(Image image) {
StringBuilder sb = new StringBuilder("GPS Latitude Reference: ");
String str = image.getImageLatitude().floatValue() < BitmapDescriptorFactory.HUE_RED ? "S" : "N";
String str2 = image.getImageLongitude().floatValue() < BitmapDescriptorFactory.HUE_RED ? "W" : "E";
sb.append(str);
sb.append(System.getProperty("line.separator"));
sb.append("GPS Latitude: ");
int intValue = image.getImageLatitude().intValue();
sb.append(Integer.toString(intValue));
sb.append("/1, ");
sb.append(Integer.toString(Float.valueOf((image.getImageLatitude().floatValue() - intValue) * 100.0f * 60.0f).intValue()));
sb.append("/100, 0/1");
sb.append(System.getProperty("line.separator"));
sb.append("GPS Longitude Reference: ");
sb.append(str2);
sb.append(System.getProperty("line.separator"));
sb.append("GPS Longitude: ");
int intValue2 = image.getImageLongitude().intValue();
sb.append(Integer.toString(intValue2));
sb.append("/1, ");
sb.append(Integer.toString(Float.valueOf((image.getImageLongitude().floatValue() - intValue2) * 100.0f * 60.0f).intValue()));
sb.append("/100, 0/1");
sb.append(System.getProperty("line.separator"));
return sb.toString();
}
public static String createTargetFrameMetadata(Image image) {
StringBuilder sb = new StringBuilder("Subject Area: ");
Rect targetFrame = image.getTargetFrame();
sb.append(String.format(Locale.US, "%d, %d, %d, %d", Integer.valueOf(targetFrame.centerX()), Integer.valueOf(targetFrame.centerY()), Integer.valueOf(targetFrame.width()), Integer.valueOf(targetFrame.height())));
sb.append(System.getProperty("line.separator"));
return sb.toString();
}
public static ErrorInfo saveBitmap(Bitmap bitmap, String str, Image.ImageMimeType imageMimeType, int i) {
FileOutputStream fileOutputStream;
BufferedOutputStream bufferedOutputStream;
k.b(TAG, "Saving a bitmap to ".concat(String.valueOf(str)));
ErrorInfo errorInfo = ErrorInfo.KMC_SUCCESS;
Bitmap.CompressFormat compressFormat = imageMimeType == Image.ImageMimeType.MIMETYPE_JPEG ? Bitmap.CompressFormat.JPEG : Bitmap.CompressFormat.PNG;
if (imageMimeType == Image.ImageMimeType.MIMETYPE_TIFF || imageMimeType == Image.ImageMimeType.MIMETYPE_UNKNOWN) {
ErrorInfo errorInfo2 = ErrorInfo.KMC_ED_MIMETYPE;
errorInfo2.setErrCause("saveBitmap method supports MIMETYPE_JPG, MIMETYPE_PNG only");
return errorInfo2;
}
BufferedOutputStream bufferedOutputStream2 = null;
try {
try {
} catch (Exception e) {
k.e(TAG, "Error flushing streams", (Throwable) e);
}
} catch (Exception e2) {
e = e2;
fileOutputStream = null;
} catch (Throwable th) {
th = th;
fileOutputStream = null;
}
if (new File(str).exists()) {
ErrorInfo errorInfo3 = ErrorInfo.KMC_ED_FILE_EXISTS;
StringBuilder sb = new StringBuilder("saveBitmap failed: file ");
sb.append(str);
sb.append(" already exists.");
errorInfo3.setErrCause(sb.toString());
return errorInfo3;
}
fileOutputStream = new FileOutputStream(str);
try {
try {
bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
} catch (Exception e3) {
e = e3;
}
} catch (Throwable th2) {
th = th2;
}
try {
if (!bitmap.compress(compressFormat, i, bufferedOutputStream)) {
errorInfo = ErrorInfo.KMC_ED_BITMAP_WRITE_TO_FILE_FAILED;
StringBuilder sb2 = new StringBuilder("bitmap.compress failed: file ");
sb2.append(str);
sb2.append(", quality=");
sb2.append(i);
errorInfo.setErrCause(sb2.toString());
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
fileOutputStream.flush();
} catch (Exception e4) {
e = e4;
bufferedOutputStream2 = bufferedOutputStream;
String str2 = TAG;
StringBuilder sb3 = new StringBuilder("Error saving image - ");
sb3.append(str);
k.e(str2, sb3.toString(), (Throwable) e);
errorInfo = ErrorInfo.KMC_ED_BITMAP_WRITE_TO_FILE_FAILED;
StringBuilder sb4 = new StringBuilder("bitmap.compress exception: file ");
sb4.append(str);
sb4.append(", quality=");
sb4.append(i);
sb4.append(", exception info: ");
sb4.append(e.getMessage());
errorInfo.setErrCause(sb4.toString());
if (bufferedOutputStream2 != null) {
bufferedOutputStream2.flush();
bufferedOutputStream2.close();
}
if (fileOutputStream != null) {
fileOutputStream.flush();
fileOutputStream.close();
}
return errorInfo;
} catch (Throwable th3) {
th = th3;
bufferedOutputStream2 = bufferedOutputStream;
if (bufferedOutputStream2 != null) {
try {
bufferedOutputStream2.flush();
bufferedOutputStream2.close();
} catch (Exception e5) {
k.e(TAG, "Error flushing streams", (Throwable) e5);
throw th;
}
}
if (fileOutputStream != null) {
fileOutputStream.flush();
fileOutputStream.close();
}
throw th;
}
fileOutputStream.close();
return errorInfo;
}
/* JADX WARN: Code restructure failed: missing block: B:22:0x0075, code lost:
if (r13 != null) goto L38;
*/
/* JADX WARN: Code restructure failed: missing block: B:24:0x0090, code lost:
if (r9 != com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_SUCCESS) goto L43;
*/
/* JADX WARN: Code restructure failed: missing block: B:25:0x0092, code lost:
if (r1 == null) goto L43;
*/
/* JADX WARN: Code restructure failed: missing block: B:26:?, code lost:
return r1;
*/
/* JADX WARN: Code restructure failed: missing block: B:29:0x0096, code lost:
return r9;
*/
/* JADX WARN: Code restructure failed: missing block: B:30:0x008b, code lost:
r14.releaseImage(r13);
*/
/* JADX WARN: Code restructure failed: missing block: B:38:0x0089, code lost:
if (r13 == null) goto L39;
*/
/* JADX WARN: Removed duplicated region for block: B:44:0x0099 */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static com.kofax.kmc.kut.utilities.error.ErrorInfo saveIpBitmap(android.graphics.Bitmap r15, java.lang.String r16, com.kofax.kmc.ken.engines.data.Image.ImageMimeType r17, int r18, int r19, int r20, java.lang.String r21) {
/*
r0 = r16
r7 = r20
r8 = r21
java.lang.String r1 = com.kofax.kmc.ken.engines.service.ImageService.TAG
java.lang.String r2 = "Saving a bitmap using image processor to "
java.lang.String r3 = java.lang.String.valueOf(r16)
java.lang.String r2 = r2.concat(r3)
com.kofax.mobile.sdk._internal.k.b(r1, r2)
com.kofax.kmc.kut.utilities.error.ErrorInfo r9 = com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_SUCCESS
com.kofax.kmc.kut.utilities.error.ErrorInfo r10 = com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_SUCCESS
r1 = 24
r11 = 3
r12 = 1
r3 = r18
if (r3 != r1) goto L23
r2 = r11
goto L24
L23:
r2 = r12
L24:
if (r15 == 0) goto L9d
if (r0 == 0) goto L9d
r13 = 0
com.kofax.kmc.ken.engines.iplib.IpLib r14 = com.kofax.kmc.ken.engines.iplib.IpLib.getInstance() // Catch: java.lang.Throwable -> L7f com.kofax.kmc.kut.utilities.error.KmcException -> L82
r6 = 0
r1 = r15
r3 = r18
r4 = r19
r5 = r19
com.kofax.kmc.ken.engines.iplib.IpImage r13 = a(r1, r2, r3, r4, r5, r6) // Catch: java.lang.Throwable -> L7b com.kofax.kmc.kut.utilities.error.KmcException -> L7d
com.kofax.kmc.kut.utilities.error.ErrorInfo r1 = r13.mErrorInfo // Catch: java.lang.Throwable -> L7b com.kofax.kmc.kut.utilities.error.KmcException -> L7d
int[] r2 = com.kofax.kmc.ken.engines.service.ImageService.AnonymousClass1.iz // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
int r3 = r17.ordinal() // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
r2 = r2[r3] // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
if (r2 == r12) goto L5d
r3 = 2
if (r2 == r3) goto L58
if (r2 == r11) goto L53
com.kofax.kmc.kut.utilities.error.ErrorInfo r9 = com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_ED_MIMETYPE // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
java.lang.String r0 = "saveIpBitmap method does not support MIMETYPE_UNKNOWN"
r9.setErrCause(r0) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
r0 = 0
goto L61
L53:
int r0 = r14.writePngImage(r13, r0) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
goto L61
L58:
int r0 = r14.writeTiffImage(r13, r7, r0, r8) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
goto L61
L5d:
int r0 = r14.writeJpegImage(r13, r7, r0, r8) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
L61:
if (r0 == 0) goto L75
com.kofax.kmc.kut.utilities.IpLibUtil$IpErrHashMap<java.lang.Integer, com.kofax.kmc.kut.utilities.error.ErrorInfo> r2 = com.kofax.kmc.kut.utilities.IpLibUtil.ipErrHashMap // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
java.lang.Integer r0 = java.lang.Integer.valueOf(r0) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
java.lang.Object r0 = r2.get(r0) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
r9 = r0
com.kofax.kmc.kut.utilities.error.ErrorInfo r9 = (com.kofax.kmc.kut.utilities.error.ErrorInfo) r9 // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
java.lang.String r0 = "saveIpBitmap write to file returned error"
r9.setErrCause(r0) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L78 java.lang.Throwable -> L7b
L75:
if (r13 == 0) goto L8e
goto L8b
L78:
r0 = move-exception
r10 = r1
goto L84
L7b:
r0 = move-exception
goto L97
L7d:
r0 = move-exception
goto L84
L7f:
r0 = move-exception
r14 = r13
goto L97
L82:
r0 = move-exception
r14 = r13
L84:
com.kofax.kmc.kut.utilities.error.ErrorInfo r9 = r0.getErrorInfo() // Catch: java.lang.Throwable -> L7b
r1 = r10
if (r13 == 0) goto L8e
L8b:
r14.releaseImage(r13)
L8e:
com.kofax.kmc.kut.utilities.error.ErrorInfo r0 = com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_SUCCESS
if (r9 != r0) goto L95
if (r1 == 0) goto L95
goto L96
L95:
r1 = r9
L96:
return r1
L97:
if (r13 == 0) goto L9c
r14.releaseImage(r13)
L9c:
throw r0
L9d:
if (r15 != 0) goto La2
java.lang.String r0 = "bitmap is null"
goto La4
La2:
java.lang.String r0 = "filename is null"
La4:
com.kofax.kmc.kut.utilities.error.NullPointerException r1 = new com.kofax.kmc.kut.utilities.error.NullPointerException
java.lang.String r2 = "saveIpBitmap: "
java.lang.String r0 = r2.concat(r0)
r1.<init>(r0)
throw r1
*/
throw new UnsupportedOperationException("Method not decompiled: com.kofax.kmc.ken.engines.service.ImageService.saveIpBitmap(android.graphics.Bitmap, java.lang.String, com.kofax.kmc.ken.engines.data.Image$ImageMimeType, int, int, int, java.lang.String):com.kofax.kmc.kut.utilities.error.ErrorInfo");
}
public static int imgMimeTypetoIpFileType(Image.ImageMimeType imageMimeType) {
if (Image.ImageMimeType.MIMETYPE_JPEG == imageMimeType) {
return 2;
}
if (Image.ImageMimeType.MIMETYPE_PNG == imageMimeType) {
return 5;
}
if (Image.ImageMimeType.MIMETYPE_TIFF == imageMimeType) {
return 3;
}
if (imageMimeType == null || Image.ImageMimeType.MIMETYPE_UNKNOWN == imageMimeType) {
return 0;
}
throw new InternalError("ProcessPageOutRep: unable to recognize imageMimeType");
}
public static ErrorInfo saveToFileBuffer(byte[] bArr, IpFileBuffer ipFileBuffer) {
try {
int writeToFileBuffer = IpLib.getInstance().writeToFileBuffer(bArr, ipFileBuffer);
ErrorInfo errorInfo = IpLibUtil.ipErrHashMap.get(Integer.valueOf(writeToFileBuffer));
errorInfo.setErrCause("saveToFileBuffer: writeToFileBuffer returned error ".concat(String.valueOf(writeToFileBuffer)));
return errorInfo;
} catch (KmcException e) {
return e.getErrorInfo();
}
}
/* JADX WARN: Code restructure failed: missing block: B:18:0x003e, code lost:
if (r8 != null) goto L30;
*/
/* JADX WARN: Code restructure failed: missing block: B:20:0x0059, code lost:
if (r0 != com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_SUCCESS) goto L35;
*/
/* JADX WARN: Code restructure failed: missing block: B:21:0x005b, code lost:
if (r10 == null) goto L35;
*/
/* JADX WARN: Code restructure failed: missing block: B:23:0x0061, code lost:
if (r10 != com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_EV_MEMORY) goto L51;
*/
/* JADX WARN: Code restructure failed: missing block: B:25:0x0065, code lost:
return com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_ED_NO_MEMORY_FOR_BUFFERED_FILE;
*/
/* JADX WARN: Code restructure failed: missing block: B:27:?, code lost:
return r10;
*/
/* JADX WARN: Code restructure failed: missing block: B:28:0x005e, code lost:
r10 = r0;
*/
/* JADX WARN: Code restructure failed: missing block: B:29:0x0054, code lost:
r9.releaseImage(r8);
*/
/* JADX WARN: Code restructure failed: missing block: B:34:0x0052, code lost:
if (r8 == null) goto L31;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static com.kofax.kmc.kut.utilities.error.ErrorInfo saveIpBitmap(android.graphics.Bitmap r10, int r11, com.kofax.kmc.ken.engines.iplib.IpFileBuffer r12) {
/*
java.lang.String r0 = com.kofax.kmc.ken.engines.service.ImageService.TAG
java.lang.String r1 = "Saving a bitmap using image processor to FileBuffer"
com.kofax.mobile.sdk._internal.k.b(r0, r1)
com.kofax.kmc.kut.utilities.error.ErrorInfo r0 = com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_SUCCESS
com.kofax.kmc.kut.utilities.error.ErrorInfo r1 = com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_SUCCESS
int r4 = r12.mBitDepth
r2 = 24
if (r4 != r2) goto L13
r2 = 3
goto L14
L13:
r2 = 1
L14:
r3 = r2
if (r10 == 0) goto L6c
r8 = 0
com.kofax.kmc.ken.engines.iplib.IpLib r9 = com.kofax.kmc.ken.engines.iplib.IpLib.getInstance() // Catch: java.lang.Throwable -> L48 com.kofax.kmc.kut.utilities.error.KmcException -> L4b
r7 = 0
r2 = r10
r5 = r11
r6 = r11
com.kofax.kmc.ken.engines.iplib.IpImage r8 = a(r2, r3, r4, r5, r6, r7) // Catch: java.lang.Throwable -> L44 com.kofax.kmc.kut.utilities.error.KmcException -> L46
com.kofax.kmc.kut.utilities.error.ErrorInfo r10 = r8.mErrorInfo // Catch: java.lang.Throwable -> L44 com.kofax.kmc.kut.utilities.error.KmcException -> L46
int r11 = r9.writeImageToFileBuffer(r8, r12) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L41 java.lang.Throwable -> L44
if (r11 == 0) goto L3e
com.kofax.kmc.kut.utilities.IpLibUtil$IpErrHashMap<java.lang.Integer, com.kofax.kmc.kut.utilities.error.ErrorInfo> r12 = com.kofax.kmc.kut.utilities.IpLibUtil.ipErrHashMap // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L41 java.lang.Throwable -> L44
java.lang.Integer r11 = java.lang.Integer.valueOf(r11) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L41 java.lang.Throwable -> L44
java.lang.Object r11 = r12.get(r11) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L41 java.lang.Throwable -> L44
r0 = r11
com.kofax.kmc.kut.utilities.error.ErrorInfo r0 = (com.kofax.kmc.kut.utilities.error.ErrorInfo) r0 // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L41 java.lang.Throwable -> L44
java.lang.String r11 = "saveIpBitmap: writeImageToFileBuffer returned error"
r0.setErrCause(r11) // Catch: com.kofax.kmc.kut.utilities.error.KmcException -> L41 java.lang.Throwable -> L44
L3e:
if (r8 == 0) goto L57
goto L54
L41:
r11 = move-exception
r1 = r10
goto L4d
L44:
r10 = move-exception
goto L66
L46:
r11 = move-exception
goto L4d
L48:
r10 = move-exception
r9 = r8
goto L66
L4b:
r11 = move-exception
r9 = r8
L4d:
com.kofax.kmc.kut.utilities.error.ErrorInfo r0 = r11.getErrorInfo() // Catch: java.lang.Throwable -> L44
r10 = r1
if (r8 == 0) goto L57
L54:
r9.releaseImage(r8)
L57:
com.kofax.kmc.kut.utilities.error.ErrorInfo r11 = com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_SUCCESS
if (r0 != r11) goto L5e
if (r10 == 0) goto L5e
goto L5f
L5e:
r10 = r0
L5f:
com.kofax.kmc.kut.utilities.error.ErrorInfo r11 = com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_EV_MEMORY
if (r10 != r11) goto L65
com.kofax.kmc.kut.utilities.error.ErrorInfo r10 = com.kofax.kmc.kut.utilities.error.ErrorInfo.KMC_ED_NO_MEMORY_FOR_BUFFERED_FILE
L65:
return r10
L66:
if (r8 == 0) goto L6b
r9.releaseImage(r8)
L6b:
throw r10
L6c:
com.kofax.kmc.kut.utilities.error.NullPointerException r10 = new com.kofax.kmc.kut.utilities.error.NullPointerException
java.lang.String r11 = "saveIpBitmapToFileBuffer: bitmap is null"
r10.<init>(r11)
throw r10
*/
throw new UnsupportedOperationException("Method not decompiled: com.kofax.kmc.ken.engines.service.ImageService.saveIpBitmap(android.graphics.Bitmap, int, com.kofax.kmc.ken.engines.iplib.IpFileBuffer):com.kofax.kmc.kut.utilities.error.ErrorInfo");
}
public static ErrorInfo deleteImage(File file) {
if (file.exists()) {
String str = TAG;
StringBuilder sb = new StringBuilder("Deleting image from '");
sb.append(file);
sb.append("'");
k.b(str, sb.toString());
return file.delete() ? ErrorInfo.KMC_SUCCESS : ErrorInfo.KMC_ED_FILE_STILL_REMAINS;
}
return ErrorInfo.KMC_GN_FILE_NOT_FOUND;
}
public static Image.KenBitmap createScaledBitmapFromBitmapWithMatrix(Bitmap bitmap, float f) {
Image.KenBitmap kenBitmap = new Image.KenBitmap();
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int round = Math.round(width * f);
int round2 = Math.round(height * f);
Matrix matrix = new Matrix();
matrix.postScale(f, f);
try {
kenBitmap.bitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);
} catch (OutOfMemoryError e) {
String str = TAG;
StringBuilder sb = new StringBuilder("OOM while creating preview bitmap. width -> ");
sb.append(round);
sb.append(", height -> ");
sb.append(round2);
k.e(str, sb.toString(), (Throwable) e);
ErrorInfo errorInfo = ErrorInfo.KMC_GN_OUT_OF_MEMORY;
errorInfo.setErrCause("Out of memory error creating scaled bitmap from original bitmap with matrix.");
kenBitmap.errInfo = errorInfo;
}
return kenBitmap;
}
/* JADX WARN: Code restructure failed: missing block: B:19:0x0070, code lost:
if (r1 != null) goto L62;
*/
/* JADX WARN: Code restructure failed: missing block: B:23:0x0082, code lost:
r1.close();
*/
/* JADX WARN: Code restructure failed: missing block: B:25:0x0086, code lost:
r8 = move-exception;
*/
/* JADX WARN: Code restructure failed: missing block: B:26:0x0087, code lost:
com.kofax.mobile.sdk._internal.k.e(com.kofax.kmc.ken.engines.service.ImageService.TAG, "Error closing input stream", (java.lang.Throwable) r8);
*/
/* JADX WARN: Code restructure failed: missing block: B:30:0x0080, code lost:
if (r1 == null) goto L37;
*/
/* JADX WARN: Removed duplicated region for block: B:10:0x0056 */
/* JADX WARN: Removed duplicated region for block: B:11:0x0059 A[EXC_TOP_SPLITTER, SYNTHETIC] */
/* JADX WARN: Removed duplicated region for block: B:55:0x00ba A[EXC_TOP_SPLITTER, SYNTHETIC] */
/* JADX WARN: Unsupported multi-entry loop pattern (BACK_EDGE: B:10:0x0056 -> B:8:0x0054). Please report as a decompilation issue!!! */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static android.graphics.Bitmap loadScaledBitmap(android.content.Context r8, android.net.Uri r9, int r10, int r11, int r12) {
/*
long r0 = af()
java.lang.String r2 = com.kofax.kmc.ken.engines.service.FileService.getFileNameByUri(r9, r8)
boolean r3 = o.gjJ.b(r2)
if (r3 != 0) goto L2c
java.io.File r3 = new java.io.File
r3.<init>(r2)
java.lang.String r2 = com.kofax.kmc.ken.engines.service.ImageService.TAG
java.lang.String r4 = "Getting file size..."
com.kofax.mobile.sdk._internal.k.b(r2, r4)
java.lang.String r4 = "... file -> "
java.lang.String r5 = java.lang.String.valueOf(r3)
java.lang.String r4 = r4.concat(r5)
com.kofax.mobile.sdk._internal.k.b(r2, r4)
long r2 = r3.length()
goto L2e
L2c:
r2 = -1
L2e:
r4 = 0
int r4 = (r2 > r4 ? 1 : (r2 == r4 ? 0 : -1))
java.lang.String r5 = "Error closing input stream"
r6 = 1
r7 = 0
if (r4 > 0) goto L42
int r0 = a(r8, r9, r10, r11) // Catch: java.lang.Throwable -> L3d java.lang.Exception -> L40 java.lang.OutOfMemoryError -> L90
goto L54
L3d:
r8 = move-exception
goto Lb7
L40:
r8 = move-exception
goto L78
L42:
int r4 = (r2 > r0 ? 1 : (r2 == r0 ? 0 : -1))
if (r4 <= 0) goto L53
long r0 = java.lang.Math.min(r0, r2) // Catch: java.lang.Throwable -> L3d java.lang.Exception -> L40 java.lang.OutOfMemoryError -> L90
double r0 = (double) r0 // Catch: java.lang.Throwable -> L3d java.lang.Exception -> L40 java.lang.OutOfMemoryError -> L90
r2 = 4611686018427387904(0x4000000000000000, double:2.0)
double r0 = java.lang.Math.pow(r2, r0) // Catch: java.lang.Throwable -> L3d java.lang.Exception -> L40 java.lang.OutOfMemoryError -> L90
int r0 = (int) r0
goto L54
L53:
r0 = r6
L54:
if (r0 > r12) goto L59
int r0 = r0 << 1
goto L54
L59:
android.graphics.BitmapFactory$Options r12 = new android.graphics.BitmapFactory$Options // Catch: java.lang.Throwable -> L3d java.lang.Exception -> L40 java.lang.OutOfMemoryError -> L8f
r12.<init>() // Catch: java.lang.Throwable -> L3d java.lang.Exception -> L40 java.lang.OutOfMemoryError -> L8f
r12.inPurgeable = r6 // Catch: java.lang.Throwable -> L3d java.lang.Exception -> L40 java.lang.OutOfMemoryError -> L8f
if (r0 <= r6) goto L64
r12.inSampleSize = r0 // Catch: java.lang.Throwable -> L3d java.lang.Exception -> L40 java.lang.OutOfMemoryError -> L8f
L64:
android.content.ContentResolver r1 = r8.getContentResolver() // Catch: java.lang.Throwable -> L3d java.lang.Exception -> L40 java.lang.OutOfMemoryError -> L8f
java.io.InputStream r1 = r1.openInputStream(r9) // Catch: java.lang.Throwable -> L3d java.lang.Exception -> L40 java.lang.OutOfMemoryError -> L8f
android.graphics.Bitmap r7 = android.graphics.BitmapFactory.decodeStream(r1, r7, r12) // Catch: java.lang.Exception -> L73 java.lang.OutOfMemoryError -> L75 java.lang.Throwable -> L8d
if (r1 == 0) goto L8c
goto L82
L73:
r8 = move-exception
goto L79
L75:
r6 = r0
r7 = r1
goto L90
L78:
r1 = r7
L79:
java.lang.String r9 = com.kofax.kmc.ken.engines.service.ImageService.TAG // Catch: java.lang.Throwable -> L8d
java.lang.String r10 = "Error decoding image"
com.kofax.mobile.sdk._internal.k.e(r9, r10, r8) // Catch: java.lang.Throwable -> L8d
if (r1 == 0) goto L8c
L82:
r1.close() // Catch: java.lang.Exception -> L86
goto L8c
L86:
r8 = move-exception
java.lang.String r9 = com.kofax.kmc.ken.engines.service.ImageService.TAG
com.kofax.mobile.sdk._internal.k.e(r9, r5, r8)
L8c:
return r7
L8d:
r8 = move-exception
goto Lb8
L8f:
r6 = r0
L90:
java.lang.String r12 = com.kofax.kmc.ken.engines.service.ImageService.TAG // Catch: java.lang.Throwable -> L3d
java.lang.StringBuilder r0 = new java.lang.StringBuilder // Catch: java.lang.Throwable -> L3d
r0.<init>() // Catch: java.lang.Throwable -> L3d
java.lang.String r1 = "Encountered OOM while trying to load scaled bitmap. Increasing minimum scale to "
r0.append(r1) // Catch: java.lang.Throwable -> L3d
r0.append(r6) // Catch: java.lang.Throwable -> L3d
java.lang.String r0 = r0.toString() // Catch: java.lang.Throwable -> L3d
com.kofax.mobile.sdk._internal.k.e(r12, r0) // Catch: java.lang.Throwable -> L3d
android.graphics.Bitmap r8 = loadScaledBitmap(r8, r9, r10, r11, r6) // Catch: java.lang.Throwable -> L3d
if (r7 == 0) goto Lb6
r7.close() // Catch: java.lang.Exception -> Lb0
goto Lb6
Lb0:
r9 = move-exception
java.lang.String r10 = com.kofax.kmc.ken.engines.service.ImageService.TAG
com.kofax.mobile.sdk._internal.k.e(r10, r5, r9)
Lb6:
return r8
Lb7:
r1 = r7
Lb8:
if (r1 == 0) goto Lc4
r1.close() // Catch: java.lang.Exception -> Lbe
goto Lc4
Lbe:
r9 = move-exception
java.lang.String r10 = com.kofax.kmc.ken.engines.service.ImageService.TAG
com.kofax.mobile.sdk._internal.k.e(r10, r5, r9)
Lc4:
throw r8
*/
throw new UnsupportedOperationException("Method not decompiled: com.kofax.kmc.ken.engines.service.ImageService.loadScaledBitmap(android.content.Context, android.net.Uri, int, int, int):android.graphics.Bitmap");
}
private static int a(Context context, Uri uri, int i, int i2) throws FileNotFoundException {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
try {
InputStream openInputStream = context.getContentResolver().openInputStream(uri);
Bitmap decodeStream = BitmapFactory.decodeStream(openInputStream, null, options);
int i3 = options.outHeight;
float f = i / options.outWidth;
float f2 = i2 / i3;
try {
openInputStream.close();
} catch (Exception e) {
k.e(TAG, "Error closing input stream", (Throwable) e);
}
if (decodeStream != null) {
decodeStream.recycle();
}
return (int) Math.pow(2.0d, Math.min(f, f2));
} catch (java.io.FileNotFoundException e2) {
throw new FileNotFoundException(e2);
}
}
private static long af() {
long j = Runtime.getRuntime().totalMemory();
long maxMemory = Runtime.getRuntime().maxMemory();
long j2 = maxMemory / 2;
long min = Math.min(j, j2);
int i = AnonymousClass1.iA[ix.ordinal()];
if (i == 1) {
maxMemory = j2;
} else if (i != 2) {
maxMemory = min;
}
dumpHeapStats("getLargestUseableImage()");
return maxMemory;
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: com.kofax.kmc.ken.engines.service.ImageService$1, reason: invalid class name */
/* loaded from: classes3.dex */
public static /* synthetic */ class AnonymousClass1 {
static final int[] iA;
static final int[] iz;
static {
int[] iArr = new int[UseableImageMemoryLimit.values().length];
iA = iArr;
try {
iArr[UseableImageMemoryLimit.LARGE.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
iA[UseableImageMemoryLimit.MAXIMUM.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
iA[UseableImageMemoryLimit.NORMAL.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
int[] iArr2 = new int[Image.ImageMimeType.values().length];
iz = iArr2;
try {
iArr2[Image.ImageMimeType.MIMETYPE_JPEG.ordinal()] = 1;
} catch (NoSuchFieldError unused4) {
}
try {
iz[Image.ImageMimeType.MIMETYPE_TIFF.ordinal()] = 2;
} catch (NoSuchFieldError unused5) {
}
try {
iz[Image.ImageMimeType.MIMETYPE_PNG.ordinal()] = 3;
} catch (NoSuchFieldError unused6) {
}
}
}
public static void dumpHeapStats(String str) {
String str2 = TAG;
k.b(str2, "*** [START] Dumping heap stats ***");
k.b(str2, "--- msg -> ".concat(String.valueOf(str)));
StringBuilder sb = new StringBuilder("--- native heap size -> ");
sb.append(Debug.getNativeHeapSize());
k.b(str2, sb.toString());
StringBuilder sb2 = new StringBuilder("--- native heap size (free) -> ");
sb2.append(Debug.getNativeHeapFreeSize());
k.b(str2, sb2.toString());
StringBuilder sb3 = new StringBuilder("--- native heap size (allocated) -> ");
sb3.append(Debug.getNativeHeapAllocatedSize());
k.b(str2, sb3.toString());
StringBuilder sb4 = new StringBuilder("--- totalMemory -> ");
sb4.append(Runtime.getRuntime().totalMemory());
k.b(str2, sb4.toString());
StringBuilder sb5 = new StringBuilder("--- maxMemory -> ");
sb5.append(Runtime.getRuntime().maxMemory());
k.b(str2, sb5.toString());
k.b(str2, "*** [END] Dumping heap stats ***");
}
private static boolean g(String str) {
return gjJ.e((CharSequence) str, (CharSequence) ".png");
}
private static boolean h(String str) {
return gjJ.e((CharSequence) str, (CharSequence) ".tif") || gjJ.e((CharSequence) str, (CharSequence) ".tiff");
}
private static boolean i(String str) {
return gjJ.e((CharSequence) str, (CharSequence) ".jpg") || gjJ.e((CharSequence) str, (CharSequence) ".jpeg");
}
public static ImageDimension getImageDimension(String str) throws IOException {
FileInputStream fileInputStream;
if (!g(str) && !h(str) && !i(str)) {
throw new IOException("File format not supported");
}
if (h(str)) {
long length = new File(str).length();
try {
try {
fileInputStream = new FileInputStream(str);
} catch (Throwable th) {
th = th;
fileInputStream = null;
}
} catch (java.io.FileNotFoundException e) {
e = e;
}
try {
ImageDimension a2 = a(fileInputStream, length);
try {
fileInputStream.close();
} catch (java.io.IOException e2) {
k.d(TAG, "Unable to close file", (Throwable) e2);
}
return a2;
} catch (java.io.FileNotFoundException e3) {
e = e3;
throw new FileNotFoundException(e);
} catch (Throwable th2) {
th = th2;
if (fileInputStream != null) {
try {
fileInputStream.close();
} catch (java.io.IOException e4) {
k.d(TAG, "Unable to close file", (Throwable) e4);
}
}
throw th;
}
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(str, options);
return new ImageDimension(options.outWidth, options.outHeight);
}
private static ImageDimension a(InputStream inputStream, long j) throws IOException {
ReadableByteChannel newChannel = Channels.newChannel(inputStream);
ByteBuffer allocate = ByteBuffer.allocate(12);
a(newChannel, allocate, 8);
byte b = allocate.get();
if (b != allocate.get() || (b != 73 && b != 77)) {
throw new IOException("Not a tiff file.");
}
allocate.order(b == 73 ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN);
if (allocate.getShort() != 42) {
throw new IOException("Not a tiff file.");
}
try {
if (allocate.getInt() >= j) {
throw new IOException("Invalid tiff file.");
}
inputStream.skip(r4 - 8);
a(newChannel, allocate, 2);
int i = -1;
int i2 = -1;
int i3 = -1;
for (int i4 = allocate.getShort(); i4 > 0 && (i < 0 || i2 < 0 || i3 < 0); i4--) {
a(newChannel, allocate, 12);
short s = allocate.getShort();
if (s == 256) {
i = a(allocate);
} else if (s == 257) {
i2 = a(allocate);
} else if (s == 259 && (i3 = a(allocate)) == 5) {
throw new IOException("Unsupported tiff compression type - LZW");
}
}
return new ImageDimension(i, i2);
} catch (java.io.IOException e) {
throw new IOException(e);
}
}
private static void a(ReadableByteChannel readableByteChannel, ByteBuffer byteBuffer, int i) throws IOException {
byteBuffer.position(0);
byteBuffer.limit(i);
while (byteBuffer.hasRemaining()) {
try {
readableByteChannel.read(byteBuffer);
} catch (java.io.IOException e) {
throw new IOException(e);
}
}
byteBuffer.flip();
}
private static int a(ByteBuffer byteBuffer) {
short s = byteBuffer.getShort();
if (byteBuffer.getInt() != 1) {
throw new RuntimeException("Expected a count of 1 for the given field.");
}
if (s == 3) {
return byteBuffer.getShort();
}
if (s == 4) {
return byteBuffer.getInt();
}
return byteBuffer.get() & UnsignedBytes.MAX_VALUE;
}
public static Bitmap createScaledBitmap(Bitmap bitmap, boolean z) {
long af = af();
long rowBytes = bitmap.getRowBytes() * bitmap.getHeight();
String str = TAG;
k.b(str, "Creating scaled bitmap...");
k.b(str, "... original bitmap size -> ".concat(String.valueOf(rowBytes)));
if (rowBytes > af) {
dumpHeapStats("createScaledBitmap - preScale");
int width = bitmap.getWidth();
int height = bitmap.getHeight();
float f = ((float) af) / ((float) rowBytes);
int i = (int) (width * f);
int i2 = (int) (height * f);
k.b(str, "... scaling bitmap with factor of ".concat(String.valueOf(f)));
try {
Bitmap createScaledBitmap = Bitmap.createScaledBitmap(bitmap, i, i2, true);
StringBuilder sb = new StringBuilder("... new bitmap size -> ");
sb.append(createScaledBitmap.getRowBytes() * createScaledBitmap.getHeight());
k.b(str, sb.toString());
if (z) {
k.b(str, "... recyling old bitmap");
bitmap.recycle();
bitmap = null;
}
dumpHeapStats("createScaledBitmap - postScale");
return createScaledBitmap;
} catch (OutOfMemoryError e) {
String str2 = TAG;
k.e(str2, "Got OOM while trying to create scaled bitmap", (Throwable) e);
k.e(str2, "... largestImageSize -> ".concat(String.valueOf(af)));
k.e(str2, "... bmSize -> ".concat(String.valueOf(rowBytes)));
StringBuilder sb2 = new StringBuilder("... orgHeight -> ");
sb2.append(height);
sb2.append(", orgWidth -> ");
sb2.append(width);
k.e(str2, sb2.toString());
StringBuilder sb3 = new StringBuilder("... height -> ");
sb3.append(i2);
sb3.append(", width -> ");
sb3.append(i);
k.e(str2, sb3.toString());
}
}
return bitmap;
}
public static Bitmap rotateImage(byte[] bArr, boolean z, boolean z2) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPurgeable = true;
dumpHeapStats("rotateImage - preDecode");
Bitmap decodeByteArray = BitmapFactory.decodeByteArray(bArr, 0, bArr.length, options);
dumpHeapStats("rotateImage - postDecode");
return rotateBitmap(decodeByteArray, z, z2);
}
public static Bitmap rotateBitmap(Bitmap bitmap, boolean z, boolean z2) {
return rotateBitmap(bitmap, z, z2, true);
}
/* JADX WARN: Removed duplicated region for block: B:18:0x00ef */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static android.graphics.Bitmap rotateBitmap(android.graphics.Bitmap r13, boolean r14, boolean r15, boolean r16) {
/*
java.lang.String r1 = "Error rotating bitmap"
java.lang.String r0 = com.kofax.kmc.ken.engines.service.ImageService.TAG
java.lang.String r2 = "About to scale bitmap. Source information before scaling: "
com.kofax.mobile.sdk._internal.k.b(r0, r2)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
java.lang.String r3 = "... size -> "
r2.<init>(r3)
int r4 = r13.getRowBytes()
int r5 = r13.getHeight()
int r4 = r4 * r5
r2.append(r4)
java.lang.String r2 = r2.toString()
com.kofax.mobile.sdk._internal.k.b(r0, r2)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
java.lang.String r4 = "... height -> "
r2.<init>(r4)
int r5 = r13.getHeight()
r2.append(r5)
java.lang.String r2 = r2.toString()
com.kofax.mobile.sdk._internal.k.b(r0, r2)
java.lang.StringBuilder r2 = new java.lang.StringBuilder
java.lang.String r5 = "... width -> "
r2.<init>(r5)
int r6 = r13.getWidth()
r2.append(r6)
java.lang.String r2 = r2.toString()
com.kofax.mobile.sdk._internal.k.b(r0, r2)
if (r15 == 0) goto L56
r2 = 1
r6 = r13
android.graphics.Bitmap r2 = createScaledBitmap(r13, r2)
goto L58
L56:
r6 = r13
r2 = r6
L58:
android.graphics.Matrix r11 = new android.graphics.Matrix
r11.<init>()
if (r14 == 0) goto L62
r6 = 1119092736(0x42b40000, float:90.0)
goto L64
L62:
r6 = -1028390912(0xffffffffc2b40000, float:-90.0)
L64:
r11.postRotate(r6)
java.lang.String r6 = "rotateImage - preRotate"
dumpHeapStats(r6)
java.lang.String r6 = "About to rotate bitmap. Source information: "
com.kofax.mobile.sdk._internal.k.b(r0, r6)
java.lang.StringBuilder r6 = new java.lang.StringBuilder
r6.<init>(r3)
int r3 = r2.getRowBytes()
int r7 = r2.getHeight()
int r3 = r3 * r7
r6.append(r3)
java.lang.String r3 = r6.toString()
com.kofax.mobile.sdk._internal.k.b(r0, r3)
java.lang.StringBuilder r3 = new java.lang.StringBuilder
r3.<init>(r4)
int r4 = r2.getHeight()
r3.append(r4)
java.lang.String r3 = r3.toString()
com.kofax.mobile.sdk._internal.k.b(r0, r3)
java.lang.StringBuilder r3 = new java.lang.StringBuilder
r3.<init>(r5)
int r4 = r2.getWidth()
r3.append(r4)
java.lang.String r3 = r3.toString()
com.kofax.mobile.sdk._internal.k.b(r0, r3)
r7 = 0
r8 = 0
r3 = 0
int r9 = r2.getWidth() // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
int r10 = r2.getHeight() // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
r12 = 0
r6 = r2
android.graphics.Bitmap r3 = android.graphics.Bitmap.createBitmap(r6, r7, r8, r9, r10, r11, r12) // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
java.lang.StringBuilder r4 = new java.lang.StringBuilder // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
java.lang.String r5 = "... rotated bitmap size -> "
r4.<init>(r5) // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
int r5 = r3.getRowBytes() // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
int r6 = r3.getHeight() // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
int r5 = r5 * r6
r4.append(r5) // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
java.lang.String r4 = r4.toString() // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
com.kofax.mobile.sdk._internal.k.b(r0, r4) // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
if (r16 == 0) goto Ldf
r2.recycle() // Catch: java.lang.Exception -> Le0 java.lang.OutOfMemoryError -> Le7
Ldf:
return r3
Le0:
r0 = move-exception
java.lang.String r4 = com.kofax.kmc.ken.engines.service.ImageService.TAG
com.kofax.mobile.sdk._internal.k.e(r4, r1, r0)
goto Led
Le7:
r0 = move-exception
java.lang.String r4 = com.kofax.kmc.ken.engines.service.ImageService.TAG
com.kofax.mobile.sdk._internal.k.e(r4, r1, r0)
Led:
if (r3 == 0) goto Lf2
r3.recycle()
Lf2:
return r2
*/
throw new UnsupportedOperationException("Method not decompiled: com.kofax.kmc.ken.engines.service.ImageService.rotateBitmap(android.graphics.Bitmap, boolean, boolean, boolean):android.graphics.Bitmap");
}
private static void f(Bitmap bitmap) {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put(RttiJsonExactionHelper.HEIGHT, bitmap.getHeight());
jSONObject.put(RttiJsonExactionHelper.WIDTH, bitmap.getWidth());
jSONObject.put("density", bitmap.getDensity());
jSONObject.put("rowBytes", bitmap.getRowBytes());
jSONObject.put("totalBytes", bitmap.getRowBytes() * bitmap.getHeight());
} catch (Exception e) {
k.e(TAG, "Error creating JSON for Bitmap", (Throwable) e);
}
String str = TAG;
StringBuilder sb = new StringBuilder("Bitmap -> ");
sb.append(jSONObject.toString());
k.b(str, sb.toString());
}
private static void a(int i, ProcessPageResults processPageResults) {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("resultCode", i);
jSONObject.put("resultStr", processPageResults.resultStr);
jSONObject.put("processedImage", a(processPageResults.processedImg));
} catch (Exception e) {
k.e(TAG, "Error creating JSON for ProcessPageResults", (Throwable) e);
}
String str = TAG;
StringBuilder sb = new StringBuilder("ProcessPageResults -> ");
sb.append(jSONObject.toString());
k.b(str, sb.toString());
}
private static JSONObject a(IpImage ipImage) {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put(RttiJsonExactionHelper.WIDTH, ipImage.getWidth());
jSONObject.put(RttiJsonExactionHelper.HEIGHT, ipImage.getHeight());
jSONObject.put("channels", ipImage.getChannels());
jSONObject.put("bitDepth", ipImage.getBitDepth());
jSONObject.put("dpiX", ipImage.getDpiX());
jSONObject.put("dpiY", ipImage.getDpiY());
} catch (Exception e) {
k.e("IpImage", "Error creating JSON", (Throwable) e);
}
return jSONObject;
}
public static Image.KenBitmap readBitmapFromFileUsingIp(String str, float f, IpImageMetadata ipImageMetadata) {
Image.KenBitmap kenBitmap = new Image.KenBitmap();
try {
IpLib ipLib = IpLib.getInstance();
IpImage ipImage = new IpImage();
Integer valueOf = Integer.valueOf(ipLib.readImageFile(ipImage, str, f, ipImageMetadata));
if (valueOf.intValue() != 0) {
kenBitmap.errInfo = IpLibUtil.ipErrHashMap.get(valueOf);
} else {
kenBitmap.bitmap = ipLib.createBitmap(ipImage);
kenBitmap.mDpiX = Integer.valueOf(ipImage.mDpiX);
kenBitmap.mDpiY = Integer.valueOf(ipImage.mDpiY);
ipLib.releaseImage(ipImage);
}
} catch (KmcException e) {
kenBitmap.errInfo = e.getErrorInfo();
}
return kenBitmap;
}
public static Image.KenBitmap loadBitmapFromFileBuffer(IpFileBuffer ipFileBuffer) {
Image.KenBitmap kenBitmap = new Image.KenBitmap();
ByteBuffer byteBuffer = ipFileBuffer.mByteBuffer;
if (byteBuffer.capacity() <= 0) {
throw new InternalError("loadBitmapFromFileBuffer: fileBuffer has no capacity");
}
int capacity = byteBuffer.capacity();
byte[] bArr = new byte[capacity];
byteBuffer.get(bArr);
kenBitmap.bitmap = BitmapFactory.decodeByteArray(bArr, 0, capacity);
if (kenBitmap.bitmap == null) {
kenBitmap.errInfo = ErrorInfo.KMC_ED_BUFFERED_READ_FAILED;
}
return kenBitmap;
}
public static Image.KenBitmap readBitmapFromFileBufferUsingIp(IpFileBuffer ipFileBuffer, float f) {
Image.KenBitmap kenBitmap = new Image.KenBitmap();
try {
IpLib ipLib = IpLib.getInstance();
IpImage ipImage = new IpImage();
Integer valueOf = Integer.valueOf(ipLib.readImageFromFileBuffer(ipImage, f, ipFileBuffer));
if (valueOf.intValue() != 0) {
kenBitmap.errInfo = IpLibUtil.ipErrHashMap.get(valueOf);
} else {
try {
kenBitmap.bitmap = ipLib.createBitmap(ipImage);
} catch (OutOfMemoryError e) {
k.e(TAG, "OOM while creating bitmap.", (Throwable) e);
ErrorInfo errorInfo = ErrorInfo.KMC_GN_OUT_OF_MEMORY;
errorInfo.setErrCause("Out of memory error reading bitmap from file buffer");
kenBitmap.errInfo = errorInfo;
}
if (kenBitmap.errInfo == ErrorInfo.KMC_SUCCESS) {
kenBitmap.mDpiX = Integer.valueOf(ipImage.mDpiX);
kenBitmap.mDpiY = Integer.valueOf(ipImage.mDpiY);
ipLib.releaseImage(ipImage);
}
}
} catch (KmcException e2) {
kenBitmap.errInfo = e2.getErrorInfo();
}
return kenBitmap;
}
public static ErrorInfo clearFileBufferUsingIp(IpFileBuffer ipFileBuffer) throws KmcException {
ErrorInfo errorInfo = ErrorInfo.KMC_SUCCESS;
if (IpLib.getInstance().releaseFileBuffer(ipFileBuffer) == 0) {
return errorInfo;
}
throw new InternalError("clearFileBufferUsingIp: releaseFileBuffer failed");
}
private static IpImage a(Bitmap bitmap, Integer num) throws KmcException {
return createIpImageFromBitmap(bitmap, num, false);
}
public static IpImage createIpImageFromBitmap(Bitmap bitmap, Integer num, boolean z) throws KmcException {
int i;
int i2;
int i3 = z ? 1 : 3;
int i4 = z ? 1 : 24;
int i5 = z ? 200 : 72;
int i6 = z ? 200 : 72;
if (num == null || num.intValue() <= 0) {
i = i6;
i2 = i5;
} else {
i2 = num.intValue();
i = i2;
}
return a(bitmap, i3, i4, i2, i, false);
}
private static IpImage a(Bitmap bitmap, int i, int i2, int i3, int i4, boolean z) throws KmcException {
IpLib ipLib = IpLib.getInstance();
IpImage ipImage = new IpImage();
int createImage = ipLib.createImage(ipImage, bitmap, i, i2, i3, i4);
if (z) {
bitmap.recycle();
}
if (createImage == -9900) {
ipImage.mErrorInfo = ErrorInfo.KMC_ED_IMAGE_WRITTEN_IS_NOT_BITONAL;
} else if (createImage == -9901) {
ipImage.mErrorInfo = ErrorInfo.KMC_ED_IMAGE_WRITTEN_IS_NOT_GRAY;
} else if (createImage < 0) {
k.e(TAG, "Bad return code when creating an image from a bitmap. rc = ".concat(String.valueOf(createImage)));
throw new KmcException(IpLibUtil.ipErrHashMap.get(Integer.valueOf(createImage)));
}
return ipImage;
}
/* loaded from: classes3.dex */
public static class EnhancementResults {
public ErrorInfo errorInfo;
public Image image;
public Image originalImage;
public EnhancementResults(ErrorInfo errorInfo) {
this.errorInfo = errorInfo;
}
public EnhancementResults(Image image, Image image2) {
this.errorInfo = ErrorInfo.KMC_SUCCESS;
this.image = image;
this.originalImage = image2;
}
}
private static EnhancementResults a(Bitmap bitmap, ImagePerfectionProfile imagePerfectionProfile, ImageProcessorConfiguration imageProcessorConfiguration, BoundingTetragon boundingTetragon, Image image, int i, ProcessPageOutRep processPageOutRep, IpLib.ProcessingProgressClient processingProgressClient, Image image2, Integer num) throws KmcException {
boolean z;
f(bitmap);
Integer imageDPI = image.getImageDPI();
if (num == null || num.intValue() <= 0) {
z = false;
} else {
z = true;
imageDPI = num;
}
IpLib ipLib = IpLib.getInstance();
IpImage a2 = a(bitmap, imageDPI);
ProcessPageResults processPageResults = new ProcessPageResults();
String str = TAG;
StringBuilder sb = new StringBuilder("inImg width ------> ");
sb.append(a2.getWidth());
k.b(str, sb.toString());
StringBuilder sb2 = new StringBuilder("inImg height ------> ");
sb2.append(a2.getHeight());
k.b(str, sb2.toString());
a a3 = a(imagePerfectionProfile, imageProcessorConfiguration, boundingTetragon, image, z);
String str2 = a3.iC;
processPageResults.resultStr = a3.iD;
dumpHeapStats("enhanceImage(before processPage)");
int processPage = ipLib.processPage(processPageResults, a2, str2, processPageOutRep, i, processingProgressClient, processPageOutRep);
a(processPage, processPageResults);
ipLib.releaseImage(a2);
dumpHeapStats("enhanceImage(after processPage)");
return a(processPage, ipLib, processPageResults, imagePerfectionProfile, str2, image, processPageOutRep, image2);
}
public static EnhancementResults enhanceImage(Bitmap bitmap, ImagePerfectionProfile imagePerfectionProfile, ImageProcessorConfiguration imageProcessorConfiguration, BoundingTetragon boundingTetragon, Image image, int i, ProcessPageOutRep processPageOutRep, IpLib.ProcessingProgressClient processingProgressClient, Image image2, Integer num) throws KmcException {
return a(bitmap, imagePerfectionProfile, imageProcessorConfiguration, boundingTetragon, image, i, processPageOutRep, processingProgressClient, image2, num);
}
/* JADX WARN: Removed duplicated region for block: B:14:0x00c5 */
/* JADX WARN: Removed duplicated region for block: B:17:0x00d8 */
/* JADX WARN: Removed duplicated region for block: B:20:0x00f1 */
/* JADX WARN: Removed duplicated region for block: B:24:0x00f4 */
/* JADX WARN: Removed duplicated region for block: B:33:0x00a2 */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
private static com.kofax.kmc.ken.engines.service.ImageService.EnhancementResults a(int r7, com.kofax.kmc.ken.engines.iplib.IpLib r8, com.kofax.kmc.ken.engines.iplib.ProcessPageResults r9, com.kofax.kmc.ken.engines.data.ImagePerfectionProfile r10, java.lang.String r11, com.kofax.kmc.ken.engines.data.Image r12, com.kofax.kmc.ken.engines.iplib.ProcessPageOutRep r13, com.kofax.kmc.ken.engines.data.Image r14) throws com.kofax.kmc.kut.utilities.error.KmcException {
/*
Method dump skipped, instructions count: 302
To view this dump add '--comments-level debug' option
*/
throw new UnsupportedOperationException("Method not decompiled: com.kofax.kmc.ken.engines.service.ImageService.a(int, com.kofax.kmc.ken.engines.iplib.IpLib, com.kofax.kmc.ken.engines.iplib.ProcessPageResults, com.kofax.kmc.ken.engines.data.ImagePerfectionProfile, java.lang.String, com.kofax.kmc.ken.engines.data.Image, com.kofax.kmc.ken.engines.iplib.ProcessPageOutRep, com.kofax.kmc.ken.engines.data.Image):com.kofax.kmc.ken.engines.service.ImageService$EnhancementResults");
}
public static File copyToTempImage(Context context, File file, String str) throws IOException {
StringBuilder sb = new StringBuilder();
sb.append(FileService.getLocalPath(context));
sb.append(File.separator);
sb.append(str);
File file2 = new File(sb.toString());
try {
if (FileService.copyFile(file, file2)) {
return file2;
}
return null;
} catch (java.io.IOException e) {
throw new IOException(e);
}
}
public static File createTempImageFile(Context context, String str) {
File file = new File(FileService.getLocalPath(context));
file.mkdir();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mmddyy-hhMMss", Locale.US);
StringBuilder sb = new StringBuilder();
sb.append(simpleDateFormat.format(new Date()));
sb.append(".");
sb.append(str);
return new File(file, sb.toString());
}
public static String dumpBitmapSize(Bitmap bitmap, String str) {
if (bitmap == null || bitmap.isRecycled()) {
return "Unable to calculate size";
}
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = new StringBuilder("Dumping bitmap data from ");
sb2.append(str);
sb2.append(": ");
sb.append(sb2.toString());
StringBuilder sb3 = new StringBuilder("Height -> ");
sb3.append(bitmap.getHeight());
sb.append(sb3.toString());
StringBuilder sb4 = new StringBuilder(", Width -> ");
sb4.append(bitmap.getWidth());
sb.append(sb4.toString());
StringBuilder sb5 = new StringBuilder(", Density -> ");
sb5.append(bitmap.getDensity());
sb.append(sb5.toString());
StringBuilder sb6 = new StringBuilder(", Size -> ");
sb6.append(bitmap.getRowBytes() * bitmap.getHeight());
sb.append(sb6.toString());
return sb.toString();
}
public static String[] getRawTempFilenames(Activity activity, boolean z) {
String[] strArr = new String[2];
if (z) {
strArr[0] = "temp_raw";
strArr[1] = "temp_raw_thmb";
} else {
StringBuilder sb = new StringBuilder();
sb.append(FileService.getLocalPath(activity));
sb.append(File.separator);
sb.append("temp_raw");
strArr[0] = new File(sb.toString()).getAbsolutePath();
StringBuilder sb2 = new StringBuilder();
sb2.append(FileService.getLocalPath(activity));
sb2.append(File.separator);
sb2.append("temp_raw_thmb");
strArr[1] = new File(sb2.toString()).getAbsolutePath();
}
return strArr;
}
public static String[] getProcessedTempFilenames(Activity activity, boolean z) {
String[] strArr = new String[2];
if (z) {
strArr[0] = "temp_proc";
strArr[1] = "temp_proc_thmb";
} else {
StringBuilder sb = new StringBuilder();
sb.append(FileService.getLocalPath(activity));
sb.append(File.separator);
sb.append("temp_proc");
strArr[0] = new File(sb.toString()).getAbsolutePath();
StringBuilder sb2 = new StringBuilder();
sb2.append(FileService.getLocalPath(activity));
sb2.append(File.separator);
sb2.append("temp_proc_thmb");
strArr[1] = new File(sb2.toString()).getAbsolutePath();
}
return strArr;
}
public static Image.KenBitmap loadBitmapFromFile(String str, int i, boolean z) {
return loadBitmapFromURI(Uri.fromFile(new File(str)), i, -1L, z);
}
public static Image.KenBitmap loadBitmapFromURI(Uri uri, int i, long j, boolean z) {
Image.KenBitmap kenBitmap;
InputStream inputStream;
while (true) {
String str = TAG;
StringBuilder sb = new StringBuilder("Loading bitmap from uri '");
sb.append(uri);
sb.append("' at scale ");
sb.append(i);
sb.append(" with a largest image size of ");
sb.append(j);
k.b(str, sb.toString());
kenBitmap = new Image.KenBitmap();
try {
Context context = AppContextProvider.getContext();
Bitmap bitmap = null;
if (context != null) {
inputStream = context.getContentResolver().openInputStream(uri);
} else {
kenBitmap.errInfo = ErrorInfo.KMC_GN_BAD_APPLICATION_CONTEXT;
inputStream = null;
}
try {
try {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPurgeable = true;
if (i > 1) {
options.inSampleSize = i;
}
Bitmap decodeStream = BitmapFactory.decodeStream(inputStream, null, options);
if (decodeStream == null) {
kenBitmap.errInfo = ErrorInfo.KMC_ED_BITMAP_READ_FROM_FILE_FAILED;
} else {
kenBitmap.bitmap = decodeStream;
kenBitmap.scaleFactor = i;
kenBitmap.errInfo = i > 1 ? ErrorInfo.KMC_ED_IMAGE_IS_SCALED : ErrorInfo.KMC_SUCCESS;
StringBuilder sb2 = new StringBuilder("bm width=");
sb2.append(decodeStream.getWidth());
k.b(str, sb2.toString());
StringBuilder sb3 = new StringBuilder("bm height=");
sb3.append(decodeStream.getHeight());
k.b(str, sb3.toString());
}
try {
inputStream.close();
} catch (Exception e) {
k.e(TAG, "Error closing input stream", (Throwable) e);
}
if (j <= 0 || decodeStream.getRowBytes() * decodeStream.getHeight() <= j) {
break;
}
if (decodeStream != null) {
decodeStream.recycle();
}
i <<= 1;
} catch (OutOfMemoryError unused) {
String str2 = TAG;
StringBuilder sb4 = new StringBuilder("OOM while loading a bitmap at scale ");
sb4.append(i);
k.e(str2, sb4.toString());
if (0 != 0) {
bitmap.recycle();
}
kenBitmap.errInfo = ErrorInfo.KMC_GN_OUT_OF_MEMORY;
if (z) {
kenBitmap = loadBitmapFromURI(uri, i << 1, j, z);
}
try {
inputStream.close();
} catch (Exception e2) {
k.e(TAG, "Error closing input stream", (Throwable) e2);
}
return kenBitmap;
}
} catch (Throwable th) {
try {
inputStream.close();
} catch (Exception e3) {
k.e(TAG, "Error closing input stream", (Throwable) e3);
}
throw th;
}
} catch (java.io.FileNotFoundException e4) {
k.e(TAG, "Error loading file", (Throwable) e4);
kenBitmap.errInfo = ErrorInfo.KMC_GN_FILE_NOT_FOUND;
kenBitmap.errInfo.setErrCause(e4.getMessage());
return kenBitmap;
}
}
return kenBitmap;
}
public static File saveIpPNG(Context context, IpLib ipLib, IpImage ipImage, File file) {
if (file == null) {
file = createTempImageFile(context, "png");
}
String str = TAG;
StringBuilder sb = new StringBuilder("Using image processor to save a png to ");
sb.append(file.getAbsolutePath());
k.b(str, sb.toString());
k.b(str, "Result code -> ".concat(String.valueOf(ipLib.writePngImage(ipImage, file.getAbsolutePath()))));
return file;
}
public static File saveIpJPG(Context context, IpLib ipLib, IpImage ipImage) {
File createTempImageFile = createTempImageFile(context, "jpg");
String str = TAG;
StringBuilder sb = new StringBuilder("Using image processor to save a jpg to ");
sb.append(createTempImageFile.getAbsolutePath());
k.b(str, sb.toString());
k.b(str, "Result code -> ".concat(String.valueOf(ipLib.writeJpegImage(ipImage, 90, createTempImageFile.getAbsolutePath()))));
return createTempImageFile;
}
public static File saveToGallery(Bitmap bitmap) {
File file = new File(Environment.getExternalStorageDirectory(), "KofaxMobileCapture");
file.mkdir();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mmddyy-hhMMss", Locale.US);
StringBuilder sb = new StringBuilder();
sb.append(simpleDateFormat.format(new Date()));
sb.append(".png");
File file2 = new File(file, sb.toString());
try {
FileOutputStream fileOutputStream = new FileOutputStream(file2);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
return file2;
} catch (Exception e) {
k.e(TAG, "Error saving image to gallery", (Throwable) e);
return null;
}
}
/* JADX WARN: Removed duplicated region for block: B:29:0x0090 A[Catch: IOException -> 0x008c, TRY_LEAVE, TryCatch #5 {IOException -> 0x008c, blocks: (B:37:0x0088, B:29:0x0090), top: B:36:0x0088 }] */
/* JADX WARN: Removed duplicated region for block: B:36:0x0088 A[EXC_TOP_SPLITTER, SYNTHETIC] */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static void copyImageToExternalStorage(java.io.File r10) throws com.kofax.kmc.kut.utilities.error.IOException {
/*
java.io.File r0 = new java.io.File
java.lang.StringBuilder r1 = new java.lang.StringBuilder
r1.<init>()
java.io.File r2 = android.os.Environment.getExternalStorageDirectory()
r1.append(r2)
java.lang.String r2 = java.io.File.separator
r1.append(r2)
java.lang.String r2 = r10.getName()
r1.append(r2)
java.lang.String r1 = r1.toString()
r0.<init>(r1)
r1 = 0
r0.createNewFile() // Catch: java.lang.Throwable -> L78 java.io.IOException -> L7c
java.io.FileInputStream r2 = new java.io.FileInputStream // Catch: java.lang.Throwable -> L78 java.io.IOException -> L7c
r2.<init>(r10) // Catch: java.lang.Throwable -> L78 java.io.IOException -> L7c
java.nio.channels.FileChannel r10 = r2.getChannel() // Catch: java.lang.Throwable -> L78 java.io.IOException -> L7c
java.io.FileOutputStream r2 = new java.io.FileOutputStream // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
r2.<init>(r0) // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
java.nio.channels.FileChannel r1 = r2.getChannel() // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
r4 = 0
long r6 = r10.size() // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
r3 = r10
r8 = r1
r3.transferTo(r4, r6, r8) // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
java.lang.String r2 = com.kofax.kmc.ken.engines.service.ImageService.TAG // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
java.lang.StringBuilder r3 = new java.lang.StringBuilder // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
java.lang.String r4 = "copyImageToExternalStorage(), successfully moved image to external storage Path: "
r3.<init>(r4) // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
java.lang.String r0 = r0.getAbsolutePath() // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
r3.append(r0) // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
java.lang.String r0 = r3.toString() // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
com.kofax.mobile.sdk._internal.k.c(r2, r0) // Catch: java.lang.Throwable -> L6e java.io.IOException -> L73
if (r10 == 0) goto L61
r10.close() // Catch: java.io.IOException -> L5f
goto L61
L5f:
r10 = move-exception
goto L67
L61:
if (r1 == 0) goto L6d
r1.close() // Catch: java.io.IOException -> L5f
return
L67:
com.kofax.kmc.kut.utilities.error.IOException r0 = new com.kofax.kmc.kut.utilities.error.IOException
r0.<init>(r10)
throw r0
L6d:
return
L6e:
r0 = move-exception
r9 = r1
r1 = r10
r10 = r9
goto L86
L73:
r0 = move-exception
r9 = r1
r1 = r10
r10 = r9
goto L7f
L78:
r10 = move-exception
r0 = r10
r10 = r1
goto L86
L7c:
r10 = move-exception
r0 = r10
r10 = r1
L7f:
com.kofax.kmc.kut.utilities.error.IOException r2 = new com.kofax.kmc.kut.utilities.error.IOException // Catch: java.lang.Throwable -> L85
r2.<init>(r0) // Catch: java.lang.Throwable -> L85
throw r2 // Catch: java.lang.Throwable -> L85
L85:
r0 = move-exception
L86:
if (r1 == 0) goto L8e
r1.close() // Catch: java.io.IOException -> L8c
goto L8e
L8c:
r10 = move-exception
goto L94
L8e:
if (r10 == 0) goto L9a
r10.close() // Catch: java.io.IOException -> L8c
goto L9a
L94:
com.kofax.kmc.kut.utilities.error.IOException r0 = new com.kofax.kmc.kut.utilities.error.IOException
r0.<init>(r10)
throw r0
L9a:
throw r0
*/
throw new UnsupportedOperationException("Method not decompiled: com.kofax.kmc.ken.engines.service.ImageService.copyImageToExternalStorage(java.io.File):void");
}
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes3.dex */
public static class a {
private String iC;
private String iD;
private a() {
}
/* synthetic */ a(AnonymousClass1 anonymousClass1) {
this();
}
}
private static a a(ImagePerfectionProfile imagePerfectionProfile, ImageProcessorConfiguration imageProcessorConfiguration, BoundingTetragon boundingTetragon, Image image, boolean z) throws KmcException {
String str;
a aVar = new a(null);
if (imagePerfectionProfile != null || imageProcessorConfiguration != null) {
if (imageProcessorConfiguration != null) {
StringBuilder sb = new StringBuilder("");
sb.append(c.a(imageProcessorConfiguration, false, z).ippString);
str = sb.toString();
if (boundingTetragon != null) {
StringBuilder sb2 = new StringBuilder();
sb2.append(str);
sb2.append(k(boundingTetragon));
str = sb2.toString();
}
} else if (imagePerfectionProfile != null) {
str = new ImagePerfectionProfile.FriendIPP(imagePerfectionProfile, BuildConfig.APPLICATION_ID).toFinalOpString();
if (boundingTetragon != null) {
StringBuilder sb3 = new StringBuilder();
sb3.append(str);
sb3.append(k(boundingTetragon));
str = sb3.toString();
}
} else {
str = "";
}
if (passBarcodes) {
StringBuilder sb4 = new StringBuilder();
sb4.append(str);
sb4.append(u(image));
str = sb4.toString();
}
aVar.iC = str;
aVar.iD = "";
return aVar;
}
throw new KmcRuntimeException(ErrorInfo.KMC_IP_NO_PROFILE);
}
private static String k(BoundingTetragon boundingTetragon) {
StringBuilder sb = new StringBuilder("_ExternalCornersFront_");
sb.append(boundingTetragon.getTopLeft().x);
sb.append(",");
sb.append(boundingTetragon.getTopLeft().y);
sb.append(",");
sb.append(boundingTetragon.getTopRight().x);
sb.append(",");
sb.append(boundingTetragon.getTopRight().y);
sb.append(",");
sb.append(boundingTetragon.getBottomLeft().x);
sb.append(",");
sb.append(boundingTetragon.getBottomLeft().y);
sb.append(",");
sb.append(boundingTetragon.getBottomRight().x);
sb.append(",");
sb.append(boundingTetragon.getBottomRight().y);
return sb.toString();
}
private static String u(Image image) {
StringBuilder sb = new StringBuilder("");
List<BarCodeResult> imageBarCodes = image.getImageBarCodes();
if (imageBarCodes != null) {
for (int i = 0; i < imageBarCodes.size(); i++) {
BarCodeResult barCodeResult = imageBarCodes.get(i);
sb.append("_ExternalBarcodeFront_");
BoundingTetragon boundingBox = barCodeResult.getBoundingBox();
sb.append(boundingBox.getTopLeft().x);
sb.append(",");
sb.append(boundingBox.getTopLeft().y);
sb.append(",");
sb.append(boundingBox.getTopRight().x);
sb.append(",");
sb.append(boundingBox.getTopRight().y);
sb.append(",");
sb.append(boundingBox.getBottomLeft().x);
sb.append(",");
sb.append(boundingBox.getBottomLeft().y);
sb.append(",");
sb.append(boundingBox.getBottomRight().x);
sb.append(",");
sb.append(boundingBox.getBottomRight().y);
sb.append(",");
sb.append(barCodeResult.getType());
sb.append(",");
sb.append(barCodeResult.getDirection());
sb.append(",");
sb.append(BarCodeDataFormat.ASCII);
sb.append(",");
sb.append(i);
}
}
return sb.toString();
}
public static void checkDateTimeFormat(String str) {
try {
iu.b.a(str);
} catch (ParseException unused) {
throw new KmcRuntimeException(ErrorInfo.KMC_ED_INVALID_ISO_DATE_TIME_FORMAT);
}
}
public static String getTimeStringFromExif(Image image, String str) {
String str2;
String imageMetaData = image.getImageMetaData();
if (isImageProcessingMetadata(imageMetaData)) {
return null;
}
int length = str.length();
String[] split = imageMetaData.split("\n");
int length2 = split.length;
int i = 0;
while (true) {
if (i >= length2) {
str2 = null;
break;
}
String str3 = split[i];
if (str3.contains(str)) {
k.c(TAG, "Found timeTag: ".concat(String.valueOf(str3)));
str2 = str3.substring(length);
break;
}
i++;
}
if (gjJ.b((CharSequence) str2)) {
return null;
}
return str2;
}
private static String j(String str) {
if (str.contains(iv)) {
return "UTC";
}
return null;
}
public static boolean isImageProcessingMetadata(String str) {
return str.startsWith(UrlTreeKt.componentParamPrefix);
}
public static Date exifTimeToDate(String str, String str2) {
if (gjJ.a(str)) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(EXIF_TIME_FORMAT, Locale.US);
if (gjJ.a(str2)) {
simpleDateFormat.setTimeZone(TimeZone.getTimeZone(str2));
}
try {
return simpleDateFormat.parse(str);
} catch (ParseException e) {
k.e(TAG, e.getMessage());
}
}
return null;
}
public static String exifTimeFromDate(Date date, String str) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(EXIF_TIME_FORMAT, Locale.US);
if (gjJ.a(str)) {
simpleDateFormat.setTimeZone(TimeZone.getTimeZone(str));
}
return simpleDateFormat.format(date);
}
public static Date UTCStringToDate(String str) {
if (!gjJ.a(str)) {
return null;
}
try {
return iu.b.a(str);
} catch (ParseException e) {
throw new InternalError(e.getMessage());
}
}
public static String UTCStringFromDate(Date date) {
gjU gju = iu.c;
Calendar calendar = Calendar.getInstance(gju.d, gju.a);
calendar.setTime(date);
return ((StringBuilder) gju.d(calendar, (Calendar) new StringBuilder(gju.c))).toString();
}
public static ErrorInfo verifyRestrictions(Image image, Image.FileRestriction fileRestriction) {
ErrorInfo errorInfo = ErrorInfo.KMC_SUCCESS;
if (Image.FileRestriction.ANSI_X9 != fileRestriction) {
return errorInfo;
}
if (image.getImageMimeType() != Image.ImageMimeType.MIMETYPE_TIFF) {
return ErrorInfo.KMC_ED_FILE_RESTRICTION_MIMETYPE;
}
if (image.getImageOutputColor() != Image.OutputColor.BITDEPTH_BITONAL) {
return ErrorInfo.KMC_ED_FILE_RESTRICTION_BITDEPTH;
}
return (image.getImageDPI().intValue() == 200 || image.getImageDPI().intValue() == 240) ? errorInfo : ErrorInfo.KMC_ED_FILE_RESTRICTION_DPI;
}
public static String createMetadataFromImage(Image image, Image.FileRestriction fileRestriction) throws KmcException {
StringBuilder sb = new StringBuilder();
if (Image.FileRestriction.ANSI_X9 == fileRestriction) {
sb.append(KExifTagDateTimeDigitized);
sb.append(exifTimeFromDate(UTCStringToDate(image.getImageCreateDateTime()), "UTC"));
sb.append(System.getProperty("line.separator"));
return sb.toString();
}
if (image.getImageLatitude() != null && image.getImageLongitude() != null) {
sb.append(createGPSMetadata(image));
}
if (image.getTargetFrame() != null) {
sb.append(createTargetFrameMetadata(image));
}
sb.append(KExifTagDateTimeOriginal);
Image.FriendI friendI = new Image.FriendI(image, BuildConfig.APPLICATION_ID);
sb.append(friendI.getImageOriginalDateTime());
sb.append(System.getProperty("line.separator"));
sb.append(KExifTagDateTime);
sb.append(friendI.getImageOriginalDateTime());
sb.append(System.getProperty("line.separator"));
sb.append(KExifTagDateTimeDigitized);
sb.append(exifTimeFromDate(UTCStringToDate(image.getImageCreateDateTime()), "UTC"));
sb.append(System.getProperty("line.separator"));
sb.append(iv);
sb.append(System.getProperty("line.separator"));
return sb.toString();
}
public static String getCornersJsonFromMetaData(String str) {
if (TextUtils.isEmpty(str)) {
return null;
}
Matcher matcher = Pattern.compile("\\\"Corners\\\"[\\s]*:[\\s]*\\{[^\\{\\}]*\\}", 2).matcher(str);
if (!matcher.find()) {
return null;
}
Matcher matcher2 = Pattern.compile("\\{[^\\{\\}]*\\}").matcher(matcher.group());
if (matcher2.find()) {
return matcher2.group();
}
return null;
}
public static BoundingTetragon getCornersTetragonFromJson(String str) {
if (TextUtils.isEmpty(str)) {
return null;
}
try {
JSONObject jSONObject = new JSONObject(str);
return new BoundingTetragon((int) jSONObject.getDouble("TLx"), (int) jSONObject.getDouble("TLy"), (int) jSONObject.getDouble("TRx"), (int) jSONObject.getDouble("TRy"), (int) jSONObject.getDouble("BLx"), (int) jSONObject.getDouble("BLy"), (int) jSONObject.getDouble("BRx"), (int) jSONObject.getDouble("BRy"));
} catch (JSONException e) {
k.e(e);
return null;
}
}
public static void setUseableImageMemoryLimits(UseableImageMemoryLimit useableImageMemoryLimit) {
ix = useableImageMemoryLimit;
}
public static void setInterimImageFileFormat(InterimImageFileFormat interimImageFileFormat) {
iy = interimImageFileFormat;
}
public static UseableImageMemoryLimit getUseableImageMemoryLimits() {
return ix;
}
public static InterimImageFileFormat getInterimImageFileFormat() {
return iy;
}
}