X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FMainActivity.java;h=91951306ea029ddb7cb1cd49fd212ac2c1e62a39;hb=60c444f557ab404619a765279f4089402140aef4;hp=25fb12a2faf4b59423e1913ecb4bc3855480661c;hpb=a60b600eb8cd74de9cb15d6c958cd94b43927d92;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java index 25fb12a2..91951306 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java @@ -174,6 +174,7 @@ public class MainActivity extends ProfileThemedActivity { 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, @@ -331,9 +332,12 @@ public class MainActivity extends ProfileThemedActivity { "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 list) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) return; @@ -570,23 +574,32 @@ public class MainActivity extends ProfileThemedActivity { Data.stopTransactionsRetrieval(); bTransactionListCancelDownload.setEnabled(false); } - 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); - findViewById(R.id.transaction_progress_layout).setVisibility(View.VISIBLE); + 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(); @@ -607,22 +620,25 @@ public class MainActivity extends ProfileThemedActivity { 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); +// 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)) { + 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);