import net.ktnx.mobileledger.R;
import net.ktnx.mobileledger.model.Data;
+import net.ktnx.mobileledger.model.LedgerAccount;
+import net.ktnx.mobileledger.model.MobileLedgerProfile;
import net.ktnx.mobileledger.ui.MobileLedgerListFragment;
import net.ktnx.mobileledger.ui.activity.MainActivity;
import net.ktnx.mobileledger.utils.Colors;
+import net.ktnx.mobileledger.utils.Logger;
import org.jetbrains.annotations.NotNull;
+import java.util.List;
+import java.util.Locale;
+
import static net.ktnx.mobileledger.utils.Logger.debug;
public class AccountSummaryFragment extends MobileLedgerListFragment {
manageFabOnScroll();
- swiper = mainActivity.findViewById(R.id.account_swiper);
+ refreshLayout = mainActivity.findViewById(R.id.account_swipe_refresh_layout);
Colors.themeWatch.observe(getViewLifecycleOwner(), this::themeChanged);
- swiper.setOnRefreshListener(() -> {
+ refreshLayout.setOnRefreshListener(() -> {
debug("ui", "refreshing accounts via swipe");
Data.scheduleTransactionListRetrieval(mainActivity);
});
- Data.accounts.addObserver(
- (o, arg) -> mainActivity.runOnUiThread(() -> modelAdapter.notifyDataSetChanged()));
+ MobileLedgerProfile profile = Data.getProfile();
+ profile.getDisplayedAccounts()
+ .observe(getViewLifecycleOwner(), this::onAccountsChanged);
+ }
+ private void onAccountsChanged(List<LedgerAccount> accounts) {
+ Logger.debug("async-acc",
+ String.format(Locale.US, "fragment: got new account list (%d items)",
+ accounts.size()));
+ modelAdapter.setAccounts(accounts);
}
}