diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java index c2bc113d..ceb69c82 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java @@ -38,6 +38,7 @@ public class EntryAdapter extends RecyclerView.Adapter implements I private ViewMode _viewMode; private String _searchFilter; private boolean _isPeriodUniform = true; + private int _uniformPeriod = -1; private Handler _dimHandler; // keeps track of the viewholders that are currently bound @@ -380,17 +381,19 @@ public class EntryAdapter extends RecyclerView.Adapter implements I } private void checkPeriodUniformity(boolean force) { + int uniformPeriod = getUniformPeriod(); boolean uniform = isPeriodUniform(); - if (!force && uniform == _isPeriodUniform) { + if (!force && uniform == _isPeriodUniform && uniformPeriod == _uniformPeriod) { return; } _isPeriodUniform = uniform; + _uniformPeriod = uniformPeriod; for (EntryHolder holder : _holders) { holder.setShowProgress(!_isPeriodUniform); } - _view.onPeriodUniformityChanged(_isPeriodUniform); + _view.onPeriodUniformityChanged(_isPeriodUniform, _uniformPeriod); } public int getUniformPeriod() { @@ -478,7 +481,11 @@ public class EntryAdapter extends RecyclerView.Adapter implements I } public boolean isPeriodUniform() { - return getUniformPeriod() != -1; + return isPeriodUniform(getUniformPeriod()); + } + + private static boolean isPeriodUniform(int period) { + return period != -1; } @Override @@ -492,7 +499,7 @@ public class EntryAdapter extends RecyclerView.Adapter implements I void onEntryMove(VaultEntry entry1, VaultEntry entry2); void onEntryDrop(VaultEntry entry); void onEntryChange(VaultEntry entry); - void onPeriodUniformityChanged(boolean uniform); + void onPeriodUniformityChanged(boolean uniform, int period); void onSelect(VaultEntry entry); void onDeselect(VaultEntry entry); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java index f0e15922..ec276b19 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java @@ -58,7 +58,7 @@ public class EntryHolder extends RecyclerView.ViewHolder { _refresher = new UiRefresher(new UiRefresher.Listener() { @Override public void onRefresh() { - if (_hidden) { + if (!_hidden) { refreshCode(); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java index c174811b..5b401193 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java @@ -205,11 +205,12 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { public void onDeselect(VaultEntry entry) { _listener.onDeselect(entry); } @Override - public void onPeriodUniformityChanged(boolean isUniform) { + public void onPeriodUniformityChanged(boolean isUniform, int period) { setShowProgress(isUniform); if (_showProgress) { + _refresher.stop(); _progressBar.setVisibility(View.VISIBLE); - _progressBar.setPeriod(_adapter.getUniformPeriod()); + _progressBar.setPeriod(period); _refresher.start(); } else { _progressBar.setVisibility(View.GONE);