weknowhowyoufeel/app/src/main/java/com/affectiva/errorreporting/ErrorReporter.java

67 lines
2.1 KiB
Java

/**
* Copyright (c) 2016 Affectiva Inc.
* See the file license.txt for copying permission.
*/
package com.affectiva.errorreporting;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import com.affectiva.affdexme.R;
import java.text.DateFormat;
import java.util.Date;
public class ErrorReporter extends Activity implements View.OnClickListener {
String errorMessage;
Button sendButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); // make a dialog without a titlebar
setContentView(R.layout.error_reporter);
Throwable error = (Throwable) getIntent().getSerializableExtra("affdexme_error");
if (error != null) {
StringBuilder builder = new StringBuilder();
builder.append("AffdexMe Error Report:");
builder.append(DateFormat.getDateTimeInstance().format(new Date()));
builder.append("\n");
builder.append(error.getMessage());
builder.append(("\n"));
StackTraceElement[] stackTraceElements = error.getStackTrace();
for (StackTraceElement element : stackTraceElements) {
builder.append("\n");
builder.append(element.toString());
}
errorMessage = builder.toString();
} else {
errorMessage = "Failed to catch error.";
}
sendButton = (Button) findViewById(R.id.send_button);
sendButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"sdk@affectiva.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "AffdexMe Crash Report");
intent.putExtra(Intent.EXTRA_TEXT, errorMessage); // do this so some email clients don't complain about empty body.
startActivity(intent);
finish();
}
}