import android.os.Bundle;
import android.util.Log;
import android.view.View;
-import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import net.ktnx.mobileledger.async.RefreshDescriptionsTask;
import net.ktnx.mobileledger.async.RetrieveTransactionsTask;
import net.ktnx.mobileledger.model.Data;
-import net.ktnx.mobileledger.model.LedgerAccount;
import net.ktnx.mobileledger.model.MobileLedgerProfile;
import net.ktnx.mobileledger.ui.account_summary.AccountSummaryFragment;
import net.ktnx.mobileledger.ui.profiles.ProfileDetailFragment;
import net.ktnx.mobileledger.ui.transaction_list.TransactionListFragment;
import net.ktnx.mobileledger.ui.transaction_list.TransactionListViewModel;
import net.ktnx.mobileledger.utils.Colors;
-import net.ktnx.mobileledger.utils.GetOptCallback;
import net.ktnx.mobileledger.utils.Logger;
import net.ktnx.mobileledger.utils.MLDB;
mToolbar = findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
- Data.profile.observe(this, this::onProfileChanged);
+ Data.observeProfile(this, this::onProfileChanged);
Data.profiles.observe(this, this::onProfileListChanged);
+ Data.backgroundTaskProgress.observe(this, this::onRetrieveProgress);
if (barDrawerToggle == null) {
barDrawerToggle = new ActionBarDrawerToggle(this, drawer, mToolbar,
* called when the current profile has changed
*/
private void onProfileChanged(MobileLedgerProfile profile) {
+ if (this.profile == null) {
+ if (profile == null)
+ return;
+ }
+ else {
+ if (this.profile.equals(profile))
+ return;
+ }
+
boolean haveProfile = profile != null;
if (haveProfile)
setTitle(R.string.app_name);
if (this.profile != null)
- this.profile.getAccounts()
+ this.profile.getDisplayedAccounts()
.removeObservers(this);
this.profile = profile;
storeThemeIdInPrefs(profile.getThemeHue());
// un-hook all observed LiveData
- Data.profile.removeObservers(this);
+ Data.removeProfileObservers(this);
Data.profiles.removeObservers(this);
Data.lastUpdateDate.removeObservers(this);
intent.putExtras(args);
startActivity(intent, args);
}
- private void setupProfile() {
- MLDB.getOption(MLDB.OPT_PROFILE_UUID, null, new GetOptCallback() {
- @Override
- protected void onResult(String profileUUID) {
- MobileLedgerProfile startupProfile;
-
- startupProfile = Data.getProfile(profileUUID);
- Data.setCurrentProfile(startupProfile);
- }
- });
- }
public void fabNewTransactionClicked(View view) {
Intent intent = new Intent(this, NewTransactionActivity.class);
startActivity(intent);
public void onLatestTransactionsClicked(View view) {
drawer.closeDrawers();
- showTransactionsFragment((String) null);
+ showTransactionsFragment(null);
}
public void showTransactionsFragment(String accName) {
Data.accountFilter.setValue(accName);
Data.stopTransactionsRetrieval();
bTransactionListCancelDownload.setEnabled(false);
}
- public void onRetrieveDone(String error) {
- Data.transactionRetrievalDone();
- findViewById(R.id.transaction_progress_layout).setVisibility(View.GONE);
-
- if (error == null) {
- updateLastUpdateTextFromDB();
-
- new RefreshDescriptionsTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- TransactionListViewModel.scheduleTransactionListReload();
- }
- else
- Snackbar.make(mViewPager, error, Snackbar.LENGTH_LONG)
- .show();
- }
public void onRetrieveStart() {
ProgressBar progressBar = findViewById(R.id.transaction_list_progress_bar);
bTransactionListCancelDownload.setEnabled(true);
}
public void onRetrieveProgress(RetrieveTransactionsTask.Progress progress) {
ProgressBar progressBar = findViewById(R.id.transaction_list_progress_bar);
- if ((progress.getTotal() == RetrieveTransactionsTask.Progress.INDETERMINATE) ||
- (progress.getTotal() == 0))
- {
+
+ if (progress.getState() == RetrieveTransactionsTask.ProgressState.FINISHED) {
+ findViewById(R.id.transaction_progress_layout).setVisibility(View.GONE);
+
+ Data.transactionRetrievalDone();
+
+ if (progress.getError() != null) {
+ Snackbar.make(mViewPager, progress.getError(), Snackbar.LENGTH_LONG)
+ .show();
+ return;
+ }
+
+ updateLastUpdateTextFromDB();
+
+ new RefreshDescriptionsTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ TransactionListViewModel.scheduleTransactionListReload();
+
+ return;
+ }
+
+
+ bTransactionListCancelDownload.setEnabled(true);
+ ColorStateList csl = Colors.getColorStateList();
+ progressBar.setIndeterminateTintList(csl);
+ progressBar.setProgressTintList(csl);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
+ progressBar.setProgress(0, false);
+ else
+ progressBar.setProgress(0);
+ findViewById(R.id.transaction_progress_layout).setVisibility(View.VISIBLE);
+
+ if (progress.isIndeterminate() || (progress.getTotal() == 0)) {
progressBar.setIndeterminate(true);
}
else {
public void fabHide() {
fab.hide();
}
- public void onAccountSummaryRowViewClicked(View view) {
- ViewGroup row;
- switch (view.getId()) {
- case R.id.account_expander:
- row = (ViewGroup) view.getParent()
- .getParent()
- .getParent();
- break;
- case R.id.account_expander_container:
- case R.id.account_row_acc_name:
- row = (ViewGroup) view.getParent()
- .getParent();
- break;
- default:
- row = (ViewGroup) view.getParent();
- break;
- }
-
- LedgerAccount acc = (LedgerAccount) row.getTag();
- switch (view.getId()) {
- case R.id.account_row_acc_name:
- case R.id.account_expander:
- case R.id.account_expander_container:
- break;
- case R.id.account_row_acc_amounts:
- break;
- }
- }
- public class SectionsPagerAdapter extends FragmentPagerAdapter {
+ public static class SectionsPagerAdapter extends FragmentPagerAdapter {
SectionsPagerAdapter(FragmentManager fm) {
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);