Fix error reports and allow disabling them

This commit is contained in:
William Brawner 2018-10-16 07:25:28 -05:00 committed by William Brawner
parent 15eb0812c0
commit 66db5aa79d
6 changed files with 22 additions and 25 deletions

View file

@ -1,3 +1,3 @@
acraUrl=ACRA_URL url=ACRA_URL
acraUser=ACRA_USER user=ACRA_USER
acraPass=ACRA_PASS pass=ACRA_PASS

View file

@ -1,30 +1,22 @@
## Privacy Policy ## Privacy Policy
First and foremost, Simple Markdown DOES NOT collect any personally identifiable information. The First and foremost, Simple Markdown DOES NOT collect any personally identifiable information. The internet access permission is requested primarily for retrieving images from the internet in case you embed them in your markdown, but it also allows me to send automated error and crash reports to myself whenever the app runs into an issue. These error reports are powered by [ACRA](https://github.com/ACRA/acra), which is an open source error reporting solution, and are sent to a private server that only I have access to. These error reports are used exclusively for fixing problems that occur while you're using the app, and contain only the bare minimum information that I need to be able to resolve the issue. The information sent may include the following:
internet access permission is requested primarily for retrieving images from the internet in case
you embed them in your markdown, but it also allows me to send automated error and crash reports
to myself whenever the app runs into an issue. These error reports are powered by [ACRA](https://github.com/ACRA/acra), which is
an open source error reporting solution, and are sent to a private server that only I have access
to. These error reports are used exclusively for fixing problems that occur while you're using the
app, and contain only the bare minimum information that I need to be able to resolve the issue. The
information sent may include:
- the version of Android your device is running (e.g. 7.1) - the version of Android your device is running (e.g. 7.1)
- details about the version of SimpleMarkdown that you are using (Google Play version, Samsung Galaxy Apps version, FDroid version, version number, etc) - details about the version of SimpleMarkdown that you are using (Google Play version, Samsung Galaxy Apps version, FDroid version, version number, etc)
- any logs that SimpleMarkdown (but not other apps) might have created during execution
- the app identifier (com.wbrawner.simplemarkdown) - the app identifier (com.wbrawner.simplemarkdown)
- your device's manufacturer (Samsung, Huawei, LG, etc) - your device's manufacturer (Samsung, Huawei, LG, etc)
- your device's model (Galaxy S8, Mate 10 pro, G7, etc) - your device's model (Galaxy S8, Mate 10 pro, G7, etc)
- your device's configuration at app start and at the moment of the crash (the configuration tells me things like if you had the keyboard open, and if you were using the app in landscape or portrait mode. See the end of this privacy policy for a sample of that this might look like.) - your device's configuration at app start and at the moment of the error (the configuration tells me things like if you had the keyboard open, and if you were using the app in landscape or portrait mode. See the end of this privacy policy for a sample of that this might look like.)
- an estimation of the amount of available memory your device has (7353192448) - an estimation of the amount of available memory your device has (7353192448)
- an estimation of the amount of total memory your device has (55540875264) - an estimation of the amount of total memory your device has (55540875264)
- a stacktrace of the error (a stacktrace tells me which part of my code caused the error, what kind of error it was, and which parts of the code ran up to that error. See the end of this privacy policy for a sample of what this might look like.) - a stacktrace of the error (a stacktrace tells me which part of my code caused the error, what kind of error it was, and which parts of the code ran up to that error. See the end of this privacy policy for a sample of what this might look like.)
- any custom settings you have set within SimpleMarkdown (your default launch screen, default file directory, etc. Note that this does NOT include settings specific to your device, like whether or not you have WiFi enabled for example) - any custom settings you have set within SimpleMarkdown (your default launch screen, default file directory, etc. Note that this does NOT include settings specific to your device, like whether or not you have WiFi enabled for example)
- details about which thread the crash occurred on (e.g. main, file handling, network) - details about which thread the error occurred on (e.g. main, file handling, network)
- the time and date you started the app - the time and date you started the app
- the time and date the crash occurred - the time and date the error occurred
This information is the only information that I collect, and it's strictly used for finding and fixing issues in the code as quickly as possible. If you don't feel comfortable with this however, you are able to opt-out from the settings menu. Should you choose to opt-out of automated crash reports, I would very much appreciate it if you could contact me when you run into an issue either by email: [support@wbrawner.com](mailto:support@wbrawner.com) or by submitting an issue via the [GitHub page](https://github.com/wbrawner/SimpleMarkdown). This information is the only information that I collect, and it's strictly used for finding and fixing issues in the code as quickly as possible. If you don't feel comfortable with this however, you are able to opt-out from the settings menu. Should you choose to opt-out of automated error reports, I would very much appreciate it if you could contact me when you run into an issue either by email: [support@wbrawner.com](mailto:support@wbrawner.com) or by submitting an issue via the [GitHub page](https://github.com/wbrawner/SimpleMarkdown).
### Sample data ### Sample data

View file

@ -13,7 +13,6 @@ import static com.wbrawner.simplemarkdown.BuildConfig.ACRA_PASS;
import static com.wbrawner.simplemarkdown.BuildConfig.ACRA_URL; import static com.wbrawner.simplemarkdown.BuildConfig.ACRA_URL;
import static com.wbrawner.simplemarkdown.BuildConfig.ACRA_USER; import static com.wbrawner.simplemarkdown.BuildConfig.ACRA_USER;
import static org.acra.ReportField.ANDROID_VERSION; import static org.acra.ReportField.ANDROID_VERSION;
import static org.acra.ReportField.APPLICATION_LOG;
import static org.acra.ReportField.APP_VERSION_CODE; import static org.acra.ReportField.APP_VERSION_CODE;
import static org.acra.ReportField.APP_VERSION_NAME; import static org.acra.ReportField.APP_VERSION_NAME;
import static org.acra.ReportField.AVAILABLE_MEM_SIZE; import static org.acra.ReportField.AVAILABLE_MEM_SIZE;
@ -38,7 +37,6 @@ import static org.acra.ReportField.USER_CRASH_DATE;
ANDROID_VERSION, ANDROID_VERSION,
APP_VERSION_CODE, APP_VERSION_CODE,
APP_VERSION_NAME, APP_VERSION_NAME,
APPLICATION_LOG,
AVAILABLE_MEM_SIZE, AVAILABLE_MEM_SIZE,
BRAND, BRAND,
BUILD_CONFIG, BUILD_CONFIG,

View file

@ -122,12 +122,6 @@ public class ExplorerActivity extends AppCompatActivity {
ACRA.getErrorReporter().handleException(e, false); ACRA.getErrorReporter().handleException(e, false);
updateListView(); updateListView();
menu.findItem(R.id.action_use_sdcard).setVisible(false); menu.findItem(R.id.action_use_sdcard).setVisible(false);
// TODO: Report this?
// Crashlytics.logException(e);
// Crashlytics.log(mounts.length + " mounts found");
// for (File mount : mounts) {
// Crashlytics.log(mount.getAbsolutePath());
// }
} }
if (sdcardSelected) { if (sdcardSelected) {
menu.findItem(R.id.action_use_sdcard).setChecked(true); menu.findItem(R.id.action_use_sdcard).setChecked(true);

View file

@ -42,6 +42,12 @@
<string name="action_select">Select</string> <string name="action_select">Select</string>
<string name="directory_up">\u2191 Go up</string> <string name="directory_up">\u2191 Go up</string>
<string name="action_privacy">Privacy</string> <string name="action_privacy">Privacy</string>
<string name="error_reports_enabled">acra.enable</string>
<string name="pref_title_error_reports">Enable automated error reports</string>
<string name="pref_error_reports_off">Error reports will not be sent</string>
<string name="pref_error_reports_on">Error reports will be sent</string>
<string name="pref_autosave_on">Files will automatically save</string>
<string name="pref_autosave_off">Files will not be automatically saved</string>
<string-array name="pref_entries_default_view"> <string-array name="pref_entries_default_view">
<item>@string/value_edit_view</item> <item>@string/value_edit_view</item>
<item>@string/value_explorer_view</item> <item>@string/value_explorer_view</item>

View file

@ -3,7 +3,8 @@
<SwitchPreference <SwitchPreference
android:defaultValue="true" android:defaultValue="true"
android:key="autosave" android:key="autosave"
android:summary="@string/pref_description_autosave" android:summaryOn="@string/pref_autosave_on"
android:summaryOff="@string/pref_autosave_off"
android:title="@string/pref_title_autosave" /> android:title="@string/pref_title_autosave" />
<ListPreference <ListPreference
android:defaultValue="@string/value_edit_view" android:defaultValue="@string/value_edit_view"
@ -14,5 +15,11 @@
<Preference <Preference
android:key="defaultRootDir" android:key="defaultRootDir"
android:title="@string/pref_description_default_root" /> android:title="@string/pref_description_default_root" />
<SwitchPreference
android:defaultValue="true"
android:key="@string/error_reports_enabled"
android:summaryOff="@string/pref_error_reports_off"
android:summaryOn="@string/pref_error_reports_on"
android:title="@string/pref_title_error_reports" />
</PreferenceScreen> </PreferenceScreen>