Ammar Githam
4 years ago
1 changed files with 0 additions and 143 deletions
@ -1,143 +0,0 @@ |
|||
/*package awaisomereport; |
|||
|
|||
import android.app.Application; |
|||
import android.os.Build; |
|||
import android.util.Log; |
|||
import android.util.Pair; |
|||
|
|||
import androidx.annotation.NonNull; |
|||
import androidx.annotation.Nullable; |
|||
|
|||
import java.io.BufferedReader; |
|||
import java.io.BufferedWriter; |
|||
import java.io.File; |
|||
import java.io.FileReader; |
|||
import java.io.FileWriter; |
|||
import java.io.IOException; |
|||
import java.io.PrintWriter; |
|||
import java.io.StringWriter; |
|||
import java.io.Writer; |
|||
|
|||
import awais.instagrabber.BuildConfig; |
|||
|
|||
public final class LogCollector { |
|||
private final File logDir; |
|||
|
|||
public LogCollector(@NonNull final Application app) { |
|||
logDir = new File(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? app.getDataDir() : app.getFilesDir(), |
|||
"crashlogs"); |
|||
|
|||
if (logDir.exists()) deleteRecursive(logDir); |
|||
|
|||
if (logDir.mkdirs()) { |
|||
// create log files to zip later |
|||
for (final LogFile logFile : LogFile.values()) { |
|||
try { |
|||
//noinspection ResultOfMethodCallIgnored |
|||
new File(logDir, logFile.fileName).createNewFile(); |
|||
} catch (final IOException e) { |
|||
if (BuildConfig.DEBUG) Log.e("AWAISKING_APP", "", e); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
public File getLogDir() { |
|||
return logDir; |
|||
} |
|||
|
|||
@SafeVarargs |
|||
public final void appendException(@NonNull final Exception exception, @NonNull final LogFile logFile, @NonNull final String method, |
|||
@Nullable final Pair<String, Object>... vars) { |
|||
final File excepionFile = new File(logDir, logFile.fileName); |
|||
|
|||
final StringBuilder stringBuilder = new StringBuilder(); |
|||
|
|||
stringBuilder.append('\n').append('\n').append("----------------- ").append(method).append(" ------------------") |
|||
.append('\n'); |
|||
|
|||
if (vars != null && vars.length > 0) { |
|||
stringBuilder.append("Variables: ").append('\n'); |
|||
for (Pair<String, Object> var : vars) |
|||
stringBuilder.append('\t').append(var.first).append(" : ") |
|||
.append('\u201C').append(var.second).append('\u201D') |
|||
.append(" (type: ").append(var.second == null ? "null" : var.second.getClass().getSimpleName()).append(')') |
|||
.append('\n'); |
|||
stringBuilder.append("----------------------------------").append('\n'); |
|||
} |
|||
|
|||
final Writer stringWriter = new StringWriter(); |
|||
try (final PrintWriter printWriter = new PrintWriter(stringWriter)) { |
|||
exception.printStackTrace(printWriter); |
|||
stringBuilder.append(stringWriter.toString()); |
|||
|
|||
// for AsyncTask crashes |
|||
Throwable cause = exception.getCause(); |
|||
while (cause != null) { |
|||
cause.printStackTrace(printWriter); |
|||
stringBuilder.append(stringWriter.toString()); |
|||
cause = cause.getCause(); |
|||
} |
|||
} |
|||
|
|||
try (final BufferedReader br = new BufferedReader(new FileReader(excepionFile))) { |
|||
String line; |
|||
while ((line = br.readLine()) != null) stringBuilder.append(line).append('\n'); |
|||
} catch (final Exception e) { |
|||
if (BuildConfig.DEBUG) Log.e("AWAISKING_APP", "", e); |
|||
} |
|||
|
|||
stringBuilder.append('\n'); |
|||
|
|||
try (final BufferedWriter bw = new BufferedWriter(new FileWriter(excepionFile))) { |
|||
bw.write(stringBuilder.toString()); |
|||
} catch (final Exception e) { |
|||
if (BuildConfig.DEBUG) Log.e("AWAISKING_APP", "", e); |
|||
} |
|||
} |
|||
|
|||
public enum LogFile { |
|||
UTILS("utils.txt"), |
|||
MAIN_HELPER("main-helper.txt"), |
|||
//////////////////////// |
|||
ACTIVITY_STORY_VIEWER("act-story-viewer.txt"), |
|||
//////////////////////// |
|||
ASYNC_DOWNLOADER("async-download.txt"), |
|||
ASYNC_MAIN_POSTS_FETCHER("async-main-posts-fetcher.txt"), |
|||
ASYNC_DISCOVER_TOPICS_FETCHER("async-discover-topics-fetcher.txt"), |
|||
ASYNC_POST_FETCHER("async-single-post-fetcher.txt"), |
|||
ASYNC_FEED_FETCHER("async-feed-fetcher.txt"), |
|||
ASYNC_HASHTAG_FETCHER("async-hashtag-fetcher.txt"), |
|||
ASYNC_LOCATION_FETCHER("async-location-fetcher.txt"), |
|||
ASYNC_NOTIFICATION_FETCHER("async-notification-fetcher.txt"), |
|||
ASYNC_PROFILE_FETCHER("async-profile-fetcher.txt"), |
|||
ASYNC_PROFILE_PICTURE_FETCHER("async-pfp-fetcher.txt"), |
|||
ASYNC_SAVED_FETCHER("async-saved-fetcher.txt"), |
|||
ASYNC_STORY_STATUS_FETCHER("async-story-status-fetcher.txt"), |
|||
ASYNC_DISCOVER_FETCHER("async-discover-fetcher.txt"), |
|||
ASYNC_COMMENTS_FETCHER("async-comments-fetcher.txt"), |
|||
ASYNC_FOLLOW_FETCHER("async-follow-fetcher.txt"), |
|||
ASYNC_FEED_STORY_FETCHER("async-feed-story-fetcher.txt"), |
|||
//////////////////////// |
|||
ASYNC_DMS("async-dms-inbox-fetcher.txt"), |
|||
ASYNC_DMS_THREAD("async-dms-thread-fetcher.txt"), |
|||
//////////////////////// |
|||
DATA_BOX_FAVORITES("data-box-favs.txt"), |
|||
UTILS_EXPORT("utils-export.txt"), |
|||
UTILS_IMPORT("utils-import.txt"), |
|||
; |
|||
private final String fileName; |
|||
|
|||
LogFile(final String fileName) { |
|||
this.fileName = fileName; |
|||
} |
|||
} |
|||
|
|||
private static void deleteRecursive(@NonNull final File fileOrDirectory) { |
|||
final File[] files; |
|||
if (fileOrDirectory.isDirectory() && (files = fileOrDirectory.listFiles()) != null) |
|||
for (final File child : files) deleteRecursive(child); |
|||
//noinspection ResultOfMethodCallIgnored |
|||
fileOrDirectory.delete(); |
|||
} |
|||
}*/ |
Write
Preview
Loading…
Cancel
Save
Reference in new issue