jimu-decompiled/sources/com/unity3d/ads/api/Cache.java
2025-05-13 19:24:51 +02:00

406 lines
17 KiB
Java

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<String> 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.<init>(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<String> getMetaData(String str, JSONArray jSONArray) throws JSONException, IOException, RuntimeException {
File file = new File(str);
SparseArray<String> 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");
}
}