diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/StudyOptionsFragment.java b/AnkiDroid/src/main/java/com/ichi2/anki/StudyOptionsFragment.java index cc403ea007..cd2af4d644 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/StudyOptionsFragment.java +++ b/AnkiDroid/src/main/java/com/ichi2/anki/StudyOptionsFragment.java @@ -386,7 +386,7 @@ public class StudyOptionsFragment extends Fragment implements Toolbar.OnMenuItem mToolbar.setOnMenuItemClickListener(this); Menu menu = mToolbar.getMenu(); // Switch on or off rebuild/empty/custom study depending on whether or not filtered deck - if (getCol().getDecks().isDyn(getCol().getDecks().selected())) { + if (getCol() != null && getCol().getDecks().isDyn(getCol().getDecks().selected())) { menu.findItem(R.id.action_rebuild).setVisible(true); menu.findItem(R.id.action_empty).setVisible(true); menu.findItem(R.id.action_custom_study).setVisible(false); @@ -412,9 +412,9 @@ public class StudyOptionsFragment extends Fragment implements Toolbar.OnMenuItem menu.findItem(R.id.action_export).setVisible(false); } // Switch on or off unbury depending on if there are cards to unbury - menu.findItem(R.id.action_unbury).setVisible(getCol().getSched().haveBuried()); + menu.findItem(R.id.action_unbury).setVisible(getCol() != null && getCol().getSched().haveBuried()); // Switch on or off undo depending on whether undo is available - if (!getCol().undoAvailable()) { + if (getCol() == null || !getCol().undoAvailable()) { menu.findItem(R.id.action_undo).setVisible(false); } else { menu.findItem(R.id.action_undo).setVisible(true); @@ -740,8 +740,13 @@ public class StudyOptionsFragment extends Fragment implements Toolbar.OnMenuItem return HtmlCompat.fromHtml(withFixedNewlines, HtmlCompat.FROM_HTML_MODE_LEGACY); } - private Collection getCol() { - return CollectionHelper.getInstance().getCol(getContext()); + private @Nullable Collection getCol() { + try { + return CollectionHelper.getInstance().getCol(getContext()); + } catch (Exception e) { + // This may happen if the backend is locked or similar. + } + return null; } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/DeckPickerTest.java b/AnkiDroid/src/test/java/com/ichi2/anki/DeckPickerTest.java index 737a1bd394..5e450ac883 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/DeckPickerTest.java +++ b/AnkiDroid/src/test/java/com/ichi2/anki/DeckPickerTest.java @@ -59,7 +59,7 @@ public class DeckPickerTest extends RobolectricTest { @Parameters public static java.util.Collection initParameters() { - return Arrays.asList("normal"); //, "xlarge"); + return Arrays.asList("normal", "xlarge"); } @Before