aboutsummaryrefslogtreecommitdiff
path: root/src/net/cbaines/suma/BusActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/cbaines/suma/BusActivity.java')
-rw-r--r--src/net/cbaines/suma/BusActivity.java64
1 files changed, 33 insertions, 31 deletions
diff --git a/src/net/cbaines/suma/BusActivity.java b/src/net/cbaines/suma/BusActivity.java
index eb512f8..a71cbd3 100644
--- a/src/net/cbaines/suma/BusActivity.java
+++ b/src/net/cbaines/suma/BusActivity.java
@@ -4,11 +4,8 @@ import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
-import net.cbaines.suma.BusSpecificStopView.GetTimetableStopTask;
-
import org.apache.http.client.ClientProtocolException;
import org.json.JSONException;
@@ -39,11 +36,16 @@ public class BusActivity extends OrmLiteBaseActivity<DatabaseHelper> implements
private TextView busIDTextView;
- private ProgressBar progBar;
private TextView busContentMessage;
private LinearLayout busActivityContentLayout;
+ /**
+ * The bus this activity is focused on
+ */
private Bus bus;
+ /**
+ * The bus stop this activity is working from
+ */
private BusStop busStop;
private Runnable refreshData;
@@ -63,8 +65,6 @@ public class BusActivity extends OrmLiteBaseActivity<DatabaseHelper> implements
private Handler handler;
- int num = 20;
-
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bus_activity);
@@ -105,7 +105,6 @@ public class BusActivity extends OrmLiteBaseActivity<DatabaseHelper> implements
busIDTextView = (TextView) findViewById(R.id.busActivityBusID);
- progBar = (ProgressBar) findViewById(R.id.busActivityLoadBar);
busContentMessage = (TextView) findViewById(R.id.busActivityMessage);
busActivityContentLayout = (LinearLayout) findViewById(R.id.busActivityContentLayout);
timetableView = (ListView) findViewById(R.id.busActivityTimes);
@@ -150,17 +149,21 @@ public class BusActivity extends OrmLiteBaseActivity<DatabaseHelper> implements
e.printStackTrace();
}
- busStops = new ArrayList<BusStop>(num);
+ busStops = new ArrayList<BusStop>();
busStops.add(busStop);
- for (int i = 0; i < num; i++) {
+ busStopsActive = new ArrayList<Boolean>();
+ busStopsActive.add(false);
+
+ for (int i = 0;; i++) {
BusStop nextStop = bus.route.moveInRoute(instance, busStops.get(i), bus.direction, 1);
- if (nextStop != null) {
- busStops.add(nextStop);
- } else {
- Log.e(TAG, "nextStop is null");
+ if (nextStop.equals(busStop) || (bus.destination != null && bus.destination.equals(nextStop))) {
+ break;
}
+
+ busStops.add(nextStop);
+ busStopsActive.add(false);
}
refreshData = new Runnable() {
@@ -207,17 +210,18 @@ public class BusActivity extends OrmLiteBaseActivity<DatabaseHelper> implements
if (timetable == null) {
Log.i(TAG, "No Previous timetable");
timetable = new Timetable();
- for (int i = 0; i < num; i++) {
+ for (int i = 0; i < busStops.size(); i++) {
timetable.add(new Stop(bus, busStops.get(i), null, null, false));
}
} else {
Log.i(TAG, "Displaying previous timetable");
- displayTimetable(timetable);
+
}
+ displayTimetable(timetable);
+ handler.post(refreshData);
} else {
Log.i(TAG, "Live Times Disabled");
- progBar.setVisibility(View.GONE);
busContentMessage.setText("Live bus times disabled");
busContentMessage.setVisibility(View.VISIBLE);
}
@@ -227,13 +231,12 @@ public class BusActivity extends OrmLiteBaseActivity<DatabaseHelper> implements
public void onPause() {
if (handler != null) { // BusTimes are enabled
handler.removeCallbacks(refreshData);
- if (timetableStopTasks != null) { // Could happen if the handler has not created the timetableTask yet
- for (GetTimetableStopTask task : timetableStopTasks.values()) {
- if (task != null) {
- task.cancel(true);
- }
+ for (GetTimetableStopTask task : tasks.values()) {
+ if (task != null) {
+ task.cancel(true);
}
}
+
Log.i(TAG, "Stoping refreshing timetable data");
}
@@ -257,9 +260,9 @@ public class BusActivity extends OrmLiteBaseActivity<DatabaseHelper> implements
try {
Log.i(TAG, "Fetching stop for busStop " + position);
- stop = DataManager.getStop(context, stop.bus, busStop);
+ stop = DataManager.getStop(instance, bus, busStop);
if (stop == null) {
- stop = new Stop(stop.bus, busStop, null, null, false);
+ stop = new Stop(bus, busStop, null, null, false);
}
Log.i(TAG, "Finished fetching stop for busStop " + position);
} catch (SQLException e) {
@@ -281,18 +284,17 @@ public class BusActivity extends OrmLiteBaseActivity<DatabaseHelper> implements
protected void onPostExecute(Stop stop) {
// Log.i(TAG, "Got timetable");
if (stop == null) {
+ Log.i(TAG, "Its null");
- // progBar.setVisibility(View.GONE);
- // busContentMessage.setText(errorMessage);
- // busContentMessage.setVisibility(View.VISIBLE);
+ busContentMessage.setText(errorMessage);
+ busContentMessage.setVisibility(View.VISIBLE);
} else {
- // progBar.setVisibility(View.GONE);
-
+ synchronized (timetable) {
+ timetable.set(position, stop);
+ displayTimetable(timetable);
+ }
}
}
- }
-
- void setStopUpdated(BusStop stop, boolean updated) {
}