import java.util.List;
import java.util.Locale;
-import static net.ktnx.mobileledger.utils.Logger.debug;
-
/*
* TODO: reports
* */
}
@Override
protected void onCreate(Bundle savedInstanceState) {
- debug("MainActivity", "onCreate()/entry");
+ Logger.debug("MainActivity", "onCreate()/entry");
super.onCreate(savedInstanceState);
- debug("MainActivity", "onCreate()/after super");
+ Logger.debug("MainActivity", "onCreate()/after super");
setContentView(R.layout.activity_main);
fab = findViewById(R.id.btn_add_transaction);
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,
long now = new Date().getTime();
if ((lastUpdate == null) || (now > (lastUpdate.getTime() + (24 * 3600 * 1000)))) {
if (lastUpdate == null)
- debug("db::", "WEB data never fetched. scheduling a fetch");
+ Logger.debug("db::", "WEB data never fetched. scheduling a fetch");
else
- debug("db", String.format(Locale.ENGLISH,
+ Logger.debug("db", String.format(Locale.ENGLISH,
"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;
findViewById(R.id.nav_profile_list).setMinimumHeight(
(int) (getResources().getDimension(R.dimen.thumb_row_height) * newList.size()));
- debug("profiles", "profile list changed");
+ Logger.debug("profiles", "profile list changed");
mProfileListAdapter.notifyDataSetChanged();
createShortcuts(newList);
int newProfileTheme = haveProfile ? profile.getThemeHue() : -1;
if (newProfileTheme != Colors.profileThemeId) {
- debug("profiles",
+ Logger.debug("profiles",
String.format(Locale.ENGLISH, "profile theme %d → %d", Colors.profileThemeId,
newProfileTheme));
Colors.profileThemeId = newProfileTheme;
mProfileListAdapter.notifyDataSetChanged();
Data.transactions.clear();
- debug("transactions", "requesting list reload");
+ Logger.debug("transactions", "requesting list reload");
TransactionListViewModel.scheduleTransactionListReload();
if (haveProfile) {
TextView v = findViewById(R.id.transactions_last_update);
if (newValue == null) {
l.setVisibility(View.INVISIBLE);
- debug("main", "no last update date :(");
+ Logger.debug("main", "no last update date :(");
}
else {
final String text = DateFormat.getDateTimeInstance()
.format(newValue);
v.setText(text);
l.setVisibility(View.VISIBLE);
- debug("main", String.format("Date formatted: %s", text));
+ Logger.debug("main", String.format("Date formatted: %s", text));
}
scheduleDataRetrievalIfStale(newValue);
mBackMeansToAccountList = false;
}
else {
- debug("fragments", String.format(Locale.ENGLISH, "manager stack: %d",
+ Logger.debug("fragments", String.format(Locale.ENGLISH, "manager stack: %d",
getSupportFragmentManager().getBackStackEntryCount()));
super.onBackPressed();
long last_update = profile.getLongOption(MLDB.OPT_LAST_SCRAPE, 0L);
- debug("transactions", String.format(Locale.ENGLISH, "Last update = %d", last_update));
+ Logger.debug("transactions", String.format(Locale.ENGLISH, "Last update = %d", last_update));
if (last_update == 0) {
Data.lastUpdateDate.postValue(null);
}
}
}
public void onStopTransactionRefreshClick(View view) {
- debug("interactive", "Cancelling transactions refresh");
+ Logger.debug("interactive", "Cancelling transactions refresh");
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();
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);
+ if (progressBar.isIndeterminate()) {
+ progressBar.setIndeterminate(false);
}
+ 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);
- }
+ // for some reason animation doesn't work - no progress is shown (stick at 0)
+ // on lineageOS 14.1 (Nougat, 7.1.2)
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
+ progressBar.setProgress(progress.getProgress(), false);
else
progressBar.setProgress(progress.getProgress());
- progressBar.setIndeterminate(false);
}
}
public void fabShouldShow() {
@NotNull
@Override
public Fragment getItem(int position) {
- debug("main", String.format(Locale.ENGLISH, "Switching to fragment %d", position));
+ Logger.debug("main", String.format(Locale.ENGLISH, "Switching to fragment %d", position));
switch (position) {
case 0:
// debug("flow", "Creating account summary fragment");