Initial commit
This commit is contained in:
106
sources/com/unity3d/ads/cache/CacheDirectory.java
vendored
Normal file
106
sources/com/unity3d/ads/cache/CacheDirectory.java
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
package com.unity3d.ads.cache;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import com.unity3d.ads.log.DeviceLog;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
|
||||
/* loaded from: classes2.dex */
|
||||
public class CacheDirectory {
|
||||
private static final String TEST_FILE_NAME = "UnityAdsTest.txt";
|
||||
private String _cacheDirName;
|
||||
private boolean _initialized = false;
|
||||
private File _cacheDirectory = null;
|
||||
private CacheDirectoryType _type = null;
|
||||
|
||||
public CacheDirectory(String str) {
|
||||
this._cacheDirName = str;
|
||||
}
|
||||
|
||||
public File createCacheDirectory(File file, String str) {
|
||||
if (file == null) {
|
||||
return null;
|
||||
}
|
||||
File file2 = new File(file, str);
|
||||
file2.mkdirs();
|
||||
if (file2.isDirectory()) {
|
||||
return file2;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public File getCacheDirectory(Context context) {
|
||||
File file;
|
||||
if (this._initialized) {
|
||||
return this._cacheDirectory;
|
||||
}
|
||||
this._initialized = true;
|
||||
if (Build.VERSION.SDK_INT > 18) {
|
||||
if ("mounted".equals(Environment.getExternalStorageState())) {
|
||||
try {
|
||||
file = createCacheDirectory(context.getExternalCacheDir(), this._cacheDirName);
|
||||
} catch (Exception e) {
|
||||
DeviceLog.exception("Creating external cache directory failed", e);
|
||||
file = null;
|
||||
}
|
||||
if (testCacheDirectory(file)) {
|
||||
this._cacheDirectory = file;
|
||||
this._type = CacheDirectoryType.EXTERNAL;
|
||||
DeviceLog.debug("Unity Ads is using external cache directory: " + file.getAbsolutePath());
|
||||
return this._cacheDirectory;
|
||||
}
|
||||
} else {
|
||||
DeviceLog.debug("External media not mounted");
|
||||
}
|
||||
}
|
||||
File filesDir = context.getFilesDir();
|
||||
if (!testCacheDirectory(filesDir)) {
|
||||
DeviceLog.error("Unity Ads failed to initialize cache directory");
|
||||
return null;
|
||||
}
|
||||
this._cacheDirectory = filesDir;
|
||||
this._type = CacheDirectoryType.INTERNAL;
|
||||
DeviceLog.debug("Unity Ads is using internal cache directory: " + filesDir.getAbsolutePath());
|
||||
return this._cacheDirectory;
|
||||
}
|
||||
|
||||
public CacheDirectoryType getType() {
|
||||
return this._type;
|
||||
}
|
||||
|
||||
public boolean testCacheDirectory(File file) {
|
||||
if (file != null && file.isDirectory()) {
|
||||
try {
|
||||
byte[] bytes = "test".getBytes("UTF-8");
|
||||
byte[] bArr = new byte[bytes.length];
|
||||
File file2 = new File(file, TEST_FILE_NAME);
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(file2);
|
||||
fileOutputStream.write(bytes);
|
||||
fileOutputStream.flush();
|
||||
fileOutputStream.close();
|
||||
FileInputStream fileInputStream = new FileInputStream(file2);
|
||||
int read = fileInputStream.read(bArr, 0, bArr.length);
|
||||
fileInputStream.close();
|
||||
if (!file2.delete()) {
|
||||
DeviceLog.debug("Failed to delete testfile " + file2.getAbsoluteFile());
|
||||
return false;
|
||||
}
|
||||
if (read != bArr.length) {
|
||||
DeviceLog.debug("Read buffer size mismatch");
|
||||
return false;
|
||||
}
|
||||
if (new String(bArr, "UTF-8").equals("test")) {
|
||||
return true;
|
||||
}
|
||||
DeviceLog.debug("Read buffer content mismatch");
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
DeviceLog.debug("Unity Ads exception while testing cache directory " + file.getAbsolutePath() + ": " + e.getMessage());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
7
sources/com/unity3d/ads/cache/CacheDirectoryType.java
vendored
Normal file
7
sources/com/unity3d/ads/cache/CacheDirectoryType.java
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
package com.unity3d.ads.cache;
|
||||
|
||||
/* loaded from: classes2.dex */
|
||||
public enum CacheDirectoryType {
|
||||
EXTERNAL,
|
||||
INTERNAL
|
||||
}
|
21
sources/com/unity3d/ads/cache/CacheError.java
vendored
Normal file
21
sources/com/unity3d/ads/cache/CacheError.java
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
package com.unity3d.ads.cache;
|
||||
|
||||
/* loaded from: classes2.dex */
|
||||
public enum CacheError {
|
||||
FILE_IO_ERROR,
|
||||
FILE_NOT_FOUND,
|
||||
FILE_ALREADY_CACHING,
|
||||
NOT_CACHING,
|
||||
JSON_ERROR,
|
||||
NO_INTERNET,
|
||||
MALFORMED_URL,
|
||||
NETWORK_ERROR,
|
||||
ILLEGAL_STATE,
|
||||
INVALID_ARGUMENT,
|
||||
UNSUPPORTED_ENCODING,
|
||||
FILE_STATE_WRONG,
|
||||
CACHE_DIRECTORY_NULL,
|
||||
CACHE_DIRECTORY_TYPE_NULL,
|
||||
CACHE_DIRECTORY_EXISTS,
|
||||
CACHE_DIRECTORY_DOESNT_EXIST
|
||||
}
|
10
sources/com/unity3d/ads/cache/CacheEvent.java
vendored
Normal file
10
sources/com/unity3d/ads/cache/CacheEvent.java
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.unity3d.ads.cache;
|
||||
|
||||
/* loaded from: classes2.dex */
|
||||
public enum CacheEvent {
|
||||
DOWNLOAD_STARTED,
|
||||
DOWNLOAD_PROGRESS,
|
||||
DOWNLOAD_END,
|
||||
DOWNLOAD_STOPPED,
|
||||
DOWNLOAD_ERROR
|
||||
}
|
109
sources/com/unity3d/ads/cache/CacheThread.java
vendored
Normal file
109
sources/com/unity3d/ads/cache/CacheThread.java
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
package com.unity3d.ads.cache;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import com.tencent.open.SocialConstants;
|
||||
import com.unity3d.ads.log.DeviceLog;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes2.dex */
|
||||
public class CacheThread extends Thread {
|
||||
public static final int MSG_DOWNLOAD = 1;
|
||||
private static int _connectTimeout = 30000;
|
||||
private static CacheThreadHandler _handler = null;
|
||||
private static int _progressInterval = 0;
|
||||
private static int _readTimeout = 30000;
|
||||
private static boolean _ready = false;
|
||||
private static final Object _readyLock = new Object();
|
||||
|
||||
public static void cancel() {
|
||||
if (_ready) {
|
||||
_handler.removeMessages(1);
|
||||
_handler.setCancelStatus(true);
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized void download(String str, String str2, HashMap<String, List<String>> hashMap, boolean z) {
|
||||
synchronized (CacheThread.class) {
|
||||
if (!_ready) {
|
||||
init();
|
||||
}
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(SocialConstants.PARAM_SOURCE, str);
|
||||
bundle.putString("target", str2);
|
||||
bundle.putInt("connectTimeout", _connectTimeout);
|
||||
bundle.putInt("readTimeout", _readTimeout);
|
||||
bundle.putInt("progressInterval", _progressInterval);
|
||||
bundle.putBoolean("append", z);
|
||||
if (hashMap != null) {
|
||||
for (String str3 : hashMap.keySet()) {
|
||||
bundle.putStringArray(str3, (String[]) hashMap.get(str3).toArray(new String[hashMap.get(str3).size()]));
|
||||
}
|
||||
}
|
||||
Message message = new Message();
|
||||
message.what = 1;
|
||||
message.setData(bundle);
|
||||
_handler.setCancelStatus(false);
|
||||
_handler.sendMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
public static int getConnectTimeout() {
|
||||
return _connectTimeout;
|
||||
}
|
||||
|
||||
public static int getProgressInterval() {
|
||||
return _progressInterval;
|
||||
}
|
||||
|
||||
public static int getReadTimeout() {
|
||||
return _readTimeout;
|
||||
}
|
||||
|
||||
private static void init() {
|
||||
CacheThread cacheThread = new CacheThread();
|
||||
cacheThread.setName("UnityAdsCacheThread");
|
||||
cacheThread.start();
|
||||
while (!_ready) {
|
||||
try {
|
||||
synchronized (_readyLock) {
|
||||
_readyLock.wait();
|
||||
}
|
||||
} catch (InterruptedException unused) {
|
||||
DeviceLog.debug("Couldn't synchronize thread");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isActive() {
|
||||
if (_ready) {
|
||||
return _handler.isActive();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void setConnectTimeout(int i) {
|
||||
_connectTimeout = i;
|
||||
}
|
||||
|
||||
public static void setProgressInterval(int i) {
|
||||
_progressInterval = i;
|
||||
}
|
||||
|
||||
public static void setReadTimeout(int i) {
|
||||
_readTimeout = i;
|
||||
}
|
||||
|
||||
@Override // java.lang.Thread, java.lang.Runnable
|
||||
public void run() {
|
||||
Looper.prepare();
|
||||
_handler = new CacheThreadHandler();
|
||||
_ready = true;
|
||||
synchronized (_readyLock) {
|
||||
_readyLock.notify();
|
||||
}
|
||||
Looper.loop();
|
||||
}
|
||||
}
|
183
sources/com/unity3d/ads/cache/CacheThreadHandler.java
vendored
Normal file
183
sources/com/unity3d/ads/cache/CacheThreadHandler.java
vendored
Normal file
@@ -0,0 +1,183 @@
|
||||
package com.unity3d.ads.cache;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.os.SystemClock;
|
||||
import com.tencent.open.SocialConstants;
|
||||
import com.unity3d.ads.api.Request;
|
||||
import com.unity3d.ads.log.DeviceLog;
|
||||
import com.unity3d.ads.request.WebRequest;
|
||||
import com.unity3d.ads.webview.WebViewApp;
|
||||
import com.unity3d.ads.webview.WebViewEventCategory;
|
||||
import java.io.File;
|
||||
import java.net.MalformedURLException;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/* loaded from: classes2.dex */
|
||||
class CacheThreadHandler extends Handler {
|
||||
private WebRequest _currentRequest = null;
|
||||
private boolean _canceled = false;
|
||||
private boolean _active = false;
|
||||
|
||||
CacheThreadHandler() {
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
/* JADX WARN: Removed duplicated region for block: B:101:? A[SYNTHETIC] */
|
||||
/* JADX WARN: Removed duplicated region for block: B:94:0x0319 A[EXC_TOP_SPLITTER, SYNTHETIC] */
|
||||
/* JADX WARN: Type inference failed for: r0v16, types: [com.unity3d.ads.webview.WebViewApp] */
|
||||
/* JADX WARN: Type inference failed for: r0v20, types: [com.unity3d.ads.webview.WebViewApp] */
|
||||
/* JADX WARN: Type inference failed for: r0v24, types: [com.unity3d.ads.webview.WebViewApp] */
|
||||
/* JADX WARN: Type inference failed for: r0v28, types: [com.unity3d.ads.webview.WebViewApp] */
|
||||
/* JADX WARN: Type inference failed for: r0v32, types: [com.unity3d.ads.webview.WebViewApp] */
|
||||
/* JADX WARN: Type inference failed for: r14v10, types: [com.unity3d.ads.request.WebRequest] */
|
||||
/* JADX WARN: Type inference failed for: r14v11, types: [com.unity3d.ads.request.WebRequest] */
|
||||
/* JADX WARN: Type inference failed for: r14v12, types: [com.unity3d.ads.request.WebRequest] */
|
||||
/* JADX WARN: Type inference failed for: r14v13, types: [com.unity3d.ads.request.WebRequest] */
|
||||
/* JADX WARN: Type inference failed for: r14v15, types: [com.unity3d.ads.request.WebRequest] */
|
||||
/* JADX WARN: Type inference failed for: r14v2 */
|
||||
/* JADX WARN: Type inference failed for: r14v3 */
|
||||
/* JADX WARN: Type inference failed for: r14v30 */
|
||||
/* JADX WARN: Type inference failed for: r14v4 */
|
||||
/* JADX WARN: Type inference failed for: r14v47 */
|
||||
/* JADX WARN: Type inference failed for: r14v49 */
|
||||
/* JADX WARN: Type inference failed for: r14v5 */
|
||||
/* JADX WARN: Type inference failed for: r14v51 */
|
||||
/* JADX WARN: Type inference failed for: r14v53 */
|
||||
/* JADX WARN: Type inference failed for: r14v55 */
|
||||
/* JADX WARN: Type inference failed for: r14v56 */
|
||||
/* JADX WARN: Type inference failed for: r14v6 */
|
||||
/* JADX WARN: Type inference failed for: r14v9, types: [com.unity3d.ads.request.WebRequest] */
|
||||
/* JADX WARN: Type inference failed for: r3v14, types: [java.lang.StringBuilder] */
|
||||
/* JADX WARN: Type inference failed for: r4v0, types: [java.lang.String] */
|
||||
/* JADX WARN: Type inference failed for: r4v13, types: [java.lang.Object[]] */
|
||||
/* JADX WARN: Type inference failed for: r4v15, types: [java.lang.Object[]] */
|
||||
/* JADX WARN: Type inference failed for: r4v17, types: [java.lang.Object[]] */
|
||||
/* JADX WARN: Type inference failed for: r4v19, types: [java.lang.Object[]] */
|
||||
/* JADX WARN: Type inference failed for: r4v22, types: [java.lang.Object[]] */
|
||||
/* JADX WARN: Type inference failed for: r4v47, types: [java.lang.String] */
|
||||
/* JADX WARN: Type inference failed for: r6v1 */
|
||||
/* JADX WARN: Type inference failed for: r6v10, types: [boolean] */
|
||||
/* JADX WARN: Type inference failed for: r6v11, types: [boolean] */
|
||||
/* JADX WARN: Type inference failed for: r6v12, types: [boolean] */
|
||||
/* JADX WARN: Type inference failed for: r6v13, types: [boolean] */
|
||||
/* JADX WARN: Type inference failed for: r6v14 */
|
||||
/* JADX WARN: Type inference failed for: r6v15, types: [boolean] */
|
||||
/* JADX WARN: Type inference failed for: r6v2 */
|
||||
/* JADX WARN: Type inference failed for: r6v3 */
|
||||
/* JADX WARN: Type inference failed for: r6v37, types: [long] */
|
||||
/* JADX WARN: Type inference failed for: r6v38 */
|
||||
/* JADX WARN: Type inference failed for: r6v39 */
|
||||
/* JADX WARN: Type inference failed for: r6v4 */
|
||||
/* JADX WARN: Type inference failed for: r6v40 */
|
||||
/* JADX WARN: Type inference failed for: r6v41 */
|
||||
/* JADX WARN: Type inference failed for: r6v42 */
|
||||
/* JADX WARN: Type inference failed for: r6v43 */
|
||||
/* JADX WARN: Type inference failed for: r6v44 */
|
||||
/* JADX WARN: Type inference failed for: r6v45 */
|
||||
/* JADX WARN: Type inference failed for: r6v46 */
|
||||
/* JADX WARN: Type inference failed for: r6v47 */
|
||||
/* JADX WARN: Type inference failed for: r6v48 */
|
||||
/* JADX WARN: Type inference failed for: r6v49 */
|
||||
/* JADX WARN: Type inference failed for: r6v5 */
|
||||
/* JADX WARN: Type inference failed for: r6v50 */
|
||||
/* JADX WARN: Type inference failed for: r6v51 */
|
||||
/* JADX WARN: Type inference failed for: r6v52 */
|
||||
/* JADX WARN: Type inference failed for: r6v53 */
|
||||
/* JADX WARN: Type inference failed for: r6v54 */
|
||||
/* JADX WARN: Type inference failed for: r6v55 */
|
||||
/* JADX WARN: Type inference failed for: r6v56 */
|
||||
/* JADX WARN: Type inference failed for: r6v57 */
|
||||
/* JADX WARN: Type inference failed for: r6v6 */
|
||||
/* JADX WARN: Type inference failed for: r6v7 */
|
||||
/* JADX WARN: Type inference failed for: r6v8 */
|
||||
/*
|
||||
Code decompiled incorrectly, please refer to instructions dump.
|
||||
To view partially-correct code enable 'Show inconsistent code' option in preferences
|
||||
*/
|
||||
private void downloadFile(java.lang.String r24, java.lang.String r25, int r26, int r27, final int r28, java.util.HashMap<java.lang.String, java.util.List<java.lang.String>> r29, boolean r30) {
|
||||
/*
|
||||
Method dump skipped, instructions count: 829
|
||||
To view this dump change 'Code comments level' option to 'DEBUG'
|
||||
*/
|
||||
throw new UnsupportedOperationException("Method not decompiled: com.unity3d.ads.cache.CacheThreadHandler.downloadFile(java.lang.String, java.lang.String, int, int, int, java.util.HashMap, boolean):void");
|
||||
}
|
||||
|
||||
private WebRequest getWebRequest(String str, int i, int i2, HashMap<String, List<String>> hashMap) throws MalformedURLException {
|
||||
HashMap hashMap2 = new HashMap();
|
||||
if (hashMap != null) {
|
||||
hashMap2.putAll(hashMap);
|
||||
}
|
||||
return new WebRequest(str, "GET", hashMap2, i, i2);
|
||||
}
|
||||
|
||||
private void postProcessDownload(long j, String str, File file, long j2, long j3, boolean z, int i, Map<String, List<String>> map) {
|
||||
long elapsedRealtime = SystemClock.elapsedRealtime() - j;
|
||||
if (!file.setReadable(true, false)) {
|
||||
DeviceLog.debug("Unity Ads cache: could not set file readable!");
|
||||
}
|
||||
if (z) {
|
||||
DeviceLog.debug("Unity Ads cache: downloading of " + str + " stopped");
|
||||
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.CACHE, CacheEvent.DOWNLOAD_STOPPED, str, Long.valueOf(j2), Long.valueOf(j3), Long.valueOf(elapsedRealtime), Integer.valueOf(i), Request.getResponseHeadersMap(map));
|
||||
return;
|
||||
}
|
||||
DeviceLog.debug("Unity Ads cache: File " + file.getName() + " of " + j2 + " bytes downloaded in " + elapsedRealtime + "ms");
|
||||
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.CACHE, CacheEvent.DOWNLOAD_END, str, Long.valueOf(j2), Long.valueOf(j3), Long.valueOf(elapsedRealtime), Integer.valueOf(i), Request.getResponseHeadersMap(map));
|
||||
}
|
||||
|
||||
@Override // android.os.Handler
|
||||
public void handleMessage(Message message) {
|
||||
HashMap<String, List<String>> hashMap;
|
||||
Bundle data = message.getData();
|
||||
String string = data.getString(SocialConstants.PARAM_SOURCE);
|
||||
data.remove(SocialConstants.PARAM_SOURCE);
|
||||
String string2 = data.getString("target");
|
||||
data.remove("target");
|
||||
int i = data.getInt("connectTimeout");
|
||||
data.remove("connectTimeout");
|
||||
int i2 = data.getInt("readTimeout");
|
||||
data.remove("readTimeout");
|
||||
int i3 = data.getInt("progressInterval");
|
||||
data.remove("progressInterval");
|
||||
boolean z = data.getBoolean("append", false);
|
||||
data.remove("append");
|
||||
if (data.size() > 0) {
|
||||
DeviceLog.debug("There are headers left in data, reading them");
|
||||
HashMap<String, List<String>> hashMap2 = new HashMap<>();
|
||||
for (String str : data.keySet()) {
|
||||
hashMap2.put(str, Arrays.asList(data.getStringArray(str)));
|
||||
}
|
||||
hashMap = hashMap2;
|
||||
} else {
|
||||
hashMap = null;
|
||||
}
|
||||
File file = new File(string2);
|
||||
if ((z && !file.exists()) || (!z && file.exists())) {
|
||||
this._active = false;
|
||||
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.CACHE, CacheEvent.DOWNLOAD_ERROR, CacheError.FILE_STATE_WRONG, string, string2, Boolean.valueOf(z), Boolean.valueOf(file.exists()));
|
||||
} else {
|
||||
if (message.what != 1) {
|
||||
return;
|
||||
}
|
||||
downloadFile(string, string2, i, i2, i3, hashMap, z);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isActive() {
|
||||
return this._active;
|
||||
}
|
||||
|
||||
public void setCancelStatus(boolean z) {
|
||||
WebRequest webRequest;
|
||||
this._canceled = z;
|
||||
if (!z || (webRequest = this._currentRequest) == null) {
|
||||
return;
|
||||
}
|
||||
this._active = false;
|
||||
webRequest.cancel();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user