element = FocusedElement.valueOf(savedInstanceState.getString("focused-element"));
}
- if (!keep)
- viewModel.reset();
+ if (!keep) {
+ // we need the DB up and running
+ Data.observeProfile(getViewLifecycleOwner(), p -> {
+ if (p != null)
+ viewModel.reset();
+ });
+ }
else {
viewModel.noteFocusChanged(focused, element);
}
outState.putBoolean("keep", true);
final NewTransactionModel.FocusInfo focusInfo = viewModel.getFocusInfo()
.getValue();
- final int focusedItem = focusInfo.position;
- if (focusedItem >= 0)
- outState.putInt("focused-item", focusedItem);
- outState.putString("focused-element", focusInfo.element.toString());
+ if (focusInfo != null) {
+ final int focusedItem = focusInfo.position;
+ if (focusedItem >= 0)
+ outState.putInt("focused-item", focusedItem);
+ outState.putString("focused-element", focusInfo.element.toString());
+ }
}
@Override