That fuck shit the fascists are using
at master 51 lines 1.6 kB view raw
1package org.tm.archive.logsubmit; 2 3import android.content.Context; 4 5import androidx.annotation.NonNull; 6 7import org.signal.core.util.concurrent.DeadlockDetector; 8import org.tm.archive.dependencies.ApplicationDependencies; 9 10import java.text.SimpleDateFormat; 11import java.util.Date; 12import java.util.Locale; 13import java.util.Map; 14 15public class LogSectionThreadDump implements LogSection { 16 17 private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS zzz", Locale.US); 18 19 @Override 20 public @NonNull String getTitle() { 21 return "LAST THREAD DUMP"; 22 } 23 24 @Override 25 public @NonNull CharSequence getContent(@NonNull Context context) { 26 Map<Thread, StackTraceElement[]> traces = ApplicationDependencies.getDeadlockDetector().getLastThreadDump(); 27 long time = ApplicationDependencies.getDeadlockDetector().getLastThreadDumpTime(); 28 29 if (traces == null) { 30 return "None"; 31 } 32 33 StringBuilder out = new StringBuilder(); 34 35 out.append("Time: ").append(DATE_FORMAT.format(new Date(time))).append(" (").append(time).append(")\n\n"); 36 37 for (Map.Entry<Thread, StackTraceElement[]> entry : traces.entrySet()) { 38 Thread thread = entry.getKey(); 39 out.append("-- [").append(thread.getId()).append("] ") 40 .append(thread.getName()).append(" (").append(thread.getState()).append(")\n"); 41 42 for (StackTraceElement element : entry.getValue()) { 43 out.append(element.toString()).append("\n"); 44 } 45 46 out.append("\n"); 47 } 48 49 return out; 50 } 51}