正在查看: 饼干视频 v4.1.0 应用的 TTCrashUtil.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 饼干视频 v4.1.0 应用的 TTCrashUtil.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.bykv.vk.component.ttvideo.player;
import android.content.Context;
import android.util.Base64;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.Locale;
import java.util.zip.GZIPOutputStream;
public final class TTCrashUtil {
public static void addDebugTrackInfo(long j, String str, String str2, boolean z) {
appendTrackInfo(getDebugTrackFilePath(j, str), z, str2);
}
public static void addTrackInfo(long j, String str, String str2) {
appendTrackInfo(getTrackFilePath(j, str), true, str2);
}
private static void appendTrackInfo(String str, boolean z, String str2) {
FileWriter fileWriter = null;
try {
FileWriter fileWriter2 = new FileWriter(str, z);
try {
fileWriter2.write(str2);
try {
fileWriter2.close();
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception unused) {
fileWriter = fileWriter2;
try {
fileWriter.close();
} catch (Exception e2) {
e2.printStackTrace();
}
} catch (Throwable th) {
th = th;
fileWriter = fileWriter2;
try {
fileWriter.close();
} catch (Exception e3) {
e3.printStackTrace();
}
throw th;
}
} catch (Exception unused2) {
} catch (Throwable th2) {
th = th2;
}
}
public static void checkLogDir(String str) {
File file = new File(String.format("%s/ttplayer_logs", str));
if (!file.exists()) {
if (file.mkdir()) {
return;
}
file.getName();
} else if (file.isDirectory()) {
File[] listFiles = file.listFiles();
if (listFiles != null) {
for (File file2 : listFiles) {
if (!file2.delete()) {
file2.getName();
}
}
}
if (file.delete()) {
return;
}
file.getName();
}
}
public static void checkTrackDir(String str) {
File file = new File(String.format("%s/ttplayer_logs", str));
if (file.exists()) {
return;
}
file.mkdir();
}
public static void compress(InputStream inputStream, OutputStream outputStream) throws Exception {
GZIPOutputStream gZIPOutputStream = new GZIPOutputStream(outputStream);
byte[] bArr = new byte[10240];
while (true) {
int read = inputStream.read(bArr, 0, 10240);
if (read == -1) {
gZIPOutputStream.flush();
gZIPOutputStream.finish();
gZIPOutputStream.close();
return;
}
gZIPOutputStream.write(bArr, 0, read);
}
}
public static final boolean copyFile(java.lang.String r4, java.lang.String r5, boolean r6, boolean r7) {
throw new UnsupportedOperationException("Method not decompiled: com.bykv.vk.component.ttvideo.player.TTCrashUtil.copyFile(java.lang.String, java.lang.String, boolean, boolean):boolean");
}
public static void deleteCrashFile(Context context, String str) {
File file = new File(str);
if (file.exists()) {
file.delete();
}
}
public static void deleteDebugTrackFile(long j, String str) {
deleteTrackFile(getDebugTrackFilePath(j, str));
}
private static void deleteTrackFile(String str) {
File file = new File(str);
if (file.exists()) {
file.delete();
}
}
public static boolean existLogsFile(long j, String str) {
File[] listFiles;
String valueOf = String.valueOf(j);
File file = new File(String.format("%s/ttplayer_logs", str));
if (!file.exists() || !file.isDirectory() || (listFiles = file.listFiles()) == null) {
return false;
}
for (File file2 : listFiles) {
String name = file2.getName();
StringBuilder sb = new StringBuilder("<TTCrashUtils,existLogsFile,375>file:");
sb.append(name);
sb.append(",pname:");
sb.append(valueOf);
if (name != null && !name.startsWith(valueOf)) {
return true;
}
}
return false;
}
public static boolean existsCrashFile(Context context, String str) {
if (context == null && str == null) {
return false;
}
return new File(str).exists();
}
public static final String existsCrashFilePath(Context context) {
if (TTPlayerConfiger.getValue(18, 1) == 1) {
String appCrashFilePath = TTPlayerConfiger.getAppCrashFilePath(context);
if (appCrashFilePath == null || !new File(appCrashFilePath).exists()) {
return null;
}
return appCrashFilePath;
}
String appCrashFilePath2 = TTPlayerConfiger.getAppCrashFilePath2(context);
if (appCrashFilePath2 != null && new File(appCrashFilePath2).exists()) {
return appCrashFilePath2;
}
String plugerCrashFilePath = TTPlayerConfiger.getPlugerCrashFilePath(context);
if (plugerCrashFilePath != null && new File(plugerCrashFilePath).exists()) {
return plugerCrashFilePath;
}
String externalStorageDirectoryCrashFilePath = TTPlayerConfiger.getExternalStorageDirectoryCrashFilePath();
if (externalStorageDirectoryCrashFilePath == null || new File(externalStorageDirectoryCrashFilePath).exists()) {
return externalStorageDirectoryCrashFilePath;
}
return null;
}
public static boolean existsTrackFile(long j, String str) {
return new File(getTrackFilePath(j, str)).exists();
}
public static String getBase64SampleCrash(String str) {
return Base64.encodeToString(str.getBytes(), 0);
}
public static String getCrashFileContext(Context context, String str, StringBuilder sb) {
FileInputStream fileInputStream;
if (context == null && str == null) {
sb.append("context or path is null.\r\n");
return null;
}
File file = new File(str);
if (!file.exists()) {
sb.append("file not exist.path:");
sb.append(str);
sb.append("\r\n");
return null;
}
if (file.length() == 0) {
sb.append("file size is zore.\r\n");
return null;
}
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
fileInputStream = new FileInputStream(file);
} catch (Exception e) {
e = e;
fileInputStream = null;
}
try {
compress(fileInputStream, byteArrayOutputStream);
fileInputStream.close();
String encodeToString = Base64.encodeToString(byteArrayOutputStream.toByteArray(), 0);
byteArrayOutputStream.close();
return encodeToString;
} catch (Exception e2) {
e = e2;
e.printStackTrace();
if (fileInputStream != null) {
try {
fileInputStream.close();
} catch (IOException e3) {
e3.printStackTrace();
}
}
try {
byteArrayOutputStream.close();
} catch (IOException unused) {
}
sb.append("gzip file is error.error:");
sb.append(e.getMessage());
return null;
}
}
private static String getDebugTrackFilePath(long j, String str) {
return String.format(Locale.US, "%s/ttplayer_logs/%d_d.log", str, Long.valueOf(j));
}
private static boolean getTrackFileInfos(File file, StringBuilder sb) {
int read;
FileReader fileReader = null;
try {
if (!file.exists()) {
return false;
}
char[] cArr = new char[1024];
FileReader fileReader2 = new FileReader(file);
do {
try {
read = fileReader2.read(cArr);
if (read <= 0) {
break;
}
sb.append(cArr, 0, read);
} catch (Throwable th) {
th = th;
fileReader = fileReader2;
if (fileReader != null) {
try {
fileReader.close();
} catch (Exception unused) {
}
}
sb.append("track message:");
sb.append(th.getMessage());
sb.append("\r\n");
return true;
}
} while (read >= 1024);
fileReader2.close();
return true;
} catch (Throwable th2) {
th = th2;
}
}
public static String getTrackFilePath(long j, String str) {
return String.format(Locale.US, "%s/ttplayer_logs/%d.log", str, Long.valueOf(j));
}
public static final boolean moveFile(String str, String str2, boolean z) {
return copyFile(str, str2, z, true);
}
public static boolean moveTrackFile(long j, long j2, String str) {
return new File(getTrackFilePath(j, str)).renameTo(new File(getTrackFilePath(j2, str)));
}
public static boolean readDebugTrackInfos(long j, String str, StringBuilder sb) {
return getTrackFileInfos(getDebugTrackFilePath(j, str), sb);
}
public static boolean readLogsInfo(long j, String str, StringBuilder sb) {
File[] listFiles;
String valueOf = String.valueOf(j);
File file = new File(String.format("%s/ttplayer_logs", str));
if (!file.exists() || !file.isDirectory() || (listFiles = file.listFiles()) == null) {
return false;
}
for (File file2 : listFiles) {
String name = file2.getName();
if (name != null && !name.startsWith(valueOf) && getTrackFileInfos(file2, sb)) {
boolean delete = file2.delete();
if (!delete) {
file2.getName();
}
return delete;
}
}
return false;
}
public static boolean readTrackInfos(long j, String str, StringBuilder sb) {
return getTrackFileInfos(getTrackFilePath(j, str), sb);
}
public static final void saveException(Throwable th, String str) {
FileOutputStream fileOutputStream;
if (str == null) {
return;
}
File file = new File(str);
if (file.exists()) {
return;
}
PrintStream printStream = null;
try {
fileOutputStream = new FileOutputStream(file);
try {
PrintStream printStream2 = new PrintStream(fileOutputStream);
try {
printStream2.write("EXCE".getBytes());
th.printStackTrace(printStream2);
printStream2.close();
try {
fileOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception unused) {
printStream = printStream2;
if (printStream != null) {
printStream.close();
}
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
} catch (Throwable th2) {
th = th2;
printStream = printStream2;
if (printStream != null) {
printStream.close();
}
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (Exception e3) {
e3.printStackTrace();
}
}
throw th;
}
} catch (Exception unused2) {
} catch (Throwable th3) {
th = th3;
}
} catch (Exception unused3) {
fileOutputStream = null;
} catch (Throwable th4) {
th = th4;
fileOutputStream = null;
}
}
public static void saveLowMemoryInfo(int i, String str) {
FileWriter fileWriter;
File file = new File(str);
if (file.exists()) {
return;
}
FileWriter fileWriter2 = null;
try {
try {
fileWriter = new FileWriter(file);
} catch (Throwable th) {
th = th;
}
} catch (IOException e) {
e = e;
}
try {
fileWriter.write("LOWM\r\nrecv low memory warring info.level:" + i);
try {
fileWriter.close();
} catch (IOException e2) {
e2.printStackTrace();
}
} catch (IOException e3) {
e = e3;
fileWriter2 = fileWriter;
e.printStackTrace();
if (fileWriter2 != null) {
try {
fileWriter2.close();
} catch (IOException e4) {
e4.printStackTrace();
}
}
} catch (Throwable th2) {
th = th2;
fileWriter2 = fileWriter;
if (fileWriter2 != null) {
try {
fileWriter2.close();
} catch (IOException e5) {
e5.printStackTrace();
}
}
throw th;
}
}
public static void saveStopInfo(java.lang.String r2, java.lang.String r3) {
throw new UnsupportedOperationException("Method not decompiled: com.bykv.vk.component.ttvideo.player.TTCrashUtil.saveStopInfo(java.lang.String, java.lang.String):void");
}
public static void addTrackInfo(long j, String str, String str2, boolean z) {
appendTrackInfo(getTrackFilePath(j, str), z, str2);
}
public static void deleteTrackFile(long j, String str) {
deleteTrackFile(getTrackFilePath(j, str));
}
private static boolean getTrackFileInfos(String str, StringBuilder sb) {
int read;
FileReader fileReader = null;
try {
File file = new File(str);
if (!file.exists()) {
sb.append("path");
sb.append(str);
sb.append(" not exists.\r\n");
return false;
}
char[] cArr = new char[1024];
FileReader fileReader2 = new FileReader(file);
do {
try {
read = fileReader2.read(cArr);
if (read <= 0) {
break;
}
sb.append(cArr, 0, read);
} catch (Throwable th) {
th = th;
fileReader = fileReader2;
if (fileReader != null) {
try {
fileReader.close();
} catch (Exception unused) {
}
}
sb.append("track message:");
sb.append(th.getMessage());
sb.append("\r\n");
return true;
}
} while (read >= 1024);
fileReader2.close();
return true;
} catch (Throwable th2) {
th = th2;
}
}
}