mirror of
https://github.com/etesync/android
synced 2025-02-09 06:02:42 +00:00
Debug info: when sharing, also share the full ACRA info.
This commit is contained in:
parent
7f015dc661
commit
64a86e50d4
@ -81,6 +81,7 @@ import okhttp3.internal.tls.OkHostnameVerifier;
|
|||||||
|
|
||||||
@AcraCore(buildConfigClass = BuildConfig.class)
|
@AcraCore(buildConfigClass = BuildConfig.class)
|
||||||
@AcraMailSender(mailTo = "reports@etesync.com",
|
@AcraMailSender(mailTo = "reports@etesync.com",
|
||||||
|
subject = R.string.crash_email_subject,
|
||||||
reportFileName = "ACRA-report.stacktrace.json")
|
reportFileName = "ACRA-report.stacktrace.json")
|
||||||
@AcraToast(resText = R.string.crash_message,
|
@AcraToast(resText = R.string.crash_message,
|
||||||
length = Toast.LENGTH_LONG)
|
length = Toast.LENGTH_LONG)
|
||||||
|
@ -43,6 +43,7 @@ import com.etesync.syncadapter.model.ServiceDB;
|
|||||||
import com.etesync.syncadapter.model.ServiceEntity;
|
import com.etesync.syncadapter.model.ServiceEntity;
|
||||||
import com.etesync.syncadapter.resource.LocalAddressBook;
|
import com.etesync.syncadapter.resource.LocalAddressBook;
|
||||||
|
|
||||||
|
import org.acra.ACRA;
|
||||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||||
import org.apache.commons.lang3.text.WordUtils;
|
import org.apache.commons.lang3.text.WordUtils;
|
||||||
|
|
||||||
@ -89,49 +90,11 @@ public class DebugInfoActivity extends BaseActivity implements LoaderManager.Loa
|
|||||||
|
|
||||||
|
|
||||||
public void onShare(MenuItem item) {
|
public void onShare(MenuItem item) {
|
||||||
if (!TextUtils.isEmpty(report)) {
|
ACRA.getErrorReporter().putCustomData("debug_info", report);
|
||||||
Intent sendIntent = new Intent();
|
ACRA.getErrorReporter().handleSilentException(null);
|
||||||
sendIntent.setAction(Intent.ACTION_SEND);
|
ACRA.getErrorReporter().removeCustomData("debug_info");
|
||||||
sendIntent.setType("text/plain");
|
|
||||||
sendIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name) + " " + BuildConfig.VERSION_NAME + " debug info");
|
|
||||||
|
|
||||||
// since Android 4.1, FileProvider permissions are handled in a useful way (using ClipData)
|
|
||||||
boolean asAttachment = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
|
|
||||||
|
|
||||||
if (asAttachment)
|
|
||||||
try {
|
|
||||||
File debugInfoDir = new File(getCacheDir(), "debug-info");
|
|
||||||
debugInfoDir.mkdir();
|
|
||||||
|
|
||||||
reportFile = new File(debugInfoDir, "debug.txt");
|
|
||||||
App.log.fine("Writing debug info to " + reportFile.getAbsolutePath());
|
|
||||||
FileWriter writer = new FileWriter(reportFile);
|
|
||||||
writer.write(report);
|
|
||||||
writer.close();
|
|
||||||
|
|
||||||
sendIntent.putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(this, getString(R.string.authority_log_provider), reportFile));
|
|
||||||
sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
|
||||||
|
|
||||||
} catch(IOException e) {
|
|
||||||
// creating an attachment failed, so send it inline
|
|
||||||
asAttachment = false;
|
|
||||||
|
|
||||||
StringBuilder builder = new StringBuilder();
|
|
||||||
builder .append("Couldn't write debug info file:\n")
|
|
||||||
.append(ExceptionUtils.getStackTrace(e))
|
|
||||||
.append("\n\n")
|
|
||||||
.append(report);
|
|
||||||
report = builder.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!asAttachment)
|
|
||||||
sendIntent.putExtra(Intent.EXTRA_TEXT, report);
|
|
||||||
|
|
||||||
startActivity(Intent.createChooser(sendIntent, null));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Loader<String> onCreateLoader(int id, Bundle args) {
|
public Loader<String> onCreateLoader(int id, Bundle args) {
|
||||||
return new ReportLoader(this, args);
|
return new ReportLoader(this, args);
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?><!--
|
||||||
<!--
|
|
||||||
~ Copyright © 2013 – 2015 Ricki Hirner (bitfire web engineering).
|
~ Copyright © 2013 – 2015 Ricki Hirner (bitfire web engineering).
|
||||||
~ All rights reserved. This program and the accompanying materials
|
~ All rights reserved. This program and the accompanying materials
|
||||||
~ are made available under the terms of the GNU Public License v3.0
|
~ are made available under the terms of the GNU Public License v3.0
|
||||||
@ -8,16 +7,29 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:orientation="vertical"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:orientation="vertical"
|
||||||
android:padding="10dp">
|
android:padding="10dp">
|
||||||
|
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:typeface="monospace"
|
android:orientation="vertical">
|
||||||
android:text="@string/please_wait"
|
|
||||||
android:id="@+id/text_report"/>
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/debug_info_more_data_shared"
|
||||||
|
android:layout_marginBottom="10dp"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/text_report"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/please_wait"
|
||||||
|
android:typeface="monospace" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</ScrollView>
|
</ScrollView>
|
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
<!-- Crash -->
|
<!-- Crash -->
|
||||||
<string name="crash_message">EteSync has crashed, please send stack trace to developers.</string>
|
<string name="crash_message">EteSync has crashed, please send stack trace to developers.</string>
|
||||||
|
<string name="crash_email_subject">EteSync Debug Info</string>
|
||||||
|
|
||||||
<!-- tourguide -->
|
<!-- tourguide -->
|
||||||
<string name="tourguide_title">Did you know?</string>
|
<string name="tourguide_title">Did you know?</string>
|
||||||
@ -295,6 +296,7 @@
|
|||||||
<!-- sync errors and DebugInfoActivity -->
|
<!-- sync errors and DebugInfoActivity -->
|
||||||
<string name="authority_log_provider" translatable="false">com.etesync.syncadapter.log</string>
|
<string name="authority_log_provider" translatable="false">com.etesync.syncadapter.log</string>
|
||||||
<string name="debug_info_title">Debug info</string>
|
<string name="debug_info_title">Debug info</string>
|
||||||
|
<string name="debug_info_more_data_shared">Clicking share will open the email app with the data below, as well as some additional debug information attached. You will be prompted before the email is sent.</string>
|
||||||
<string name="sync_error_permissions">EteSync permissions</string>
|
<string name="sync_error_permissions">EteSync permissions</string>
|
||||||
<string name="sync_error_permissions_text">Additional permissions required</string>
|
<string name="sync_error_permissions_text">Additional permissions required</string>
|
||||||
<string name="sync_error_calendar">Calendar sync failed (%s)</string>
|
<string name="sync_error_calendar">Calendar sync failed (%s)</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user