import net.ktnx.mobileledger.model.LedgerTransaction;
import net.ktnx.mobileledger.model.LedgerTransactionAccount;
import net.ktnx.mobileledger.model.MobileLedgerProfile;
+import net.ktnx.mobileledger.utils.Misc;
import org.jetbrains.annotations.NotNull;
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- Activity activity = getActivity();
+ FragmentActivity activity = getActivity();
if (activity == null)
throw new RSInvalidStateException(
"getActivity() returned null within onActivityCreated()");
list = activity.findViewById(R.id.new_transaction_accounts);
- viewModel = ViewModelProviders.of(this)
+ viewModel = ViewModelProviders.of(activity)
.get(NewTransactionModel.class);
mProfile = Data.profile.getValue();
listAdapter = new NewTransactionItemsAdapter(viewModel, mProfile);
// TODO display error
}
else {
+ }
+ }
+
+ if (savedInstanceState != null) {
+ boolean keep = savedInstanceState.getBoolean("keep", true);
+ if (!keep)
viewModel.reset();
+ else {
+ final int focused = savedInstanceState.getInt("focused", 0);
+ viewModel.setFocusedItem(focused);
}
}
}
+ @Override
+ public void onSaveInstanceState(@NonNull Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putBoolean("keep", true);
+ final int focusedItem = viewModel.getFocusedItem();
+ outState.putInt("focused", focusedItem);
+ }
private void onFabPressed() {
fab.setEnabled(false);
+ Misc.hideSoftKeyboard(this);
if (mListener != null) {
Date date = viewModel.getDate();
LedgerTransaction tr =