aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <cbaines8@gmail.com>2012-01-29 23:46:01 +0000
committerChristopher Baines <cbaines8@gmail.com>2012-01-29 23:46:01 +0000
commite78d1fa40d32a97018e2831fd0592d6b6c1b3d7e (patch)
treee8cd9065c2dc756a7357ebb8ee49cb21fbe41287
parent75207a422e195ad26584d6a5d186dfd3e20f38f9 (diff)
downloadsouthamptonuniversitymap-e78d1fa40d32a97018e2831fd0592d6b6c1b3d7e.tar
southamptonuniversitymap-e78d1fa40d32a97018e2831fd0592d6b6c1b3d7e.tar.gz
Changed the icons, updated the database, and implemented more of the next/previous stop movement stuff, needs more work though.
-rw-r--r--assets/data.dbbin142336 -> 141312 bytes
-rw-r--r--assets/routes.csv8
-rw-r--r--gen/net/cbaines/suma/R.java39
-rw-r--r--res/drawable-hdpi/ic_menu_back.pngbin0 -> 927 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_forward.pngbin0 -> 927 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_info_details.pngbin0 -> 1776 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_more.pngbin0 -> 1920 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_mylocation.pngbin0 -> 1867 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_preferences.pngbin0 -> 1649 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_refresh.pngbin0 -> 1820 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_search.pngbin0 -> 1592 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_star.pngbin0 -> 1543 bytes
-rw-r--r--res/drawable-ldpi/ic_menu_back.pngbin0 -> 821 bytes
-rw-r--r--res/drawable-ldpi/ic_menu_forward.pngbin0 -> 859 bytes
-rw-r--r--res/drawable-ldpi/ic_menu_info_details.pngbin0 -> 1254 bytes
-rw-r--r--res/drawable-ldpi/ic_menu_more.pngbin0 -> 1591 bytes
-rw-r--r--res/drawable-ldpi/ic_menu_mylocation.pngbin0 -> 1216 bytes
-rw-r--r--res/drawable-ldpi/ic_menu_preferences.pngbin0 -> 1355 bytes
-rw-r--r--res/drawable-ldpi/ic_menu_refresh.pngbin0 -> 1450 bytes
-rw-r--r--res/drawable-ldpi/ic_menu_search.pngbin0 -> 1234 bytes
-rw-r--r--res/drawable-ldpi/ic_menu_star.pngbin0 -> 1614 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_back.pngbin0 -> 703 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_forward.pngbin0 -> 700 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_info_details.pngbin0 -> 1271 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_more.pngbin0 -> 1467 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_mylocation.pngbin0 -> 1399 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_preferences.pngbin0 -> 950 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_refresh.pngbin0 -> 1085 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_search.pngbin0 -> 1580 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_star.pngbin0 -> 1270 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_back.pngbin0 -> 1215 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_forward.pngbin0 -> 1229 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_info_details.pngbin0 -> 2544 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_more.pngbin0 -> 2621 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_mylocation.pngbin0 -> 2701 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_preferences.pngbin0 -> 2308 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_refresh.pngbin0 -> 2644 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_search.pngbin0 -> 2254 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_star.pngbin0 -> 2127 bytes
-rw-r--r--res/layout/view_child_row.xml8
-rw-r--r--res/menu/map_menu.xml12
-rw-r--r--res/menu/stop_menu.xml6
-rw-r--r--src/net/cbaines/suma/Bus.java8
-rw-r--r--src/net/cbaines/suma/BusRoute.java68
-rw-r--r--src/net/cbaines/suma/BusStopActivity.java76
-rw-r--r--src/net/cbaines/suma/DataManager.java36
-rw-r--r--src/net/cbaines/suma/DatabaseHelper.java13
-rw-r--r--src/net/cbaines/suma/Direction.java62
-rw-r--r--src/net/cbaines/suma/SouthamptonUniversityMapActivity.java2
-rw-r--r--src/net/cbaines/suma/Timetable.java3
50 files changed, 136 insertions, 205 deletions
diff --git a/assets/data.db b/assets/data.db
index afbda79..fde0849 100644
--- a/assets/data.db
+++ b/assets/data.db
Binary files differ
diff --git a/assets/routes.csv b/assets/routes.csv
index e16cf4b..4c48bb4 100644
--- a/assets/routes.csv
+++ b/assets/routes.csv
@@ -1,6 +1,6 @@
-"id","code","label"
-326,U1,"NOC - Parkway - Eastleigh"
+"id","code","label","forward direction","reverse direction"
+326,U1,"NOC - Parkway - Eastleigh",C,A
468,U1N,"Leisure World - City Centre -"
-329,U2,"Civic Centre - Highfield Campus"
-327,U6,"Dock Gate 4 - General Hospital"
+329,U2,"Civic Centre - Highfield Campus",C,B
+327,U6,"Dock Gate 4 - General Hospital",C,H
354,U9,"Townhill Park - General Hospital"
diff --git a/gen/net/cbaines/suma/R.java b/gen/net/cbaines/suma/R.java
index 9e6e829..4ebca4b 100644
--- a/gen/net/cbaines/suma/R.java
+++ b/gen/net/cbaines/suma/R.java
@@ -25,21 +25,30 @@ public final class R {
public static final int busstop=0x7f020002;
public static final int busstop_fav=0x7f020003;
public static final int empty=0x7f020004;
- public static final int u1_back=0x7f020005;
- public static final int u1_back_selected=0x7f020006;
- public static final int u1_radio_button=0x7f020007;
- public static final int u1n_back=0x7f020008;
- public static final int u1n_back_selected=0x7f020009;
- public static final int u1n_radio_button=0x7f02000a;
- public static final int u2_back=0x7f02000b;
- public static final int u2_back_selected=0x7f02000c;
- public static final int u2_radio_button=0x7f02000d;
- public static final int u6_back=0x7f02000e;
- public static final int u6_back_selected=0x7f02000f;
- public static final int u6_radio_button=0x7f020010;
- public static final int u9_back=0x7f020011;
- public static final int u9_back_selected=0x7f020012;
- public static final int u9_radio_button=0x7f020013;
+ public static final int ic_menu_back=0x7f020005;
+ public static final int ic_menu_forward=0x7f020006;
+ public static final int ic_menu_info_details=0x7f020007;
+ public static final int ic_menu_more=0x7f020008;
+ public static final int ic_menu_mylocation=0x7f020009;
+ public static final int ic_menu_preferences=0x7f02000a;
+ public static final int ic_menu_refresh=0x7f02000b;
+ public static final int ic_menu_search=0x7f02000c;
+ public static final int ic_menu_star=0x7f02000d;
+ public static final int u1_back=0x7f02000e;
+ public static final int u1_back_selected=0x7f02000f;
+ public static final int u1_radio_button=0x7f020010;
+ public static final int u1n_back=0x7f020011;
+ public static final int u1n_back_selected=0x7f020012;
+ public static final int u1n_radio_button=0x7f020013;
+ public static final int u2_back=0x7f020014;
+ public static final int u2_back_selected=0x7f020015;
+ public static final int u2_radio_button=0x7f020016;
+ public static final int u6_back=0x7f020017;
+ public static final int u6_back_selected=0x7f020018;
+ public static final int u6_radio_button=0x7f020019;
+ public static final int u9_back=0x7f02001a;
+ public static final int u9_back_selected=0x7f02001b;
+ public static final int u9_radio_button=0x7f02001c;
}
public static final class id {
public static final int busStopID=0x7f0a000c;
diff --git a/res/drawable-hdpi/ic_menu_back.png b/res/drawable-hdpi/ic_menu_back.png
new file mode 100644
index 0000000..02fc50f
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_back.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_forward.png b/res/drawable-hdpi/ic_menu_forward.png
new file mode 100644
index 0000000..4d9858d
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_forward.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_info_details.png b/res/drawable-hdpi/ic_menu_info_details.png
new file mode 100644
index 0000000..057d063
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_info_details.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_more.png b/res/drawable-hdpi/ic_menu_more.png
new file mode 100644
index 0000000..c2cefea
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_more.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_mylocation.png b/res/drawable-hdpi/ic_menu_mylocation.png
new file mode 100644
index 0000000..3e25c6b
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_mylocation.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_preferences.png b/res/drawable-hdpi/ic_menu_preferences.png
new file mode 100644
index 0000000..c60ed1b
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_preferences.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_refresh.png b/res/drawable-hdpi/ic_menu_refresh.png
new file mode 100644
index 0000000..9f30dc9
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_refresh.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_search.png b/res/drawable-hdpi/ic_menu_search.png
new file mode 100644
index 0000000..6bc3d42
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_search.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_star.png b/res/drawable-hdpi/ic_menu_star.png
new file mode 100644
index 0000000..c32be71
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_star.png
Binary files differ
diff --git a/res/drawable-ldpi/ic_menu_back.png b/res/drawable-ldpi/ic_menu_back.png
new file mode 100644
index 0000000..16b34e6
--- /dev/null
+++ b/res/drawable-ldpi/ic_menu_back.png
Binary files differ
diff --git a/res/drawable-ldpi/ic_menu_forward.png b/res/drawable-ldpi/ic_menu_forward.png
new file mode 100644
index 0000000..4ecde73
--- /dev/null
+++ b/res/drawable-ldpi/ic_menu_forward.png
Binary files differ
diff --git a/res/drawable-ldpi/ic_menu_info_details.png b/res/drawable-ldpi/ic_menu_info_details.png
new file mode 100644
index 0000000..ffbcb8c
--- /dev/null
+++ b/res/drawable-ldpi/ic_menu_info_details.png
Binary files differ
diff --git a/res/drawable-ldpi/ic_menu_more.png b/res/drawable-ldpi/ic_menu_more.png
new file mode 100644
index 0000000..ce4e993
--- /dev/null
+++ b/res/drawable-ldpi/ic_menu_more.png
Binary files differ
diff --git a/res/drawable-ldpi/ic_menu_mylocation.png b/res/drawable-ldpi/ic_menu_mylocation.png
new file mode 100644
index 0000000..b8d2c0d
--- /dev/null
+++ b/res/drawable-ldpi/ic_menu_mylocation.png
Binary files differ
diff --git a/res/drawable-ldpi/ic_menu_preferences.png b/res/drawable-ldpi/ic_menu_preferences.png
new file mode 100644
index 0000000..ea8a7a4
--- /dev/null
+++ b/res/drawable-ldpi/ic_menu_preferences.png
Binary files differ
diff --git a/res/drawable-ldpi/ic_menu_refresh.png b/res/drawable-ldpi/ic_menu_refresh.png
new file mode 100644
index 0000000..b0c712a
--- /dev/null
+++ b/res/drawable-ldpi/ic_menu_refresh.png
Binary files differ
diff --git a/res/drawable-ldpi/ic_menu_search.png b/res/drawable-ldpi/ic_menu_search.png
new file mode 100644
index 0000000..e9b2747
--- /dev/null
+++ b/res/drawable-ldpi/ic_menu_search.png
Binary files differ
diff --git a/res/drawable-ldpi/ic_menu_star.png b/res/drawable-ldpi/ic_menu_star.png
new file mode 100644
index 0000000..791defa
--- /dev/null
+++ b/res/drawable-ldpi/ic_menu_star.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_back.png b/res/drawable-mdpi/ic_menu_back.png
new file mode 100644
index 0000000..4bf8350
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_back.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_forward.png b/res/drawable-mdpi/ic_menu_forward.png
new file mode 100644
index 0000000..1c29c84
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_forward.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_info_details.png b/res/drawable-mdpi/ic_menu_info_details.png
new file mode 100644
index 0000000..0a8346b
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_info_details.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_more.png b/res/drawable-mdpi/ic_menu_more.png
new file mode 100644
index 0000000..7eb2e17
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_more.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_mylocation.png b/res/drawable-mdpi/ic_menu_mylocation.png
new file mode 100644
index 0000000..ffc7a7e
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_mylocation.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_preferences.png b/res/drawable-mdpi/ic_menu_preferences.png
new file mode 100644
index 0000000..f699447
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_preferences.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_refresh.png b/res/drawable-mdpi/ic_menu_refresh.png
new file mode 100644
index 0000000..1d4b46a
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_refresh.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_search.png b/res/drawable-mdpi/ic_menu_search.png
new file mode 100644
index 0000000..05017ca
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_search.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_star.png b/res/drawable-mdpi/ic_menu_star.png
new file mode 100644
index 0000000..859a1cc
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_star.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_back.png b/res/drawable-xhdpi/ic_menu_back.png
new file mode 100644
index 0000000..9af91de
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_back.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_forward.png b/res/drawable-xhdpi/ic_menu_forward.png
new file mode 100644
index 0000000..af91864
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_forward.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_info_details.png b/res/drawable-xhdpi/ic_menu_info_details.png
new file mode 100644
index 0000000..c8a055d
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_info_details.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_more.png b/res/drawable-xhdpi/ic_menu_more.png
new file mode 100644
index 0000000..0833476
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_more.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_mylocation.png b/res/drawable-xhdpi/ic_menu_mylocation.png
new file mode 100644
index 0000000..e27621e
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_mylocation.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_preferences.png b/res/drawable-xhdpi/ic_menu_preferences.png
new file mode 100644
index 0000000..156317a
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_preferences.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_refresh.png b/res/drawable-xhdpi/ic_menu_refresh.png
new file mode 100644
index 0000000..844cdaf
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_refresh.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_search.png b/res/drawable-xhdpi/ic_menu_search.png
new file mode 100644
index 0000000..f78d5ef
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_search.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_star.png b/res/drawable-xhdpi/ic_menu_star.png
new file mode 100644
index 0000000..811721f
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_star.png
Binary files differ
diff --git a/res/layout/view_child_row.xml b/res/layout/view_child_row.xml
index 081a600..687cbee 100644
--- a/res/layout/view_child_row.xml
+++ b/res/layout/view_child_row.xml
@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:gravity="right"
android:orientation="horizontal"
android:paddingRight="10dp" >
<TextView
android:id="@+id/childname"
- android:layout_width="wrap_content"
+ android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:paddingLeft="50dp"
@@ -15,8 +16,9 @@
<CheckBox
android:id="@+id/check1"
- android:layout_width="fill_parent"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_gravity="right"
android:focusable="false"
android:gravity="right" />
diff --git a/res/menu/map_menu.xml b/res/menu/map_menu.xml
index 2734461..7f56e8a 100644
--- a/res/menu/map_menu.xml
+++ b/res/menu/map_menu.xml
@@ -3,27 +3,27 @@
<item
android:id="@+id/menu_find"
- android:icon="@android:drawable/ic_menu_search"
+ android:icon="@drawable/ic_menu_search"
android:title="@string/menu_find"/>
<item
android:id="@+id/menu_preferences"
- android:icon="@android:drawable/ic_menu_preferences"
+ android:icon="@drawable/ic_menu_preferences"
android:title="@string/menu_preferences"/>
<item
android:id="@+id/menu_find_my_location"
- android:icon="@android:drawable/ic_menu_mylocation"
+ android:icon="@drawable/ic_menu_mylocation"
android:title="@string/menu_find_my_location"/>
<item
android:id="@+id/menu_view"
- android:icon="@android:drawable/ic_menu_more"
+ android:icon="@drawable/ic_menu_more"
android:title="@string/menu_view"/>
<item
android:id="@+id/menu_about"
- android:icon="@android:drawable/ic_menu_info_details"
+ android:icon="@drawable/ic_menu_info_details"
android:title="@string/menu_about"/>
<item
android:id="@+id/menu_favourites"
- android:icon="@android:drawable/star_off"
+ android:icon="@drawable/ic_menu_star"
android:title="@string/menu_favourites"/>
</menu> \ No newline at end of file
diff --git a/res/menu/stop_menu.xml b/res/menu/stop_menu.xml
index 3b1bb40..071a689 100644
--- a/res/menu/stop_menu.xml
+++ b/res/menu/stop_menu.xml
@@ -3,15 +3,15 @@
<item
android:id="@+id/menu_previous_stop"
- android:icon="@android:drawable/ic_menu_search"
+ android:icon="@drawable/ic_menu_back"
android:title="@string/menu_previous_stop"/>
<item
android:id="@+id/menu_refresh_stop"
- android:icon="@android:drawable/ic_menu_search"
+ android:icon="@drawable/ic_menu_search"
android:title="@string/menu_refresh_stop"/>
<item
android:id="@+id/menu_next_stop"
- android:icon="@android:drawable/ic_menu_search"
+ android:icon="@drawable/ic_menu_forward"
android:title="@string/menu_next_stop"/>
</menu> \ No newline at end of file
diff --git a/src/net/cbaines/suma/Bus.java b/src/net/cbaines/suma/Bus.java
index 533c43c..d8d96f3 100644
--- a/src/net/cbaines/suma/Bus.java
+++ b/src/net/cbaines/suma/Bus.java
@@ -53,8 +53,8 @@ public class Bus {
/**
* The direction which the bus is travelling.
*/
- @DatabaseField(canBeNull = true, foreign = true)
- Direction direction;
+ @DatabaseField(canBeNull = false)
+ String direction;
/**
* The destination the bus is travelling towards.
@@ -75,10 +75,10 @@ public class Bus {
* @param dir
* The direction which the bus is travelling.
*/
- Bus(String id, BusRoute route, Direction dir) {
+ Bus(String id, BusRoute route, String direction) {
this.id = id;
this.route = route;
- this.direction = dir;
+ this.direction = direction;
}
/**
diff --git a/src/net/cbaines/suma/BusRoute.java b/src/net/cbaines/suma/BusRoute.java
index 11ff798..e3acddf 100644
--- a/src/net/cbaines/suma/BusRoute.java
+++ b/src/net/cbaines/suma/BusRoute.java
@@ -20,7 +20,6 @@
package net.cbaines.suma;
import java.sql.SQLException;
-import java.util.Collection;
import java.util.List;
import android.content.Context;
@@ -29,7 +28,6 @@ import android.util.Log;
import com.j256.ormlite.android.apptools.OpenHelperManager;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.field.DatabaseField;
-import com.j256.ormlite.field.ForeignCollectionField;
import com.j256.ormlite.stmt.PreparedQuery;
import com.j256.ormlite.stmt.QueryBuilder;
import com.j256.ormlite.table.DatabaseTable;
@@ -56,19 +54,28 @@ public class BusRoute {
@DatabaseField
public String code;
- @DatabaseField
+ @DatabaseField(canBeNull = false)
String label;
- @ForeignCollectionField(eager = false)
- Collection<Direction> directions;
+ @DatabaseField(canBeNull = true)
+ String forwardDirection;
+
+ @DatabaseField(canBeNull = true)
+ String reverseDirection;
BusRoute() {
}
- public BusRoute(Integer id, String code, String label) {
+ public BusRoute(Integer id, String code, String label, String forwardDirection, String reverseDirection) {
this.id = id.intValue();
this.code = code;
this.label = label;
+ this.forwardDirection = forwardDirection;
+ this.reverseDirection = reverseDirection;
+ }
+
+ public BusRoute(Integer id, String code, String label) {
+ this(id, code, label, null, null);
}
public String toString() {
@@ -82,7 +89,7 @@ public class BusRoute {
* @param stop
* @return
*/
- BusStop getBusStopBefore(Context context, BusStop stop, Direction dir) {
+ BusStop getBusStopBefore(Context context, BusStop stop, String dir) {
return moveInRoute(context, stop, dir, -1);
}
@@ -93,7 +100,7 @@ public class BusRoute {
* @param stop
* @return
*/
- BusStop getStopAfter(Context context, BusStop stop, Direction dir) {
+ BusStop getStopAfter(Context context, BusStop stop, String dir) {
return moveInRoute(context, stop, dir, 1);
}
@@ -105,9 +112,31 @@ public class BusRoute {
* @param moveAmount
* @return
*/
- BusStop moveInRoute(Context context, BusStop stop, Direction dir, int moveAmount) {
+ BusStop moveInRoute(Context context, BusStop stop, String direction, int moveAmount) {
+ if (moveAmount == 0) {
+ return stop;
+ }
+
DatabaseHelper helper = OpenHelperManager.getHelper(context, DatabaseHelper.class);
+ if (forwardDirection != null) {
+
+ if (direction == null) {
+ return null;
+ }
+
+ if (forwardDirection.equals(direction)) {
+
+ } else if (reverseDirection.equals(direction)) {
+ moveAmount = -moveAmount;
+ } else {
+ Log.e("BusRoute", "Direction (" + direction + ") doesnt match either the forward direction (" + forwardDirection + ") or reverse direction ("
+ + reverseDirection + ")");
+ return null;
+ }
+
+ }
+
try {
Dao<RouteStops, Integer> routeStopsDao = helper.getRouteStopsDao();
Dao<BusStop, String> busStopDao = helper.getBusStopDao();
@@ -117,19 +146,22 @@ public class BusRoute {
PreparedQuery<RouteStops> routeStopsPreparedQuery = routeStopsQueryBuilder.prepare();
List<RouteStops> routeStopsFound = routeStopsDao.query(routeStopsPreparedQuery);
+ Log.v("BusRoute", "Found " + routeStopsFound.size() + " stops");
if (moveAmount > 0) {
- for (int i = 0; i < routeStopsFound.size(); i++) {
- if (stop.equals(routeStopsFound.get(i))) {
- int stopWanted = (i + moveAmount) % (routeStopsFound.size() + 1);
- busStopDao.refresh(routeStopsFound.get(stopWanted).stop);
+ Log.v("BusRoute", "Moving forward in direction " + direction + " " + moveAmount + " stops");
- return routeStopsFound.get(stopWanted).stop;
- }
- }
+ int stopWanted = (routeStopsFound.indexOf(stop) + moveAmount) % (routeStopsFound.size() + 1);
+ busStopDao.refresh(routeStopsFound.get(stopWanted).stop);
+
+ return routeStopsFound.get(stopWanted).stop;
} else {
- int maxSeq = routeStopsFound.size() - 1;
- int stopWanted = maxSeq - (Math.abs(maxSeq) % (routeStopsFound.size() + 1));
+ Log.v("BusRoute", "Moving backwards in direction " + direction + " " + moveAmount + " stops");
+
+ int stopWanted = routeStopsFound.indexOf(stop) + moveAmount;
+ if (stopWanted < 0) {
+ stopWanted = routeStopsFound.size() - (Math.abs(stopWanted) % routeStopsFound.size());
+ }
busStopDao.refresh(routeStopsFound.get(stopWanted).stop);
return routeStopsFound.get(stopWanted).stop;
diff --git a/src/net/cbaines/suma/BusStopActivity.java b/src/net/cbaines/suma/BusStopActivity.java
index 97492ec..699ec2d 100644
--- a/src/net/cbaines/suma/BusStopActivity.java
+++ b/src/net/cbaines/suma/BusStopActivity.java
@@ -209,6 +209,9 @@ public class BusStopActivity extends OrmLiteBaseActivity<DatabaseHelper> impleme
} else {
Log.i(TAG, "Displaying previous timetable");
displayTimetable(timetable);
+ if (System.currentTimeMillis() - timetable.fetchTime.getTime() > 20000) {
+ mHandler.post(refreshData);
+ }
}
} else {
@@ -304,9 +307,8 @@ public class BusStopActivity extends OrmLiteBaseActivity<DatabaseHelper> impleme
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
- switch (item.getItemId()) {
- case R.id.menu_previous_stop:
- Log.v(TAG, "Got a request for the previous stop");
+ if (item.getItemId() == R.id.menu_previous_stop || item.getItemId() == R.id.menu_next_stop) {
+ Log.v(TAG, "Got a request for the stop movement");
if (visibleTimetable.size() != 0) {
HashSet<BusRoute> routes = new HashSet<BusRoute>();
@@ -317,7 +319,7 @@ public class BusStopActivity extends OrmLiteBaseActivity<DatabaseHelper> impleme
Log.v(TAG, routes.size() + " routes in the visible timetable");
if (routes.size() == 1) {
- HashSet<Direction> directions = new HashSet<Direction>();
+ HashSet<String> directions = new HashSet<String>();
for (Stop stop : visibleTimetable) {
directions.add(stop.bus.direction);
@@ -325,55 +327,22 @@ public class BusStopActivity extends OrmLiteBaseActivity<DatabaseHelper> impleme
Log.v(TAG, directions.size() + " directions in the visible timetable");
- if (directions.size() == 1) {
+ if (directions.size() <= 1) {
try {
- BusStop previous = routes.iterator().next()
- .moveInRoute(this, getHelper().getBusStopDao().queryForId(busStopID), directions.iterator().next(), 1);
- Intent i = new Intent(this, BusStopActivity.class);
- i.putExtra("busStopID", previous.id);
- i.putExtra("busStopName", previous.description);
- startActivity(i);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- } else {
- // Show dialog
- }
- } else {
- // Show dialog
- }
- }
- break;
- case R.id.menu_next_stop:
- Log.v(TAG, "Got a request for the next stop");
- if (visibleTimetable.size() != 0) {
- HashSet<BusRoute> routes = new HashSet<BusRoute>();
-
- for (Stop stop : visibleTimetable) {
- routes.add(stop.bus.route);
- }
-
- Log.v(TAG, routes.size() + " routes in the visible timetable");
-
- if (routes.size() == 1) {
- HashSet<Direction> directions = new HashSet<Direction>();
-
- for (Stop stop : visibleTimetable) {
- directions.add(stop.bus.direction);
- }
-
- Log.v(TAG, directions.size() + " directions in the visible timetable");
-
- if (directions.size() == 1) {
- try {
- BusStop next = routes.iterator().next()
- .moveInRoute(this, getHelper().getBusStopDao().queryForId(busStopID), directions.iterator().next(), 1);
+ BusStop stop;
+ if (item.getItemId() == R.id.menu_next_stop) {
+ stop = routes.iterator().next()
+ .moveInRoute(this, getHelper().getBusStopDao().queryForId(busStopID), directions.iterator().next(), 1);
+ } else {
+ stop = routes.iterator().next()
+ .moveInRoute(this, getHelper().getBusStopDao().queryForId(busStopID), directions.iterator().next(), -1);
+ }
Intent i = new Intent(this, BusStopActivity.class);
- if (next.id == null) {
+ if (stop.id == null) {
Log.e(TAG, "next.id == null");
}
- i.putExtra("busStopID", next.id);
- i.putExtra("busStopName", next.description);
+ i.putExtra("busStopID", stop.id);
+ i.putExtra("busStopName", stop.description);
startActivity(i);
} catch (SQLException e) {
e.printStackTrace();
@@ -382,11 +351,13 @@ public class BusStopActivity extends OrmLiteBaseActivity<DatabaseHelper> impleme
// Show dialog
}
} else {
+ // if (all routes point to the same (next/previous) stop) {
+ // move to that stop
+ // else
// Show dialog
}
}
- break;
- case R.id.menu_refresh_stop:
+ } else if (item.getItemId() == R.id.menu_refresh_stop) {
if (mHandler != null) { // BusTimes are enabled
mHandler.removeCallbacks(refreshData);
timetableTask.cancel(true);
@@ -396,8 +367,7 @@ public class BusStopActivity extends OrmLiteBaseActivity<DatabaseHelper> impleme
} else {
// TODO: Toast here...
}
- break;
- default:
+ } else {
Log.e(TAG, "No known menu option selected");
return super.onOptionsItemSelected(item);
}
diff --git a/src/net/cbaines/suma/DataManager.java b/src/net/cbaines/suma/DataManager.java
index b82d31f..bc82b59 100644
--- a/src/net/cbaines/suma/DataManager.java
+++ b/src/net/cbaines/suma/DataManager.java
@@ -65,13 +65,10 @@ public class DataManager {
final static String busStopUrl = "http://data.southampton.ac.uk/bus-stop/";
- private static Context context;
-
private static DatabaseHelper helper;
private static Dao<BusRoute, Integer> busRoutes;
private static Dao<Bus, Integer> busDao;
private static Dao<BusStop, String> busStopDao;
- private static Dao<Stop, Integer> stopDao;
public static void loadBuildings(Context context) throws SQLException, IOException {
DatabaseHelper helper = OpenHelperManager.getHelper(context, DatabaseHelper.class);
@@ -82,7 +79,6 @@ public class DataManager {
Log.i(TAG, "Loading buildings from csv");
HashMap<String, GeoPoint> buildingPoints = new HashMap<String, GeoPoint>();
- HashMap<String, Polygon> buildingPolys = new HashMap<String, Polygon>();
InputStream inputStream = context.getAssets().open("buildings_points.csv");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
@@ -205,12 +201,10 @@ public class DataManager {
Dao<BusStop, String> busStopDao = helper.getBusStopDao();
Dao<BusRoute, Integer> busRouteDao = helper.getBusRouteDao();
Dao<RouteStops, Integer> routeStopsDao = helper.getRouteStopsDao();
- Dao<Direction, Integer> directionDao = helper.getDirectionDao();
TableUtils.clearTable(helper.getConnectionSource(), BusStop.class);
TableUtils.clearTable(helper.getConnectionSource(), BusRoute.class);
TableUtils.clearTable(helper.getConnectionSource(), RouteStops.class);
- TableUtils.clearTable(helper.getConnectionSource(), Direction.class);
Log.i(TAG, "Loading busstops from csv");
@@ -260,7 +254,12 @@ public class DataManager {
// Log.i(TAG, "Data: " + strLine);
String[] dataBits = strLine.split(",");
- BusRoute route = new BusRoute(Integer.parseInt(dataBits[0]), dataBits[1], dataBits[2].replace("\"", ""));
+ BusRoute route;
+ if (dataBits.length > 3) {
+ route = new BusRoute(Integer.parseInt(dataBits[0]), dataBits[1], dataBits[2].replace("\"", ""), dataBits[3], dataBits[4]);
+ } else {
+ route = new BusRoute(Integer.parseInt(dataBits[0]), dataBits[1], dataBits[2].replace("\"", ""));
+ }
// Log.i(TAG, "Loaded route " + route.id + " " + route.code + " " + route.label);
busRouteDao.create(route);
@@ -273,14 +272,6 @@ public class DataManager {
e.printStackTrace();
}
- directionDao.create(new Direction("A", busRouteDao.queryForId(326)));
- directionDao.create(new Direction("C", busRouteDao.queryForId(326)));
- directionDao.create(new Direction("E", busRouteDao.queryForId(326)));
- directionDao.create(new Direction("B", busRouteDao.queryForId(329)));
- directionDao.create(new Direction("C", busRouteDao.queryForId(329)));
- directionDao.create(new Direction("C", busRouteDao.queryForId(327)));
- directionDao.create(new Direction("H", busRouteDao.queryForId(327)));
-
Log.i(TAG, "Finished loading routes, now loading routestops");
inputStream = context.getAssets().open("routestops.csv");
@@ -457,7 +448,7 @@ public class DataManager {
String name = stopObj.getString("name");
BusRoute route;
- Direction dir = null;
+ String dir = null;
if (name.equals("U1N")) {
route = busRoutes.queryForId(468);
@@ -475,13 +466,11 @@ public class DataManager {
return null;
}
- for (Direction possibleDir : route.directions) {
- if (name.charAt(2) == possibleDir.direction.charAt(0)) {
- dir = possibleDir;
- break;
- }
- }
- if (dir.direction.length() == 0) {
+ if (route.forwardDirection.equals(name.substring(2))) {
+ dir = route.forwardDirection;
+ } else if (route.reverseDirection.equals(name.substring(2))) {
+ dir = route.reverseDirection;
+ } else {
Log.e(TAG, "Error detecting direction for " + name);
return null;
}
@@ -607,6 +596,7 @@ public class DataManager {
return null;
}
+ timetable.fetchTime = new Date(System.currentTimeMillis());
return timetable;
}
diff --git a/src/net/cbaines/suma/DatabaseHelper.java b/src/net/cbaines/suma/DatabaseHelper.java
index d5790a3..37ed06e 100644
--- a/src/net/cbaines/suma/DatabaseHelper.java
+++ b/src/net/cbaines/suma/DatabaseHelper.java
@@ -51,7 +51,6 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
private Dao<RouteStops, Integer> routeStopsDao = null;
private Dao<Site, String> siteDao = null;
private Dao<Bus, Integer> busDao = null;
- private Dao<Direction, Integer> directionDao = null;
private Context context;
@@ -71,7 +70,6 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.createTable(connectionSource, RouteStops.class);
TableUtils.createTable(connectionSource, Site.class);
TableUtils.createTable(connectionSource, Bus.class);
- TableUtils.createTable(connectionSource, Direction.class);
} catch (SQLException e) {
Log.e(DatabaseHelper.class.getName(), "Can't create database", e);
throw new RuntimeException(e);
@@ -143,16 +141,6 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
/**
* Returns the Database Access Object (DAO) for our SimpleData class. It will create it or just give the cached value.
*/
- public Dao<Direction, Integer> getDirectionDao() throws SQLException {
- if (directionDao == null) {
- directionDao = getDao(Direction.class);
- }
- return directionDao;
- }
-
- /**
- * Returns the Database Access Object (DAO) for our SimpleData class. It will create it or just give the cached value.
- */
public Dao<Bus, Integer> getBusDao() throws SQLException {
if (busDao == null) {
busDao = getDao(Bus.class);
@@ -267,6 +255,5 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
routeStopsDao = null;
siteDao = null;
busDao = null;
- directionDao = null;
}
} \ No newline at end of file
diff --git a/src/net/cbaines/suma/Direction.java b/src/net/cbaines/suma/Direction.java
deleted file mode 100644
index 0bc3396..0000000
--- a/src/net/cbaines/suma/Direction.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package net.cbaines.suma;
-
-import com.j256.ormlite.field.DatabaseField;
-import com.j256.ormlite.table.DatabaseTable;
-
-@DatabaseTable(tableName = "directions")
-public class Direction {
-
- public final static String ROUTE_ID_FIELD_NAME = "route_id";
-
- @DatabaseField(generatedId = true)
- int id;
-
- @DatabaseField(canBeNull = false)
- String direction;
-
- @DatabaseField(foreign = true, columnName = ROUTE_ID_FIELD_NAME)
- BusRoute route;
-
- Direction() {
- }
-
- Direction(String dir, BusRoute route) {
- this.direction = dir;
- this.route = route;
- }
-
- public String toString() {
- return direction;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((direction == null) ? 0 : direction.hashCode());
- result = prime * result + ((route == null) ? 0 : route.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Direction other = (Direction) obj;
- if (direction == null) {
- if (other.direction != null)
- return false;
- } else if (!direction.equals(other.direction))
- return false;
- if (route == null) {
- if (other.route != null)
- return false;
- } else if (!route.equals(other.route))
- return false;
- return true;
- }
-}
diff --git a/src/net/cbaines/suma/SouthamptonUniversityMapActivity.java b/src/net/cbaines/suma/SouthamptonUniversityMapActivity.java
index 5e8caa8..d4f7f2b 100644
--- a/src/net/cbaines/suma/SouthamptonUniversityMapActivity.java
+++ b/src/net/cbaines/suma/SouthamptonUniversityMapActivity.java
@@ -75,7 +75,7 @@ import com.j256.ormlite.dao.Dao;
public class SouthamptonUniversityMapActivity extends OrmLiteBaseActivity<DatabaseHelper> implements MapViewConstants, Runnable, RouteColorConstants,
OnChildClickListener, OnItemClickListener, OnItemLongClickListener, OnSharedPreferenceChangeListener {
- private boolean useBundledDatabase = false;
+ private boolean useBundledDatabase = true;
private MapView mapView;
private MapController mapController;
diff --git a/src/net/cbaines/suma/Timetable.java b/src/net/cbaines/suma/Timetable.java
index 758c95f..6e3db1e 100644
--- a/src/net/cbaines/suma/Timetable.java
+++ b/src/net/cbaines/suma/Timetable.java
@@ -20,6 +20,7 @@
package net.cbaines.suma;
import java.util.ArrayList;
+import java.util.Date;
public class Timetable extends ArrayList<Stop> {
@@ -27,6 +28,8 @@ public class Timetable extends ArrayList<Stop> {
*
*/
private static final long serialVersionUID = -9021303378059511643L;
+
+ Date fetchTime;
public String toString() {
StringBuilder sb = new StringBuilder();