mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01:00
fixed memory leak
This commit is contained in:
@@ -29,7 +29,7 @@ public class BriarRecyclerView extends FrameLayout {
|
|||||||
private TextView emptyView;
|
private TextView emptyView;
|
||||||
private ProgressBar progressBar;
|
private ProgressBar progressBar;
|
||||||
private RecyclerView.AdapterDataObserver emptyObserver;
|
private RecyclerView.AdapterDataObserver emptyObserver;
|
||||||
private Runnable refresher = null;
|
private Refresher refresher;
|
||||||
private boolean isScrollingToEnd = false;
|
private boolean isScrollingToEnd = false;
|
||||||
|
|
||||||
public BriarRecyclerView(Context context) {
|
public BriarRecyclerView(Context context) {
|
||||||
@@ -188,14 +188,8 @@ public class BriarRecyclerView extends FrameLayout {
|
|||||||
if (recyclerView == null || recyclerView.getAdapter() == null) {
|
if (recyclerView == null || recyclerView.getAdapter() == null) {
|
||||||
throw new IllegalStateException("Need to call setAdapter() first!");
|
throw new IllegalStateException("Need to call setAdapter() first!");
|
||||||
}
|
}
|
||||||
refresher = new Runnable() {
|
|
||||||
@Override
|
refresher = new Refresher(this);
|
||||||
public void run() {
|
|
||||||
LOG.info("Updating Content...");
|
|
||||||
recyclerView.getAdapter().notifyDataSetChanged();
|
|
||||||
postDelayed(refresher, DEFAULT_REFRESH_INTERVAL);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
LOG.info("Adding Handler Callback");
|
LOG.info("Adding Handler Callback");
|
||||||
postDelayed(refresher, DEFAULT_REFRESH_INTERVAL);
|
postDelayed(refresher, DEFAULT_REFRESH_INTERVAL);
|
||||||
}
|
}
|
||||||
@@ -203,8 +197,30 @@ public class BriarRecyclerView extends FrameLayout {
|
|||||||
public void stopPeriodicUpdate() {
|
public void stopPeriodicUpdate() {
|
||||||
if (refresher != null) {
|
if (refresher != null) {
|
||||||
LOG.info("Removing Handler Callback");
|
LOG.info("Removing Handler Callback");
|
||||||
|
refresher.setRecyclerView(null);
|
||||||
removeCallbacks(refresher);
|
removeCallbacks(refresher);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class Refresher implements Runnable {
|
||||||
|
|
||||||
|
private BriarRecyclerView rv;
|
||||||
|
|
||||||
|
Refresher(BriarRecyclerView rv) {
|
||||||
|
setRecyclerView(rv);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setRecyclerView(BriarRecyclerView rv) {
|
||||||
|
this.rv = rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if (rv != null) {
|
||||||
|
rv.getRecyclerView().getAdapter().notifyDataSetChanged();
|
||||||
|
rv.postDelayed(this, DEFAULT_REFRESH_INTERVAL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user