Skip to content

Commit 30e9c5f

Browse files
committed
increase crash reporting verbosity to help with some reports
Some reports lack any context. For example the Editor activity can be started from a new entry or from an existing one. Crashes for null lists are thus kind of hard to debug.
1 parent a9db786 commit 30e9c5f

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/MyApplication.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class MyApplication: Application() {
1717
//core configuration:
1818
buildConfigClass = BuildConfig::class.java
1919
reportFormat = StringFormat.JSON
20+
applicationLogFileLines = 500
2021
//each plugin you chose above can be configured in a block like this:
2122
dialog {
2223
//required

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/editor/EditorActivity.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import androidx.appcompat.app.AppCompatActivity
1818
import androidx.appcompat.widget.Toolbar
1919
import com.google.android.material.floatingactionbutton.FloatingActionButton
2020
import com.google.android.material.snackbar.Snackbar
21+
import org.acra.ACRA
2122
import vocabletrainer.heinecke.aron.vocabletrainer.R
2223
import vocabletrainer.heinecke.aron.vocabletrainer.activity.MainActivity
2324
import vocabletrainer.heinecke.aron.vocabletrainer.dialog.ItemPickerDialog
@@ -94,13 +95,15 @@ class EditorActivity : AppCompatActivity(), EditorDialogDataProvider, ListEditor
9495

9596
// handle passed params
9697
var newTable = intent.getBooleanExtra(PARAM_NEW_TABLE, false)
98+
ACRA.errorReporter.putCustomData("hasSavedInstanceState","$savedInstanceState");
9799
if (savedInstanceState != null) {
98100
newTable = savedInstanceState.getBoolean(PARAM_NEW_TABLE, false)
99101
listEditorDialog = supportFragmentManager.getFragment(
100102
savedInstanceState,
101103
VListEditorDialog.TAG
102104
) as VListEditorDialog?
103105
}
106+
ACRA.errorReporter.putCustomData("newTable","$newTable")
104107
if (newTable) {
105108
list = if (savedInstanceState != null) // viewport changed during creation phase
106109
savedInstanceState.getParcelable(PARAM_TABLE) else VList.blank(
@@ -112,16 +115,18 @@ class EditorActivity : AppCompatActivity(), EditorDialogDataProvider, ListEditor
112115
if (savedInstanceState == null) showTableInfoDialog()
113116
} else {
114117
val tbl: VList? = intent.getParcelableExtra(PARAM_TABLE)
118+
ACRA.errorReporter.putCustomData("intentHasList","$tbl")
115119
if (tbl != null) {
116120
list = tbl
117121
// do not call updateColumnNames as we've to wait for onCreateOptionsMenu, calling it
118122
entries!!.addAll(db.getEntriesOfList(list!!))
119123
adapter!!.updateSorting(cComp)
120124
Log.d(TAG, "edit list mode")
121-
} else {
122-
Log.e(TAG, "Edit VList Flag set without passing a list")
123125
}
124126
}
127+
if (list == null) {
128+
ACRA.errorReporter.handleException(throw Throwable("List for editor is null"))
129+
}
125130
if (listEditorDialog != null) setListEditorActions()
126131
if (savedInstanceState != null) {
127132
editorDialog = supportFragmentManager.getFragment(

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/editor/ListActivity.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import androidx.appcompat.app.ActionBar;
88
import androidx.appcompat.widget.Toolbar;
99

10+
import org.acra.ACRA;
11+
1012
import java.util.ArrayList;
1113
import java.util.List;
1214

@@ -116,6 +118,7 @@ public void selectionUpdate(ArrayList<VList> selected) {
116118
ListPickerViewModel listPickerViewModel = ViewModelProviders.of(this).get(ListPickerViewModel.class);
117119
listPickerViewModel.setDataInvalidated(); // editor changed entry
118120

121+
ACRA.getErrorReporter().putCustomData("editingList","true");
119122
Intent myIntent = new Intent(this, EditorActivity.class);
120123
myIntent.putExtra(EditorActivity.PARAM_NEW_TABLE, false);
121124
VList lst = selected.get(0);

app/src/main/java/vocabletrainer/heinecke/aron/vocabletrainer/listpicker/ListPickerFragment.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
import static vocabletrainer.heinecke.aron.vocabletrainer.activity.MainActivity.PREFS_NAME;
4040
import static vocabletrainer.heinecke.aron.vocabletrainer.lib.Database.ID_RESERVED_SKIP;
4141

42+
import org.acra.ACRA;
43+
4244
/**
4345
* List selector fragment<br>
4446
* This can be used externally in other fragments<br>
@@ -239,6 +241,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
239241
bNewList.setOnClickListener(new View.OnClickListener() {
240242
@Override
241243
public void onClick(View v) {
244+
ACRA.getErrorReporter().putCustomData("creatingList","true");
242245
Intent myIntent = new Intent(getActivity(), EditorActivity.class);
243246
myIntent.putExtra(EditorActivity.PARAM_NEW_TABLE, true);
244247
startActivityForResult(myIntent,CODE_NEW_LIST);

0 commit comments

Comments
 (0)