X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2FCampusAppCrashActivity.java;fp=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2FCampusAppCrashActivity.java;h=b5efaed5bff9fe95f8af9fc13969f113c58ec969;hb=75c044dea598b6572660118e3e46026d4c5df06c;hp=0000000000000000000000000000000000000000;hpb=031bc5825ec414fbe567276d504748c92325fd3b;p=DHBWCampusApp.git diff --git a/app/src/main/java/de/dhbwloe/campusapp/CampusAppCrashActivity.java b/app/src/main/java/de/dhbwloe/campusapp/CampusAppCrashActivity.java new file mode 100644 index 0000000..b5efaed --- /dev/null +++ b/app/src/main/java/de/dhbwloe/campusapp/CampusAppCrashActivity.java @@ -0,0 +1,74 @@ +package de.dhbwloe.campusapp; + +import android.app.Activity; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.webkit.WebView; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ProgressBar; + +/** + * Created by pk910 on 11.03.2016. + */ +public class CampusAppCrashActivity extends Activity { + private static boolean crashLogWindowOpened = false; + private static final Object crashWindowLock = new Object(); + + private String crashdate, stacktrace; + private CampusAppCrashHandler exceptionHandler; + + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + synchronized (crashWindowLock) { + if(crashLogWindowOpened) { + int p = android.os.Process.myPid(); + android.os.Process.killProcess(p); + return; + } + crashLogWindowOpened = true; + } + + requestWindowFeature(Window.FEATURE_NO_TITLE); // make a window without a titlebar + setContentView(R.layout.crash_log); + final Activity that = this; + + Bundle extras = getIntent().getExtras(); + crashdate = (extras != null ? extras.getString("crashdate") : null); + + EditText crashLog = (EditText) findViewById(R.id.crashLog); + exceptionHandler = new CampusAppCrashHandler(); + stacktrace = exceptionHandler.getCrashStacktrace(that, crashdate); + crashLog.setText(stacktrace); + + Button sendButton = (Button) findViewById(R.id.sendCrashLog); + sendButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Button sendButton = (Button) v; + ProgressBar sendProgress = (ProgressBar) findViewById(R.id.sendProgressBar); + + + sendButton.setEnabled(false); + sendProgress.setVisibility(View.VISIBLE); + + + exceptionHandler.postprocessException(crashdate, stacktrace, new CampusAppCrashHandler.PostProcessingCallback() { + @Override + public void onPostProcessFinished(String response) { + ProgressBar sendProgress = (ProgressBar) findViewById(R.id.sendProgressBar); + WebView reportResponse = (WebView) findViewById(R.id.crashReportResponse); + + sendProgress.setVisibility(View.GONE); + reportResponse.setVisibility(View.VISIBLE); + reportResponse.loadData(response, "text/html", null); + } + }); + } + }); + } +}