正在查看: Clean Center v0.5.5 应用的 ErrorUtil.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Clean Center v0.5.5 应用的 ErrorUtil.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.wxiwei.office.system;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import com.wxiwei.office.common.ICustomDialog;
import com.wxiwei.office.constant.EventConstant;
import com.wxiwei.office.fc.OldFileFormatException;
import com.wxiwei.office.fc.poifs.filesystem.OfficeXmlFileException;
import com.wxiwei.office.officereader.R;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class ErrorUtil {
public static final int BAD_FILE = 2;
public static final int INSUFFICIENT_MEMORY = 0;
public static final int OLD_DOCUMENT = 3;
public static final int PARSE_ERROR = 4;
public static final int PASSWORD_DOCUMENT = 6;
public static final int PASSWORD_INCORRECT = 7;
public static final int RTF_DOCUMENT = 5;
public static final int SD_CARD_ERROR = 8;
public static final int SD_CARD_NOSPACELEFT = 10;
public static final int SD_CARD_WRITEDENIED = 9;
public static final int SYSTEM_CRASH = 1;
private static final String VERSION = "2.0.0.4";
private static final SimpleDateFormat sdf_24 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private File logFile;
private AlertDialog message;
private SysKit sysKit;
public void dispose() {
this.sysKit = null;
}
public ErrorUtil(SysKit sysKit) {
this.sysKit = sysKit;
if (sysKit.getControl() != null && sysKit.getControl().getMainFrame().isWriteLog()) {
File temporaryDirectory = sysKit.getControl().getMainFrame().getTemporaryDirectory();
this.logFile = temporaryDirectory;
if (temporaryDirectory != null && temporaryDirectory.exists() && this.logFile.canWrite()) {
File file = new File(this.logFile.getAbsolutePath() + File.separatorChar + "ASReader");
this.logFile = file;
if (!file.exists()) {
this.logFile.mkdirs();
}
this.logFile = new File(this.logFile.getAbsolutePath() + File.separatorChar + "errorLog.txt");
}
}
}
public void writerLog(Throwable th) {
writerLog(th, false);
}
public void writerLog(Throwable th, boolean z) {
writerLog(th, z, true);
}
public void writerLog(Throwable th, boolean z, boolean z2) {
try {
StringBuilder sb = new StringBuilder();
sb.append(th.getMessage()).append("\n");
for (int i = 0; i < th.getStackTrace().length; i++) {
sb.append(th.getStackTrace()[i].toString()).append("\n");
}
this.sysKit.getControl().getMainFrame().newFatalOccurs(sb.toString());
if (th instanceof OutOfMemoryError) {
this.sysKit.getControl().getMainFrame().outOfMemoryOccurs();
return;
}
if (th instanceof AbortReaderError) {
return;
}
File file = this.logFile;
if (file == null) {
th = new Throwable("SD CARD ERROR");
} else if (file != null && file.exists() && !this.logFile.canWrite()) {
th = new Throwable("Write Permission denied");
} else if (this.sysKit.getControl().getMainFrame().isWriteLog() && !(th instanceof OutOfMemoryError)) {
FileWriter fileWriter = new FileWriter(this.logFile, true);
PrintWriter printWriter = new PrintWriter((Writer) fileWriter, true);
printWriter.println();
printWriter.println("--------------------------------------------------------------------------");
printWriter.println("Exception occurs: " + sdf_24.format(Calendar.getInstance().getTime()) + " " + VERSION);
th.printStackTrace(printWriter);
fileWriter.close();
}
if (z2) {
processThrowable(th, z);
}
} catch (Exception | OutOfMemoryError unused) {
}
}
private void processThrowable(final Throwable th, final boolean z) {
final IControl control = this.sysKit.getControl();
final Activity activity = control.getMainFrame().getActivity();
if (control == null || activity == null) {
return;
}
if (control.isAutoTest()) {
System.exit(0);
} else if (this.message == null) {
control.getActivity().getWindow().getDecorView().post(new Runnable() {
@Override
public void run() {
int i;
try {
String str = "";
String th2 = th.toString();
if (th2.contains("SD")) {
str = control.getMainFrame().getLocalString("SD_CARD");
i = 8;
} else if (th2.contains("Write Permission denied")) {
str = control.getMainFrame().getLocalString("SD_CARD_WRITEDENIED");
i = 9;
} else if (th2.contains("No space left on device")) {
str = control.getMainFrame().getLocalString("SD_CARD_NOSPACELEFT");
i = 10;
} else {
if (!(th instanceof OutOfMemoryError) && !th2.contains("OutOfMemoryError")) {
if (!th2.contains("no such entry") && !th2.contains("Format error") && !th2.contains("Unable to read entire header") && !(th instanceof OfficeXmlFileException) && !th2.contains("The text piece table is corrupted") && !th2.contains("Invalid header signature")) {
if (th2.contains("The document is really a RTF file")) {
str = control.getActivity().getString(R.string.dialog_rtf_file);
i = 5;
} else if (th instanceof OldFileFormatException) {
str = control.getActivity().getString(R.string.dialog_old_document);
i = 3;
} else if (th2.contains("Cannot process encrypted office file")) {
str = control.getActivity().getString(R.string.dialog_cannot_encrypted_file);
i = 6;
} else if (th2.contains("Password is incorrect")) {
str = control.getMainFrame().getLocalString("DIALOG_PASSWORD_INCORRECT");
i = 7;
} else if (z) {
str = control.getActivity().getString(R.string.dialog_parse_error);
i = 4;
} else {
Throwable th3 = th;
if (!(th3 instanceof NullPointerException) && !(th3 instanceof IllegalArgumentException) && !(th3 instanceof ClassCastException)) {
if (ErrorUtil.this.sysKit.isDebug()) {
str = control.getActivity().getString(R.string.dialog_system_crash_error);
}
i = 1;
}
str = control.getActivity().getString(R.string.dialog_system_crash_error);
i = 1;
}
}
str = control.getActivity().getString(R.string.dialog_format_error);
i = 2;
}
str = control.getActivity().getString(R.string.dialog_insufficient_memory);
i = 0;
}
if (str.length() > 0) {
control.getMainFrame().error(i);
control.actionEvent(EventConstant.APP_ABORTREADING, true);
if (control.getMainFrame().isPopUpErrorDlg() && ErrorUtil.this.message == null) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setMessage(str);
builder.setCancelable(false);
builder.setTitle(control.getMainFrame().getAppName());
builder.setPositiveButton(control.getMainFrame().getLocalString("BUTTON_OK"), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i2) {
ErrorUtil.this.message = null;
activity.onBackPressed();
}
});
ErrorUtil.this.message = builder.create();
ErrorUtil.this.message.show();
return;
}
ICustomDialog customDialog = control.getCustomDialog();
if (customDialog != null) {
customDialog.showDialog((byte) 3);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
}