X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fnew_transaction%2FNewTransactionFragment.java;h=ec9fb39c7331fcb3fe6ed845258c9a0539cfb693;hb=e0a6b020086a2b03626cfaf3a50123a6fae4c4e4;hp=7741d18ac6656902485662583ba02d924078761c;hpb=5df10dc0b58df4d4be4e9ab34f1e0f477ca46766;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionFragment.java b/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionFragment.java index 7741d18a..ec9fb39c 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionFragment.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionFragment.java @@ -20,7 +20,6 @@ package net.ktnx.mobileledger.ui.new_transaction; import android.content.Context; import android.content.res.Resources; import android.os.Bundle; -import android.renderscript.RSInvalidStateException; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -128,7 +127,7 @@ public class NewTransactionFragment extends Fragment { super.onViewCreated(view, savedInstanceState); FragmentActivity activity = getActivity(); if (activity == null) - throw new RSInvalidStateException( + throw new IllegalStateException( "getActivity() returned null within onActivityCreated()"); viewModel = new ViewModelProvider(activity).get(NewTransactionModel.class); @@ -192,11 +191,18 @@ public class NewTransactionFragment extends Fragment { if (savedInstanceState != null) { keep |= savedInstanceState.getBoolean("keep", true); focused = savedInstanceState.getInt("focused-item", 0); - element = FocusedElement.valueOf(savedInstanceState.getString("focused-element")); + final String focusedElementString = savedInstanceState.getString("focused-element"); + if (focusedElementString != null) + element = FocusedElement.valueOf(focusedElementString); } - 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); } @@ -226,10 +232,13 @@ public class NewTransactionFragment extends Fragment { 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); + if (focusInfo.element != null) + outState.putString("focused-element", focusInfo.element.toString()); + } } @Override