Added button to export crash logs

This commit is contained in:
Anuken
2020-11-02 19:45:45 -05:00
parent 8ecbb46303
commit 65ab869468
3 changed files with 29 additions and 1 deletions

View File

@ -267,6 +267,9 @@ cancel = Cancel
openlink = Open Link
copylink = Copy Link
back = Back
crash.export = Export Crash Logs
crash.none = No crash logs found.
crash.exported = Crash logs exported.
data.export = Export Data
data.import = Import Data
data.openfolder = Open Data Folder

View File

@ -195,6 +195,23 @@ public class SettingsMenuDialog extends SettingsDialog{
t.row();
t.button("@data.openfolder", Icon.folder, style, () -> Core.app.openFolder(Core.settings.getDataDirectory().absolutePath())).marginLeft(4);
}
t.row();
t.button("@crash.export", Icon.upload, style, () -> {
if(settings.getDataDirectory().child("crashes").list().length == 0){
ui.showInfo("@crash.none");
}else{
platform.showFileChooser(false, "txt", file -> {
StringBuilder out = new StringBuilder();
for(Fi fi : settings.getDataDirectory().child("crashes").list()){
out.append(fi.name()).append("\n\n").append(fi.readString()).append("\n");
}
file.writeString(out.toString());
app.post(() -> ui.showInfo("@crash.exported"));
});
}
}).marginLeft(4);
});
ScrollPane pane = new ScrollPane(prefs);

View File

@ -12,6 +12,7 @@ import mindustry.*;
import mindustry.game.EventType.*;
import mindustry.game.Saves.*;
import mindustry.io.*;
import mindustry.net.*;
import mindustry.ui.*;
import org.robovm.apple.coregraphics.*;
import org.robovm.apple.foundation.*;
@ -248,7 +249,14 @@ public class IOSLauncher extends IOSApplication.Delegate{
public static void main(String[] argv){
NSAutoreleasePool pool = new NSAutoreleasePool();
UIApplication.main(argv, null, IOSLauncher.class);
try{
UIApplication.main(argv, null, IOSLauncher.class);
}catch(Throwable t){
//attempt to log the exception
CrashSender.log(t);
//rethrow the exception so it actually crashes
throw t;
}
pool.close();
}
}