/*
- * Copyright © 2019 Damyan Ivanov.
+ * Copyright © 2021 Damyan Ivanov.
* This file is part of MoLe.
* MoLe is free software: you can distribute it and/or modify it
* under the term of the GNU General Public License as published by
import com.google.android.material.switchmaterial.SwitchMaterial;
-import net.ktnx.mobileledger.App;
import net.ktnx.mobileledger.R;
+import net.ktnx.mobileledger.dao.CurrencyDAO;
+import net.ktnx.mobileledger.db.DB;
+import net.ktnx.mobileledger.db.Profile;
import net.ktnx.mobileledger.model.Currency;
import net.ktnx.mobileledger.model.Data;
-import net.ktnx.mobileledger.model.MobileLedgerProfile;
import java.util.ArrayList;
import java.util.List;
-import java.util.Objects;
-import java.util.concurrent.CopyOnWriteArrayList;
/**
* A fragment representing a list of Items.
model = new ViewModelProvider(this).get(CurrencySelectorModel.class);
if (onCurrencySelectedListener != null)
model.setOnCurrencySelectedListener(onCurrencySelectedListener);
- MobileLedgerProfile profile = Objects.requireNonNull(Data.getProfile());
+ Profile profile = Data.getProfile();
- model.currencies.setValue(new CopyOnWriteArrayList<>(profile.getCurrencies()));
CurrencySelectorRecyclerViewAdapter adapter = new CurrencySelectorRecyclerViewAdapter();
- model.currencies.observe(this, adapter::submitList);
+ DB.get()
+ .getCurrencyDAO()
+ .getAll()
+ .observe(this, list -> {
+ List<String> strings = new ArrayList<>();
+ for (net.ktnx.mobileledger.db.Currency c : list) {
+ strings.add(c.getName());
+ }
+ adapter.submitList(strings);
+ });
recyclerView.setAdapter(adapter);
adapter.setCurrencySelectedListener(this);
String currName = String.valueOf(tvNewCurrName.getText());
if (!currName.isEmpty()) {
- List<Currency> list = new ArrayList<>(model.currencies.getValue());
+ DB.get()
+ .getCurrencyDAO()
+ .insert(new net.ktnx.mobileledger.db.Currency(0,
+ String.valueOf(tvNewCurrName.getText()), "after", false));
// FIXME hardcoded position and gap setting
- list.add(new Currency(profile, String.valueOf(tvNewCurrName.getText()),
- Currency.Position.after, false));
- model.currencies.setValue(list);
}
tvNewCurrName.setVisibility(View.GONE);
model.resetOnCurrencySelectedListener();
}
@Override
- public void onCurrencySelected(Currency item) {
+ public void onCurrencySelected(String item) {
model.triggerOnCurrencySelectedListener(item);
dismiss();
}
@Override
- public void onCurrencyLongClick(Currency item) {
- ArrayList<Currency> list = new ArrayList<>(model.currencies.getValue());
- App.getDatabase()
- .execSQL("delete from currencies where id=?", new Object[]{item.getId()});
- list.remove(item);
- model.currencies.setValue(list);
+ public void onCurrencyLongClick(String item) {
+ CurrencyDAO dao = DB.get()
+ .getCurrencyDAO();
+ dao.getByName(item)
+ .observe(this, dao::deleteSync);
}
public void showPositionAndPadding() {
deferredShowPositionAndPadding = true;