From c7500dfbf5a6d3903c92b34270f9eb68fb455a72 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C3=85=C2=82=20Rzepecki?= Date: Fri, 24 Jul 2009 13:35:03 +0200 Subject: [PATCH] One query at a time. (Solves abysmal responsiveness on the dashboard.) --- src/pl/blip/divide/bliper/DashboardView.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/pl/blip/divide/bliper/DashboardView.java b/src/pl/blip/divide/bliper/DashboardView.java index 676baf5..e159f4c 100644 --- a/src/pl/blip/divide/bliper/DashboardView.java +++ b/src/pl/blip/divide/bliper/DashboardView.java @@ -65,6 +65,7 @@ public class DashboardView extends ListView { private final Uri uri = Blip.DASHBOARD_URI; private LinkedList cursors = new LinkedList(); private Integer last_id = null; + private boolean queryRunning = false; private class QueryHandler extends AsyncQueryHandler { public QueryHandler() { @@ -72,6 +73,10 @@ public class DashboardView extends ListView { } public void startQuery() { + if (queryRunning) + return; + else + queryRunning = true; Uri queryUri = last_id == null ? uri : Uri.withAppendedPath(uri, "since/" + last_id.toString()); startQuery((last_id == null ? 0 : last_id), null, queryUri, PROJECTION, null, null, null); } @@ -86,6 +91,7 @@ public class DashboardView extends ListView { Cursor cursorArray[] = cursors.toArray(new Cursor[0]); changeCursor(new MergeCursor(cursorArray)); } + queryRunning = false; } } @@ -148,7 +154,7 @@ public class DashboardView extends ListView { private void scheduleRequerying() { executor = Executors.newSingleThreadScheduledExecutor(); - executor.scheduleWithFixedDelay(new Runnable() { + executor.scheduleAtFixedRate(new Runnable() { @Override public void run() { queryHandler.startQuery(); -- 2.11.4.GIT