package com.unity3d.ads.api; import android.annotation.TargetApi; import android.media.MediaMetadataRetriever; import android.util.Base64; import android.util.SparseArray; import com.ubt.jimu.controller.data.widget.JockstickDataConverter; import com.unity3d.ads.cache.CacheDirectory; import com.unity3d.ads.cache.CacheDirectoryType; import com.unity3d.ads.cache.CacheError; import com.unity3d.ads.cache.CacheThread; import com.unity3d.ads.device.Device; import com.unity3d.ads.log.DeviceLog; import com.unity3d.ads.misc.Utilities; import com.unity3d.ads.properties.ClientProperties; import com.unity3d.ads.properties.SdkProperties; import com.unity3d.ads.request.WebRequestError; import com.unity3d.ads.webview.bridge.WebViewCallback; import com.unity3d.ads.webview.bridge.WebViewExposed; import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.Charset; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; /* loaded from: classes2.dex */ public class Cache { @WebViewExposed public static void deleteFile(String str, WebViewCallback webViewCallback) { if (new File(fileIdToFilename(str)).delete()) { webViewCallback.invoke(new Object[0]); } else { webViewCallback.error(CacheError.FILE_IO_ERROR, new Object[0]); } } @WebViewExposed public static void download(String str, String str2, JSONArray jSONArray, Boolean bool, WebViewCallback webViewCallback) { if (CacheThread.isActive()) { webViewCallback.error(CacheError.FILE_ALREADY_CACHING, new Object[0]); return; } if (!Device.isActiveNetworkConnected()) { webViewCallback.error(CacheError.NO_INTERNET, new Object[0]); return; } try { CacheThread.download(str, fileIdToFilename(str2), Request.getHeadersMap(jSONArray), bool.booleanValue()); webViewCallback.invoke(new Object[0]); } catch (Exception e) { DeviceLog.exception("Error mapping headers for the request", e); webViewCallback.error(WebRequestError.MAPPING_HEADERS_FAILED, str, str2); } } private static String fileIdToFilename(String str) { return SdkProperties.getCacheDirectory() + "/" + SdkProperties.getCacheFilePrefix() + str; } @WebViewExposed public static void getCacheDirectoryExists(WebViewCallback webViewCallback) { File cacheDirectory = SdkProperties.getCacheDirectory(); if (cacheDirectory == null) { webViewCallback.error(CacheError.CACHE_DIRECTORY_NULL, new Object[0]); } else { webViewCallback.invoke(Boolean.valueOf(cacheDirectory.exists())); } } @WebViewExposed public static void getCacheDirectoryType(WebViewCallback webViewCallback) { CacheDirectory cacheDirectoryObject = SdkProperties.getCacheDirectoryObject(); if (cacheDirectoryObject == null || cacheDirectoryObject.getCacheDirectory(ClientProperties.getApplicationContext()) == null) { webViewCallback.error(CacheError.CACHE_DIRECTORY_NULL, new Object[0]); return; } if (!cacheDirectoryObject.getCacheDirectory(ClientProperties.getApplicationContext()).exists()) { webViewCallback.error(CacheError.CACHE_DIRECTORY_DOESNT_EXIST, new Object[0]); return; } CacheDirectoryType type = cacheDirectoryObject.getType(); if (type == null) { webViewCallback.error(CacheError.CACHE_DIRECTORY_TYPE_NULL, new Object[0]); } else { webViewCallback.invoke(type.name()); } } @WebViewExposed public static void getFileContent(String str, String str2, WebViewCallback webViewCallback) { Object encodeToString; String fileIdToFilename = fileIdToFilename(str); File file = new File(fileIdToFilename); if (!file.exists()) { webViewCallback.error(CacheError.FILE_NOT_FOUND, str, fileIdToFilename); return; } try { byte[] readFileBytes = Utilities.readFileBytes(file); if (str2 == null) { webViewCallback.error(CacheError.UNSUPPORTED_ENCODING, str, fileIdToFilename, str2); return; } if (str2.equals("UTF-8")) { encodeToString = Charset.forName("UTF-8").decode(ByteBuffer.wrap(readFileBytes)).toString(); } else { if (!str2.equals("Base64")) { webViewCallback.error(CacheError.UNSUPPORTED_ENCODING, str, fileIdToFilename, str2); return; } encodeToString = Base64.encodeToString(readFileBytes, 2); } webViewCallback.invoke(encodeToString); } catch (IOException e) { webViewCallback.error(CacheError.FILE_IO_ERROR, str, fileIdToFilename, e.getMessage() + ", " + e.getClass().getName()); } } @WebViewExposed public static void getFileInfo(String str, WebViewCallback webViewCallback) { try { webViewCallback.invoke(getFileJson(str)); } catch (JSONException e) { DeviceLog.exception("Error creating JSON", e); webViewCallback.error(CacheError.JSON_ERROR, new Object[0]); } } private static JSONObject getFileJson(String str) throws JSONException { JSONObject jSONObject = new JSONObject(); jSONObject.put(JockstickDataConverter.ID, str); File file = new File(fileIdToFilename(str)); if (file.exists()) { jSONObject.put("found", true); jSONObject.put("size", file.length()); jSONObject.put("mtime", file.lastModified()); } else { jSONObject.put("found", false); } return jSONObject; } @WebViewExposed public static void getFilePath(String str, WebViewCallback webViewCallback) { if (new File(fileIdToFilename(str)).exists()) { webViewCallback.invoke(fileIdToFilename(str)); } else { webViewCallback.error(CacheError.FILE_NOT_FOUND, new Object[0]); } } @WebViewExposed public static void getFiles(WebViewCallback webViewCallback) { File cacheDirectory = SdkProperties.getCacheDirectory(); if (cacheDirectory == null) { return; } DeviceLog.debug("Unity Ads cache: checking app directory for Unity Ads cached files"); File[] listFiles = cacheDirectory.listFiles(new FilenameFilter() { // from class: com.unity3d.ads.api.Cache.1 @Override // java.io.FilenameFilter public boolean accept(File file, String str) { return str.startsWith(SdkProperties.getCacheFilePrefix()); } }); if (listFiles == null || listFiles.length == 0) { webViewCallback.invoke(new JSONArray()); } try { JSONArray jSONArray = new JSONArray(); for (File file : listFiles) { String substring = file.getName().substring(SdkProperties.getCacheFilePrefix().length()); DeviceLog.debug("Unity Ads cache: found " + substring + ", " + file.length() + " bytes"); jSONArray.put(getFileJson(substring)); } webViewCallback.invoke(jSONArray); } catch (JSONException e) { DeviceLog.exception("Error creating JSON", e); webViewCallback.error(CacheError.JSON_ERROR, new Object[0]); } } @WebViewExposed public static void getFreeSpace(WebViewCallback webViewCallback) { webViewCallback.invoke(Long.valueOf(Device.getFreeSpace(SdkProperties.getCacheDirectory()))); } @WebViewExposed public static void getHash(String str, WebViewCallback webViewCallback) { webViewCallback.invoke(Utilities.Sha256(str)); } @WebViewExposed public static void getMetaData(String str, JSONArray jSONArray, WebViewCallback webViewCallback) { try { SparseArray metaData = getMetaData(fileIdToFilename(str), jSONArray); JSONArray jSONArray2 = new JSONArray(); for (int i = 0; i < metaData.size(); i++) { JSONArray jSONArray3 = new JSONArray(); jSONArray3.put(metaData.keyAt(i)); jSONArray3.put(metaData.valueAt(i)); jSONArray2.put(jSONArray3); } webViewCallback.invoke(jSONArray2); } catch (IOException e) { webViewCallback.error(CacheError.FILE_IO_ERROR, e.getMessage()); } catch (RuntimeException e2) { webViewCallback.error(CacheError.INVALID_ARGUMENT, e2.getMessage()); } catch (JSONException e3) { webViewCallback.error(CacheError.JSON_ERROR, e3.getMessage()); } } @WebViewExposed public static void getProgressInterval(WebViewCallback webViewCallback) { webViewCallback.invoke(Integer.valueOf(CacheThread.getProgressInterval())); } @WebViewExposed public static void getTimeouts(WebViewCallback webViewCallback) { webViewCallback.invoke(Integer.valueOf(CacheThread.getConnectTimeout()), Integer.valueOf(CacheThread.getReadTimeout())); } @WebViewExposed public static void getTotalSpace(WebViewCallback webViewCallback) { webViewCallback.invoke(Long.valueOf(Device.getTotalSpace(SdkProperties.getCacheDirectory()))); } @WebViewExposed public static void isCaching(WebViewCallback webViewCallback) { webViewCallback.invoke(Boolean.valueOf(CacheThread.isActive())); } @WebViewExposed public static void recreateCacheDirectory(WebViewCallback webViewCallback) { if (SdkProperties.getCacheDirectory().exists()) { webViewCallback.error(CacheError.CACHE_DIRECTORY_EXISTS, new Object[0]); return; } SdkProperties.setCacheDirectory(null); if (SdkProperties.getCacheDirectory() == null) { webViewCallback.error(CacheError.CACHE_DIRECTORY_NULL, new Object[0]); } else { webViewCallback.invoke(new Object[0]); } } /* JADX WARN: Removed duplicated region for block: B:25:0x0085 */ /* JADX WARN: Removed duplicated region for block: B:27:? A[RETURN, SYNTHETIC] */ @com.unity3d.ads.webview.bridge.WebViewExposed /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct code enable 'Show inconsistent code' option in preferences */ public static void setFileContent(java.lang.String r9, java.lang.String r10, java.lang.String r11, com.unity3d.ads.webview.bridge.WebViewCallback r12) { /* java.lang.String r0 = "UTF-8" java.lang.String r1 = "Error closing FileOutputStream" java.lang.String r2 = fileIdToFilename(r9) r3 = 3 r4 = 2 r5 = 1 r6 = 0 byte[] r7 = r11.getBytes(r0) // Catch: java.io.UnsupportedEncodingException -> L96 if (r10 == 0) goto L3a int r8 = r10.length() if (r8 <= 0) goto L3a java.lang.String r8 = "Base64" boolean r8 = r10.equals(r8) if (r8 == 0) goto L25 byte[] r7 = android.util.Base64.decode(r11, r4) goto L3a L25: boolean r11 = r10.equals(r0) if (r11 == 0) goto L2c goto L3a L2c: com.unity3d.ads.cache.CacheError r11 = com.unity3d.ads.cache.CacheError.UNSUPPORTED_ENCODING java.lang.Object[] r0 = new java.lang.Object[r3] r0[r6] = r9 r0[r5] = r2 r0[r4] = r10 r12.error(r11, r0) return L3a: r11 = 0 java.io.FileOutputStream r0 = new java.io.FileOutputStream // Catch: java.lang.Throwable -> L56 java.io.IOException -> L58 java.io.FileNotFoundException -> L6b r0.(r2) // Catch: java.lang.Throwable -> L56 java.io.IOException -> L58 java.io.FileNotFoundException -> L6b r0.write(r7) // Catch: java.lang.Throwable -> L4f java.io.IOException -> L52 java.io.FileNotFoundException -> L54 r0.flush() // Catch: java.lang.Throwable -> L4f java.io.IOException -> L52 java.io.FileNotFoundException -> L54 r0.close() // Catch: java.lang.Exception -> L4a goto L83 L4a: r9 = move-exception com.unity3d.ads.log.DeviceLog.exception(r1, r9) goto L83 L4f: r9 = move-exception r11 = r0 goto L8b L52: r11 = r0 goto L58 L54: r11 = r0 goto L6b L56: r9 = move-exception goto L8b L58: com.unity3d.ads.cache.CacheError r0 = com.unity3d.ads.cache.CacheError.FILE_IO_ERROR // Catch: java.lang.Throwable -> L56 java.lang.Object[] r3 = new java.lang.Object[r3] // Catch: java.lang.Throwable -> L56 r3[r6] = r9 // Catch: java.lang.Throwable -> L56 r3[r5] = r2 // Catch: java.lang.Throwable -> L56 r3[r4] = r10 // Catch: java.lang.Throwable -> L56 r12.error(r0, r3) // Catch: java.lang.Throwable -> L56 if (r11 == 0) goto L82 r11.close() // Catch: java.lang.Exception -> L7e goto L82 L6b: com.unity3d.ads.cache.CacheError r0 = com.unity3d.ads.cache.CacheError.FILE_NOT_FOUND // Catch: java.lang.Throwable -> L56 java.lang.Object[] r3 = new java.lang.Object[r3] // Catch: java.lang.Throwable -> L56 r3[r6] = r9 // Catch: java.lang.Throwable -> L56 r3[r5] = r2 // Catch: java.lang.Throwable -> L56 r3[r4] = r10 // Catch: java.lang.Throwable -> L56 r12.error(r0, r3) // Catch: java.lang.Throwable -> L56 if (r11 == 0) goto L82 r11.close() // Catch: java.lang.Exception -> L7e goto L82 L7e: r9 = move-exception com.unity3d.ads.log.DeviceLog.exception(r1, r9) L82: r5 = 0 L83: if (r5 == 0) goto L8a java.lang.Object[] r9 = new java.lang.Object[r6] r12.invoke(r9) L8a: return L8b: if (r11 == 0) goto L95 r11.close() // Catch: java.lang.Exception -> L91 goto L95 L91: r10 = move-exception com.unity3d.ads.log.DeviceLog.exception(r1, r10) L95: throw r9 L96: com.unity3d.ads.cache.CacheError r11 = com.unity3d.ads.cache.CacheError.UNSUPPORTED_ENCODING java.lang.Object[] r0 = new java.lang.Object[r3] r0[r6] = r9 r0[r5] = r2 r0[r4] = r10 r12.error(r11, r0) return */ throw new UnsupportedOperationException("Method not decompiled: com.unity3d.ads.api.Cache.setFileContent(java.lang.String, java.lang.String, java.lang.String, com.unity3d.ads.webview.bridge.WebViewCallback):void"); } @WebViewExposed public static void setProgressInterval(Integer num, WebViewCallback webViewCallback) { CacheThread.setProgressInterval(num.intValue()); webViewCallback.invoke(new Object[0]); } @WebViewExposed public static void setTimeouts(Integer num, Integer num2, WebViewCallback webViewCallback) { CacheThread.setConnectTimeout(num.intValue()); CacheThread.setReadTimeout(num2.intValue()); webViewCallback.invoke(new Object[0]); } @WebViewExposed public static void stop(WebViewCallback webViewCallback) { if (!CacheThread.isActive()) { webViewCallback.error(CacheError.NOT_CACHING, new Object[0]); } else { CacheThread.cancel(); webViewCallback.invoke(new Object[0]); } } @TargetApi(10) private static SparseArray getMetaData(String str, JSONArray jSONArray) throws JSONException, IOException, RuntimeException { File file = new File(str); SparseArray sparseArray = new SparseArray<>(); if (file.exists()) { MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever(); mediaMetadataRetriever.setDataSource(file.getAbsolutePath()); for (int i = 0; i < jSONArray.length(); i++) { int i2 = jSONArray.getInt(i); String extractMetadata = mediaMetadataRetriever.extractMetadata(i2); if (extractMetadata != null) { sparseArray.put(i2, extractMetadata); } } return sparseArray; } throw new IOException("File: " + file.getAbsolutePath() + " doesn't exist"); } }