X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fnew_transaction%2FNewTransactionFragment.java;h=9bcac1c81a9b65d2b0d5ada9441493a71efb7120;hb=dee1d58effc26bccf90c03d0f71428a436e6eb99;hp=d1f19c46bc51c7018904d874cda141e411c095cc;hpb=346b3c8e74a12b1822239481f807479fa81fc706;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 d1f19c46..9bcac1c8 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 @@ -41,11 +41,13 @@ import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.snackbar.Snackbar; import net.ktnx.mobileledger.R; +import net.ktnx.mobileledger.db.Profile; import net.ktnx.mobileledger.json.API; import net.ktnx.mobileledger.model.Data; import net.ktnx.mobileledger.model.LedgerTransaction; -import net.ktnx.mobileledger.model.MobileLedgerProfile; +import net.ktnx.mobileledger.ui.FabManager; import net.ktnx.mobileledger.ui.QR; +import net.ktnx.mobileledger.ui.profiles.ProfileDetailActivity; import net.ktnx.mobileledger.utils.Logger; import org.jetbrains.annotations.NotNull; @@ -63,7 +65,7 @@ public class NewTransactionFragment extends Fragment { private NewTransactionItemsAdapter listAdapter; private NewTransactionModel viewModel; private OnNewTransactionFragmentInteractionListener mListener; - private MobileLedgerProfile mProfile; + private Profile mProfile; public NewTransactionFragment() { // Required empty public constructor setHasOptionsMenu(true); @@ -158,18 +160,19 @@ public class NewTransactionFragment extends Fragment { AlertDialog.Builder builder = new AlertDialog.Builder(context); final Resources resources = context.getResources(); final StringBuilder message = new StringBuilder(); - message.append(resources.getString(R.string.err_json_send_error_head)); - message.append("\n\n"); - message.append(error); - if (mProfile.getApiVersion() - .equals(API.auto)) + message.append(resources.getString(R.string.err_json_send_error_head)) + .append("\n\n") + .append(error) + .append("\n\n"); + if (API.valueOf(mProfile.getApiVersion()) + .equals(API.auto)) message.append( resources.getString(R.string.err_json_send_error_unsupported)); else { message.append(resources.getString(R.string.err_json_send_error_tail)); builder.setPositiveButton(R.string.btn_profile_options, (dialog, which) -> { Logger.debug("error", "will start profile editor"); - MobileLedgerProfile.startEditProfileActivity(context, mProfile); + ProfileDetailActivity.start(context, mProfile); }); } builder.setMessage(message); @@ -192,8 +195,13 @@ public class NewTransactionFragment extends Fragment { 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); } @@ -213,6 +221,9 @@ public class NewTransactionFragment extends Fragment { else p.setVisibility(View.INVISIBLE); }); + + if (activity instanceof FabManager.FabHandler) + FabManager.handle((FabManager.FabHandler) activity, list); } @Override public void onSaveInstanceState(@NonNull Bundle outState) { @@ -220,10 +231,12 @@ 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); + outState.putString("focused-element", focusInfo.element.toString()); + } } @Override