package com.door43.tools.reporting;
import android.content.Context;
import java.io.File;
import java.io.FilenameFilter;
/**
* This task archives the latest crash report
*/
public class ArchiveCrashReportTask extends ManagedTask {
private int mMaxProgress = 1;
private Context context;
private String stacktraceDir;
public ArchiveCrashReportTask(Context context, String stacktraceDir) {
this.context = context;
this.stacktraceDir = stacktraceDir;
}
@Override
public void start() {
File dir = new File(context.getExternalCacheDir(), stacktraceDir);
String[] files = dir.list(new FilenameFilter() {
@Override
public boolean accept(File file, String s) {
return !new File(file, s).isDirectory();
}
});
if (files.length > 0) {
File archiveDir = new File(dir, "archive");
archiveDir.mkdirs();
for(int i = 0; i < files.length; i ++) {
File traceFile = new File(dir, files[i]);
// archive stack trace for later use
FileUtilities.moveOrCopy(traceFile, new File(archiveDir, files[i]));
// clean up traces
if(traceFile.exists()) {
traceFile.delete();
}
}
}
}
@Override
public int maxProgress() {
return mMaxProgress;
}
}