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;
private NewTransactionItemsAdapter listAdapter;
private NewTransactionModel viewModel;
private OnNewTransactionFragmentInteractionListener mListener;
- private MobileLedgerProfile mProfile;
+ private Profile mProfile;
public NewTransactionFragment() {
// Required empty public constructor
setHasOptionsMenu(true);
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);
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);
}
else
p.setVisibility(View.INVISIBLE);
});
+
+ if (activity instanceof FabManager.FabHandler)
+ FabManager.handle((FabManager.FabHandler) activity, list);
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
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