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;
Data.observeProfile(this, this::onProfileChanged);
Data.profiles.observe(this, this::onProfileListChanged);
+ Data.backgroundTaskProgress.observe(this, this::onRetrieveProgress);
+ Data.backgroundTasksRunning.observe(this, this::onRetrieveRunningChanged);
if (barDrawerToggle == null) {
barDrawerToggle = new ActionBarDrawerToggle(this, drawer, mToolbar,
"WEB data last fetched at %1.3f and now is %1.3f. re-fetching",
lastUpdate.getTime() / 1000f, now / 1000f));
- Data.scheduleTransactionListRetrieval(this);
+ scheduleDataRetrieval();
}
}
+ public void scheduleDataRetrieval() {
+ Data.scheduleTransactionListRetrieval();
+ }
private void createShortcuts(List<MobileLedgerProfile> list) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1)
return;
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);
Data.stopTransactionsRetrieval();
bTransactionListCancelDownload.setEnabled(false);
}
- public void onRetrieveDone(String error) {
- Data.transactionRetrievalDone();
- findViewById(R.id.transaction_progress_layout).setVisibility(View.GONE);
+ public void onRetrieveRunningChanged(Boolean running) {
+ final View progressLayout = findViewById(R.id.transaction_progress_layout);
+ if (running) {
+ ProgressBar progressBar = findViewById(R.id.transaction_list_progress_bar);
+ bTransactionListCancelDownload.setEnabled(true);
+ ColorStateList csl = Colors.getColorStateList();
+ progressBar.setIndeterminateTintList(csl);
+ progressBar.setProgressTintList(csl);
+ progressBar.setIndeterminate(true);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ progressBar.setProgress(0, false);
+ }
+ else {
+ progressBar.setProgress(0);
+ }
+ progressLayout.setVisibility(View.VISIBLE);
+ }
+ else {
+ progressLayout.setVisibility(View.GONE);
+ }
+ }
+ public void onRetrieveProgress(RetrieveTransactionsTask.Progress progress) {
+ ProgressBar progressBar = findViewById(R.id.transaction_list_progress_bar);
+
+ if (progress.getState() == RetrieveTransactionsTask.ProgressState.FINISHED) {
+ Logger.debug("progress", "Done");
+ 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;
+ }
- if (error == null) {
updateLastUpdateTextFromDB();
new RefreshDescriptionsTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
TransactionListViewModel.scheduleTransactionListReload();
+
+ return;
}
- else
- Snackbar.make(mViewPager, error, Snackbar.LENGTH_LONG)
- .show();
- }
- public void onRetrieveStart() {
- ProgressBar progressBar = findViewById(R.id.transaction_list_progress_bar);
+
+
bTransactionListCancelDownload.setEnabled(true);
- ColorStateList csl = Colors.getColorStateList();
- progressBar.setIndeterminateTintList(csl);
- progressBar.setProgressTintList(csl);
- progressBar.setIndeterminate(true);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
- progressBar.setProgress(0, false);
- else
- progressBar.setProgress(0);
+// 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);
- }
- 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.isIndeterminate() || (progress.getTotal() <= 0)) {
progressBar.setIndeterminate(true);
+ Logger.debug("progress", "indeterminate");
}
else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
progressBar.setMin(0);
}
+ Logger.debug("progress",
+ String.format(Locale.US, "%d/%d", progress.getProgress(), progress.getTotal()));
progressBar.setMax(progress.getTotal());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
progressBar.setProgress(progress.getProgress(), true);