- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
306 lines
10 KiB
Java
306 lines
10 KiB
Java
package com.tapjoy;
|
|
|
|
import android.graphics.Bitmap;
|
|
import android.graphics.Canvas;
|
|
import android.net.Uri;
|
|
import android.os.Handler;
|
|
import android.os.Looper;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.webkit.WebView;
|
|
import com.applovin.exoplayer2.common.base.Ascii;
|
|
import com.ironsource.v8;
|
|
import com.tapjoy.TJAdUnitConstants;
|
|
import com.unity3d.ads.core.data.datasource.AndroidStaticDeviceInfoDataSource;
|
|
import csdk.gluads.Consts;
|
|
import java.io.BufferedInputStream;
|
|
import java.io.BufferedReader;
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.io.OutputStream;
|
|
import java.security.MessageDigest;
|
|
import java.util.HashMap;
|
|
import java.util.Iterator;
|
|
import java.util.Map;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import javax.xml.parsers.DocumentBuilderFactory;
|
|
import org.json.JSONObject;
|
|
import org.w3c.dom.Document;
|
|
import org.w3c.dom.Element;
|
|
import org.w3c.dom.Node;
|
|
import org.w3c.dom.NodeList;
|
|
|
|
/* loaded from: classes4.dex */
|
|
public class TapjoyUtil {
|
|
public static final AtomicInteger a = new AtomicInteger(1);
|
|
|
|
public static Document buildDocument(String str) {
|
|
try {
|
|
return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(str.getBytes("UTF-8")));
|
|
} catch (Exception e) {
|
|
TapjoyLog.e("TapjoyUtil", "buildDocument exception: " + e.toString());
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static String convertToHex(byte[] bArr) {
|
|
StringBuffer stringBuffer = new StringBuffer();
|
|
for (int i = 0; i < bArr.length; i++) {
|
|
int i2 = (bArr[i] >>> 4) & 15;
|
|
int i3 = 0;
|
|
while (true) {
|
|
if (i2 < 0 || i2 > 9) {
|
|
stringBuffer.append((char) (i2 + 87));
|
|
} else {
|
|
stringBuffer.append((char) (i2 + 48));
|
|
}
|
|
i2 = bArr[i] & Ascii.SI;
|
|
int i4 = i3 + 1;
|
|
if (i3 >= 1) {
|
|
break;
|
|
}
|
|
i3 = i4;
|
|
}
|
|
}
|
|
return stringBuffer.toString();
|
|
}
|
|
|
|
public static Bitmap createBitmapFromView(View view) {
|
|
Bitmap bitmap = null;
|
|
if (view == null || view.getLayoutParams().width <= 0 || view.getLayoutParams().height <= 0) {
|
|
return null;
|
|
}
|
|
try {
|
|
bitmap = Bitmap.createBitmap(view.getLayoutParams().width, view.getLayoutParams().height, Bitmap.Config.ARGB_8888);
|
|
Canvas canvas = new Canvas(bitmap);
|
|
view.layout(view.getLeft(), view.getTop(), view.getRight(), view.getBottom());
|
|
view.draw(canvas);
|
|
return bitmap;
|
|
} catch (Exception e) {
|
|
TapjoyLog.d("TapjoyUtil", "error creating bitmap: " + e.toString());
|
|
return bitmap;
|
|
}
|
|
}
|
|
|
|
public static void deleteFileOrDirectory(File file) {
|
|
File[] listFiles;
|
|
if (file == null) {
|
|
return;
|
|
}
|
|
if (file.isDirectory() && (listFiles = file.listFiles()) != null && listFiles.length > 0) {
|
|
for (File file2 : listFiles) {
|
|
deleteFileOrDirectory(file2);
|
|
}
|
|
}
|
|
TapjoyLog.d("TapjoyUtil", "****************************************");
|
|
TapjoyLog.d("TapjoyUtil", "deleteFileOrDirectory: " + file.getAbsolutePath());
|
|
TapjoyLog.d("TapjoyUtil", "****************************************");
|
|
file.delete();
|
|
}
|
|
|
|
public static long fileOrDirectorySize(File file) {
|
|
long j = 0;
|
|
for (File file2 : file.listFiles()) {
|
|
j = (file2.isFile() ? file2.length() : fileOrDirectorySize(file2)) + j;
|
|
}
|
|
return j;
|
|
}
|
|
|
|
public static int generateViewId() {
|
|
AtomicInteger atomicInteger;
|
|
int i;
|
|
int i2;
|
|
do {
|
|
atomicInteger = a;
|
|
i = atomicInteger.get();
|
|
i2 = i + 1;
|
|
if (i2 > 16777215) {
|
|
i2 = 1;
|
|
}
|
|
} while (!atomicInteger.compareAndSet(i, i2));
|
|
return i;
|
|
}
|
|
|
|
public static String getFileContents(File file) {
|
|
boolean z;
|
|
FileInputStream fileInputStream = new FileInputStream(file);
|
|
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
|
|
StringBuilder sb = new StringBuilder();
|
|
do {
|
|
String readLine = bufferedReader.readLine();
|
|
z = readLine == null;
|
|
if (readLine != null) {
|
|
sb.append(readLine);
|
|
}
|
|
} while (!z);
|
|
bufferedReader.close();
|
|
fileInputStream.close();
|
|
return sb.toString();
|
|
}
|
|
|
|
public static String getNodeTrimValue(NodeList nodeList) {
|
|
Element element = (Element) nodeList.item(0);
|
|
if (element != null) {
|
|
NodeList childNodes = element.getChildNodes();
|
|
int length = childNodes.getLength();
|
|
String str = "";
|
|
for (int i = 0; i < length; i++) {
|
|
Node item = childNodes.item(i);
|
|
if (item != null) {
|
|
str = str + item.getNodeValue();
|
|
}
|
|
}
|
|
if (str != null && !str.equals("")) {
|
|
return str.trim();
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public static Map<String, String> jsonToStringMap(JSONObject jSONObject) {
|
|
return jSONObject != JSONObject.NULL ? toStringMap(jSONObject) : new HashMap();
|
|
}
|
|
|
|
public static void runOnMainThread(Runnable runnable) {
|
|
if (Looper.myLooper() == Looper.getMainLooper()) {
|
|
runnable.run();
|
|
} else {
|
|
new Handler(Looper.getMainLooper()).post(runnable);
|
|
}
|
|
}
|
|
|
|
public static void safePut(Map<String, String> map, String str, String str2, boolean z) {
|
|
if (str == null || str.length() <= 0 || str2 == null || str2.length() <= 0) {
|
|
return;
|
|
}
|
|
if (z) {
|
|
map.put(Uri.encode(str), Uri.encode(str2));
|
|
} else {
|
|
map.put(str, str2);
|
|
}
|
|
}
|
|
|
|
public static View scaleDisplayAd(View view, int i) {
|
|
int i2 = view.getLayoutParams().width;
|
|
int i3 = view.getLayoutParams().height;
|
|
TapjoyLog.d("TapjoyUtil", "wxh: " + i2 + "x" + i3);
|
|
if (i2 > i) {
|
|
int intValue = Double.valueOf((i / i2) * 100.0d).intValue();
|
|
WebView webView = (WebView) view;
|
|
webView.getSettings().setSupportZoom(true);
|
|
webView.setPadding(0, 0, 0, 0);
|
|
webView.setVerticalScrollBarEnabled(false);
|
|
webView.setHorizontalScrollBarEnabled(false);
|
|
webView.setInitialScale(intValue);
|
|
view.setLayoutParams(new ViewGroup.LayoutParams(i, (i3 * i) / i2));
|
|
}
|
|
return view;
|
|
}
|
|
|
|
public static Map<String, String> toStringMap(JSONObject jSONObject) {
|
|
HashMap hashMap = new HashMap();
|
|
Iterator<String> keys = jSONObject.keys();
|
|
while (keys.hasNext()) {
|
|
String next = keys.next();
|
|
hashMap.put(next, jSONObject.get(next).toString());
|
|
}
|
|
return hashMap;
|
|
}
|
|
|
|
public static String SHA1(String str) {
|
|
MessageDigest messageDigest = MessageDigest.getInstance(AndroidStaticDeviceInfoDataSource.ALGORITHM_SHA1);
|
|
messageDigest.update(str.getBytes("iso-8859-1"), 0, str.length());
|
|
return convertToHex(messageDigest.digest());
|
|
}
|
|
|
|
public static String SHA256(String str) {
|
|
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
|
|
messageDigest.update(str.getBytes("iso-8859-1"), 0, str.length());
|
|
return convertToHex(messageDigest.digest());
|
|
}
|
|
|
|
public static void writeFileToDevice(BufferedInputStream bufferedInputStream, OutputStream outputStream) {
|
|
byte[] bArr = new byte[1024];
|
|
while (true) {
|
|
int read = bufferedInputStream.read(bArr);
|
|
if (read == -1) {
|
|
return;
|
|
} else {
|
|
outputStream.write(bArr, 0, read);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static String convertURLParams(Map<String, String> map, boolean z) {
|
|
String str = "";
|
|
for (Map.Entry<String, String> entry : map.entrySet()) {
|
|
if (str.length() > 0) {
|
|
str = str.concat(v8.i.c);
|
|
}
|
|
str = z ? str + Uri.encode(entry.getKey()) + v8.i.b + Uri.encode(entry.getValue()) : str + entry.getKey() + v8.i.b + entry.getValue();
|
|
}
|
|
return str;
|
|
}
|
|
|
|
public static String getRedirectDomain(String str) {
|
|
return str != null ? str.substring(str.indexOf("//") + 2, str.lastIndexOf("/")) : "";
|
|
}
|
|
|
|
public static String determineMimeType(String str) {
|
|
if (str.endsWith(Consts.STRING_PERIOD)) {
|
|
str = str.substring(0, str.length() - 1);
|
|
}
|
|
String substring = str.lastIndexOf(46) != -1 ? str.substring(str.lastIndexOf(46) + 1) : "";
|
|
return substring.equals("css") ? "text/css" : substring.equals("js") ? "text/javascript" : substring.equals(TJAdUnitConstants.String.HTML) ? "text/html" : "application/octet-stream";
|
|
}
|
|
|
|
public static void safePut(Map<String, String> map, String str, Number number) {
|
|
if (str == null || str.length() <= 0 || number == null) {
|
|
return;
|
|
}
|
|
map.put(str, number.toString());
|
|
}
|
|
|
|
public static Map<String, String> convertURLParams(String str, boolean z) {
|
|
HashMap hashMap = new HashMap();
|
|
boolean z2 = false;
|
|
String str2 = "";
|
|
String str3 = str2;
|
|
for (int i = 0; i < str.length() && i != -1; i++) {
|
|
char charAt = str.charAt(i);
|
|
if (z2) {
|
|
if (z2) {
|
|
if (charAt == '&') {
|
|
if (z) {
|
|
str2 = Uri.decode(str2);
|
|
}
|
|
hashMap.put(str3, str2);
|
|
z2 = false;
|
|
str2 = "";
|
|
} else {
|
|
str2 = str2 + charAt;
|
|
}
|
|
}
|
|
} else if (charAt == '=') {
|
|
if (z) {
|
|
str2 = Uri.decode(str2);
|
|
}
|
|
str3 = str2;
|
|
z2 = true;
|
|
str2 = "";
|
|
} else {
|
|
str2 = str2 + charAt;
|
|
}
|
|
}
|
|
if (z2 && str2.length() > 0) {
|
|
if (z) {
|
|
str2 = Uri.decode(str2);
|
|
}
|
|
hashMap.put(str3, str2);
|
|
}
|
|
return hashMap;
|
|
}
|
|
}
|