import net.ktnx.mobileledger.async.RetrieveTransactionsTask;
import net.ktnx.mobileledger.databinding.ActivityMainBinding;
import net.ktnx.mobileledger.db.DB;
+import net.ktnx.mobileledger.db.Option;
import net.ktnx.mobileledger.db.Profile;
import net.ktnx.mobileledger.model.Data;
import net.ktnx.mobileledger.ui.FabManager;
import net.ktnx.mobileledger.ui.transaction_list.TransactionListFragment;
import net.ktnx.mobileledger.utils.Colors;
import net.ktnx.mobileledger.utils.Logger;
-import net.ktnx.mobileledger.utils.MLDB;
import org.jetbrains.annotations.NotNull;
markDrawerItemCurrent(R.id.nav_account_summary);
b.mainPager.setAdapter(mSectionsPagerAdapter);
+ b.mainPager.setOffscreenPageLimit(1);
if (pageChangeCallback == null) {
pageChangeCallback = new ViewPager2.OnPageChangeCallback() {
mProfileListAdapter.setProfileList(newList);
createShortcuts(newList);
+
+ Profile currentProfile = Data.getProfile();
+ if (currentProfile == null || !newList.contains(currentProfile)) {
+ Logger.debug(TAG, "Switching profile because the current is no longer available");
+ Data.setCurrentProfile(newList.get(0));
+ }
}
/**
* called when the current profile has changed
DB.get()
.getOptionDAO()
- .load(profile.getId(), MLDB.OPT_LAST_SCRAPE)
+ .load(profile.getId(), Option.OPT_LAST_SCRAPE)
.observe(this, opt -> {
long lastUpdate = 0;
if (opt != null) {
b.transactionProgressLayout.setVisibility(View.GONE);
}
}
- public void onRetrieveProgress(RetrieveTransactionsTask.Progress progress) {
- if (progress.getState() == RetrieveTransactionsTask.ProgressState.FINISHED) {
+ public void onRetrieveProgress(@Nullable RetrieveTransactionsTask.Progress progress) {
+ if (progress == null ||
+ progress.getState() == RetrieveTransactionsTask.ProgressState.FINISHED)
+ {
Logger.debug("progress", "Done");
b.transactionProgressLayout.setVisibility(View.GONE);
mainModel.transactionRetrievalDone();
- String error = progress.getError();
+ String error = (progress == null) ? null : progress.getError();
if (error != null) {
if (error.equals(RetrieveTransactionsTask.Result.ERR_JSON_PARSER_ERROR))
error = getResources().getString(R.string.err_json_parser_error);