From 0b5aefbe0ff01638dd264222c5368ad02a0fe1ee Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 28 Feb 2012 19:09:23 +0000 Subject: Fixed two bugs relating to the query on the database not being ordered?, and implemented a new preference option. --- AndroidManifest.xml | 4 +- gen/net/cbaines/suma/R.java | 110 +++++++++++++------------- project.properties | 2 +- res/layout/bus_route_activity.xml | 16 ++-- res/layout/bus_stop_activity.xml | 13 +-- res/values/strings.xml | 4 + res/xml/preferences.xml | 9 +++ src/net/cbaines/suma/BusRoute.java | 74 ++++++++--------- src/net/cbaines/suma/BusStopActivity.java | 10 +-- src/net/cbaines/suma/DataManager.java | 22 +++--- src/net/cbaines/suma/DatabaseHelper.java | 8 +- src/net/cbaines/suma/MapActivity.java | 2 +- src/net/cbaines/suma/POIView.java | 28 +++++-- src/net/cbaines/suma/Preferences.java | 3 + src/net/cbaines/suma/PreferencesActivity.java | 3 + src/net/cbaines/suma/RouteStop.java | 63 +++++++++++++++ src/net/cbaines/suma/RouteStops.java | 60 -------------- 17 files changed, 239 insertions(+), 192 deletions(-) create mode 100644 src/net/cbaines/suma/RouteStop.java delete mode 100644 src/net/cbaines/suma/RouteStops.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 1eb5c8a..42adfec 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -4,7 +4,9 @@ android:versionCode="7" android:versionName="0.4 (alpha)" > - + diff --git a/gen/net/cbaines/suma/R.java b/gen/net/cbaines/suma/R.java index 20027e0..aec5afc 100644 --- a/gen/net/cbaines/suma/R.java +++ b/gen/net/cbaines/suma/R.java @@ -68,10 +68,10 @@ public final class R { public static final int busActivityU2=0x7f0a000d; public static final int busActivityU6=0x7f0a000e; public static final int busActivityU9=0x7f0a000f; - public static final int busRouteActivityCode=0x7f0a0015; - public static final int busRouteActivityHeaderLayout=0x7f0a0013; + public static final int busRouteActivityCode=0x7f0a0013; + public static final int busRouteActivityHeaderLayout=0x7f0a0014; public static final int busRouteActivityID=0x7f0a0016; - public static final int busRouteActivityLabel=0x7f0a0014; + public static final int busRouteActivityLabel=0x7f0a0015; public static final int busRouteBusStops=0x7f0a0017; public static final int busStopID=0x7f0a001f; public static final int busStopListItems=0x7f0a0026; @@ -156,47 +156,47 @@ public final class R { public static final int U9=0x7f07000d; /** About Strings */ - public static final int about=0x7f070034; - public static final int about_android_market=0x7f070041; - public static final int about_android_market_summary=0x7f070042; - public static final int about_copyright=0x7f070037; - public static final int about_copyright_summary=0x7f070038; - public static final int about_data=0x7f07003f; - public static final int about_data_summary=0x7f070040; - public static final int about_database=0x7f07004b; - public static final int about_database_summary=0x7f07004c; - public static final int about_developer=0x7f07003d; - public static final int about_developer_summary=0x7f07003e; - public static final int about_donate=0x7f07004d; - public static final int about_donate_summary=0x7f07004e; + public static final int about=0x7f070038; + public static final int about_android_market=0x7f070045; + public static final int about_android_market_summary=0x7f070046; + public static final int about_copyright=0x7f07003b; + public static final int about_copyright_summary=0x7f07003c; + public static final int about_data=0x7f070043; + public static final int about_data_summary=0x7f070044; + public static final int about_database=0x7f07004f; + public static final int about_database_summary=0x7f070050; + public static final int about_developer=0x7f070041; + public static final int about_developer_summary=0x7f070042; + public static final int about_donate=0x7f070051; + public static final int about_donate_summary=0x7f070052; public static final int about_help_message=0x7f070016; - public static final int about_license=0x7f070039; - public static final int about_license_summary=0x7f07003a; - public static final int about_map_data=0x7f070043; - public static final int about_map_data_summary=0x7f070044; - public static final int about_map_icons=0x7f070045; - public static final int about_map_icons_summary=0x7f070046; - public static final int about_map_tiles=0x7f070049; - public static final int about_map_tiles_summary=0x7f07004a; + public static final int about_license=0x7f07003d; + public static final int about_license_summary=0x7f07003e; + public static final int about_map_data=0x7f070047; + public static final int about_map_data_summary=0x7f070048; + public static final int about_map_icons=0x7f070049; + public static final int about_map_icons_summary=0x7f07004a; + public static final int about_map_tiles=0x7f07004d; + public static final int about_map_tiles_summary=0x7f07004e; /** About Messages */ - public static final int about_menu_instruction_text=0x7f07002d; - public static final int about_osm_map=0x7f070047; - public static final int about_osm_map_summary=0x7f070048; - public static final int about_project=0x7f07003b; - public static final int about_project_summary=0x7f07003c; - public static final int about_version=0x7f070035; - public static final int about_version_summary=0x7f070036; + public static final int about_menu_instruction_text=0x7f070031; + public static final int about_osm_map=0x7f07004b; + public static final int about_osm_map_summary=0x7f07004c; + public static final int about_project=0x7f07003f; + public static final int about_project_summary=0x7f070040; + public static final int about_version=0x7f070039; + public static final int about_version_summary=0x7f07003a; public static final int app_name=0x7f070004; public static final int bitcoin_error_message=0x7f07001b; - public static final int buildingImageDescription=0x7f07004f; + public static final int buildingImageDescription=0x7f070053; public static final int building_non_residential=0x7f070007; public static final int building_residential=0x7f070006; - public static final int bustimes_favourite_checkbox_label=0x7f07002e; + public static final int bustimes_favourite_checkbox_label=0x7f070032; public static final int credits_help_message=0x7f070019; public static final int donate_button=0x7f07001a; - public static final int donate_dialog_error_title=0x7f070030; - public static final int donate_dialog_message=0x7f07002f; + public static final int donate_dialog_error_title=0x7f070034; + public static final int donate_dialog_message=0x7f070033; public static final int favourites_dialog_message=0x7f07001d; public static final int favourites_dialog_title=0x7f070010; public static final int favourites_help_message=0x7f070017; @@ -211,31 +211,35 @@ public final class R { public static final int menu_favourites=0x7f07000f; public static final int menu_find=0x7f070000; public static final int menu_find_my_location=0x7f070003; - public static final int menu_next_stop=0x7f070032; + public static final int menu_next_stop=0x7f070036; public static final int menu_preferences=0x7f070001; - public static final int menu_previous_stop=0x7f070031; - public static final int menu_refresh_stop=0x7f070033; + public static final int menu_previous_stop=0x7f070035; + public static final int menu_refresh_stop=0x7f070037; public static final int menu_view=0x7f070002; public static final int pref_bus_stop=0x7f070008; public static final int preferences=0x7f07001c; - public static final int preferences_catagory_data=0x7f070029; - public static final int preferences_catagory_live_bus_times=0x7f070022; /** Preferences Messages */ - public static final int preferences_catagory_positioning=0x7f07001e; - public static final int preferences_gps=0x7f07001f; - public static final int preferences_gps_disabled=0x7f070021; - public static final int preferences_gps_enabled=0x7f070020; + public static final int preferences_catagory_appearance=0x7f07001e; + public static final int preferences_catagory_data=0x7f07002d; + public static final int preferences_catagory_live_bus_times=0x7f070026; + public static final int preferences_catagory_positioning=0x7f070022; + public static final int preferences_gps=0x7f070023; + public static final int preferences_gps_disabled=0x7f070025; + public static final int preferences_gps_enabled=0x7f070024; public static final int preferences_help_message=0x7f070013; - public static final int preferences_non_uni_link=0x7f07002a; - public static final int preferences_non_uni_link_disabled=0x7f07002c; - public static final int preferences_non_uni_link_enabled=0x7f07002b; - public static final int preferences_non_uni_link_live_bus_times=0x7f070026; - public static final int preferences_non_uni_link_live_bus_times_disabled=0x7f070028; - public static final int preferences_non_uni_link_live_bus_times_enabled=0x7f070027; - public static final int preferences_uni_link_live_bus_times=0x7f070023; - public static final int preferences_uni_link_live_bus_times_disabled=0x7f070025; - public static final int preferences_uni_link_live_bus_times_enabled=0x7f070024; + public static final int preferences_non_uni_link=0x7f07002e; + public static final int preferences_non_uni_link_disabled=0x7f070030; + public static final int preferences_non_uni_link_enabled=0x7f07002f; + public static final int preferences_non_uni_link_live_bus_times=0x7f07002a; + public static final int preferences_non_uni_link_live_bus_times_disabled=0x7f07002c; + public static final int preferences_non_uni_link_live_bus_times_enabled=0x7f07002b; + public static final int preferences_show_identifiers=0x7f07001f; + public static final int preferences_show_identifiers_disabled=0x7f070021; + public static final int preferences_show_identifiers_enabled=0x7f070020; + public static final int preferences_uni_link_live_bus_times=0x7f070027; + public static final int preferences_uni_link_live_bus_times_disabled=0x7f070029; + public static final int preferences_uni_link_live_bus_times_enabled=0x7f070028; public static final int view_help_message=0x7f070015; } public static final class xml { diff --git a/project.properties b/project.properties index 5a70945..f049142 100644 --- a/project.properties +++ b/project.properties @@ -8,4 +8,4 @@ # project structure. # Project target. -target=android-7 +target=android-10 diff --git a/res/layout/bus_route_activity.xml b/res/layout/bus_route_activity.xml index fde127c..94a0d07 100644 --- a/res/layout/bus_route_activity.xml +++ b/res/layout/bus_route_activity.xml @@ -6,6 +6,12 @@ android:orientation="vertical" android:theme="@android:style/Theme.NoTitleBar" > + + - - + android:textAppearance="?android:attr/textAppearanceMedium" /> + android:textAppearance="?android:attr/textAppearanceMedium" /> + android:text="@string/bustimes_favourite_checkbox_label" + android:textAppearance="?android:attr/textAppearanceMedium" /> + Appearance + Show Identifiers + Showing Identifiers + Hiding Identifiers Positioning GPS GPS Enabled diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 4a12e1c..9de3a61 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -1,6 +1,15 @@ + + + diff --git a/src/net/cbaines/suma/BusRoute.java b/src/net/cbaines/suma/BusRoute.java index b4dd603..ff80c66 100644 --- a/src/net/cbaines/suma/BusRoute.java +++ b/src/net/cbaines/suma/BusRoute.java @@ -22,6 +22,7 @@ package net.cbaines.suma; import java.sql.SQLException; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -64,8 +65,7 @@ public class BusRoute { String label; /** - * The direction the bus is travelling if it is moving through the route and - * sequence is increasing. + * The direction the bus is travelling if it is moving through the route and sequence is increasing. *
    *
  • U1 = A
  • *
  • U2 = B
  • @@ -76,8 +76,7 @@ public class BusRoute { String forwardDirection; /** - * The direction the bus is travelling if it is moving through the route and - * sequence is decreasing. + * The direction the bus is travelling if it is moving through the route and sequence is decreasing. *
      *
    • U1 = C
    • *
    • U2 = C
    • @@ -93,8 +92,7 @@ public class BusRoute { BusRoute() { } - public BusRoute(Integer id, String code, String label, String forwardDirection, String reverseDirection, - boolean uniLink) { + public BusRoute(Integer id, String code, String label, String forwardDirection, String reverseDirection, boolean uniLink) { this.id = id.intValue(); this.code = code; this.label = label; @@ -153,18 +151,19 @@ public class BusRoute { DatabaseHelper helper = OpenHelperManager.getHelper(context, DatabaseHelper.class); try { - Dao routeStopsDao = helper.getRouteStopsDao(); + Dao routeStopsDao = helper.getRouteStopsDao(); Dao busStopDao = helper.getBusStopDao(); - QueryBuilder routeStopsQueryBuilder = routeStopsDao.queryBuilder(); - routeStopsQueryBuilder.where().eq(RouteStops.ROUTE_ID_FIELD_NAME, this.id); - PreparedQuery routeStopsPreparedQuery = routeStopsQueryBuilder.prepare(); + QueryBuilder routeStopsQueryBuilder = routeStopsDao.queryBuilder(); + routeStopsQueryBuilder.where().eq(RouteStop.ROUTE_ID_FIELD_NAME, this.id); + PreparedQuery routeStopsPreparedQuery = routeStopsQueryBuilder.prepare(); - List routeStopsFound = routeStopsDao.query(routeStopsPreparedQuery); + List routeStopsFound = routeStopsDao.query(routeStopsPreparedQuery); + Collections.sort(routeStopsFound); - ArrayList stopIndexs = new ArrayList(); + Set stopIndexs = new HashSet(); - for (RouteStops routeStop : routeStopsFound) { + for (RouteStop routeStop : routeStopsFound) { if (routeStop.busStop.id.equals(busStop.id)) { stopIndexs.add(routeStop.sequence - 1); } @@ -241,18 +240,19 @@ public class BusRoute { } try { - Dao routeStopsDao = helper.getRouteStopsDao(); + Dao routeStopsDao = helper.getRouteStopsDao(); Dao busStopDao = helper.getBusStopDao(); - QueryBuilder routeStopsQueryBuilder = routeStopsDao.queryBuilder(); - routeStopsQueryBuilder.where().eq(RouteStops.ROUTE_ID_FIELD_NAME, this.id); - PreparedQuery routeStopsPreparedQuery = routeStopsQueryBuilder.prepare(); + QueryBuilder routeStopsQueryBuilder = routeStopsDao.queryBuilder(); + routeStopsQueryBuilder.where().eq(RouteStop.ROUTE_ID_FIELD_NAME, this.id); + PreparedQuery routeStopsPreparedQuery = routeStopsQueryBuilder.prepare(); - List routeStopsFound = routeStopsDao.query(routeStopsPreparedQuery); + List routeStopsFound = routeStopsDao.query(routeStopsPreparedQuery); + Collections.sort(routeStopsFound); int stopIndex = -1; - for (RouteStops routeStop : routeStopsFound) { + for (RouteStop routeStop : routeStopsFound) { if (routeStop.busStop.id.equals(busStop.id)) { if (stopIndex == -1) { stopIndex = routeStop.sequence - 1; @@ -377,8 +377,9 @@ public class BusRoute { } if (moveAmount > 0) { - Log.v(TAG, "Moving forward " + moveAmount + " stops from " + busStop + " (" + stopIndex + "/" - + routeStopsFound.size() + ")"); + Log.v(TAG, + "Moving forward " + moveAmount + " stops from " + busStop + " (" + stopIndex + "/" + + routeStopsFound.size() + ")"); int stopWanted = stopIndex + moveAmount; if ((stopWanted + 1) > routeStopsFound.size()) { Log.v(TAG, "Off the end of the route"); @@ -401,9 +402,8 @@ public class BusRoute { Log.v(TAG, "stopWanted " + stopWanted); busStopDao.refresh(routeStopsFound.get(stopWanted).busStop); - Log.v(TAG, - "Moving backwards " + moveAmount + " stops from " + busStop + " to " - + routeStopsFound.get(stopWanted).busStop + " in route " + this); + Log.v(TAG, "Moving backwards " + moveAmount + " stops from " + busStop + " to " + + routeStopsFound.get(stopWanted).busStop + " in route " + this); return routeStopsFound.get(stopWanted).busStop; } @@ -442,14 +442,15 @@ public class BusRoute { try { - Dao routeStopsDao = helper.getRouteStopsDao(); + Dao routeStopsDao = helper.getRouteStopsDao(); Dao busStopDao = helper.getBusStopDao(); - QueryBuilder routeStopsQueryBuilder = routeStopsDao.queryBuilder(); - routeStopsQueryBuilder.where().eq(RouteStops.ROUTE_ID_FIELD_NAME, this.id); - PreparedQuery routeStopsPreparedQuery = routeStopsQueryBuilder.prepare(); + QueryBuilder routeStopsQueryBuilder = routeStopsDao.queryBuilder(); + routeStopsQueryBuilder.where().eq(RouteStop.ROUTE_ID_FIELD_NAME, this.id); + PreparedQuery routeStopsPreparedQuery = routeStopsQueryBuilder.prepare(); - List routeStopsFound = routeStopsDao.query(routeStopsPreparedQuery); + List routeStopsFound = routeStopsDao.query(routeStopsPreparedQuery); + Collections.sort(routeStopsFound); int startStopSeq = -1; int endStopSeq = -1; @@ -500,7 +501,7 @@ public class BusRoute { Log.e(TAG, "Error, unrecognised route " + id); } - for (RouteStops routeStop : routeStopsFound) { + for (RouteStop routeStop : routeStopsFound) { if (routeStop.sequence >= startStopSeq && routeStop.sequence <= endStopSeq) { busStopDao.refresh(routeStop.busStop); busStops.add(routeStop.busStop); @@ -525,16 +526,17 @@ public class BusRoute { try { - Dao routeStopsDao = helper.getRouteStopsDao(); + Dao routeStopsDao = helper.getRouteStopsDao(); Dao busStopDao = helper.getBusStopDao(); - QueryBuilder routeStopsQueryBuilder = routeStopsDao.queryBuilder(); - routeStopsQueryBuilder.where().eq(RouteStops.ROUTE_ID_FIELD_NAME, this.id); - PreparedQuery routeStopsPreparedQuery = routeStopsQueryBuilder.prepare(); + QueryBuilder routeStopsQueryBuilder = routeStopsDao.queryBuilder(); + routeStopsQueryBuilder.where().eq(RouteStop.ROUTE_ID_FIELD_NAME, this.id); + PreparedQuery routeStopsPreparedQuery = routeStopsQueryBuilder.prepare(); - List routeStopsFound = routeStopsDao.query(routeStopsPreparedQuery); + List routeStopsFound = routeStopsDao.query(routeStopsPreparedQuery); + Collections.sort(routeStopsFound); - for (RouteStops routeStop : routeStopsFound) { + for (RouteStop routeStop : routeStopsFound) { busStopDao.refresh(routeStop.busStop); busStops.add(routeStop.busStop); } diff --git a/src/net/cbaines/suma/BusStopActivity.java b/src/net/cbaines/suma/BusStopActivity.java index 55a0bd6..8bded40 100644 --- a/src/net/cbaines/suma/BusStopActivity.java +++ b/src/net/cbaines/suma/BusStopActivity.java @@ -153,15 +153,15 @@ public class BusStopActivity extends OrmLiteBaseActivity impleme busStop = busStopDao.queryForId(busStopID); Dao busRouteDao = helper.getBusRouteDao(); - Dao routeStopsDao = helper.getRouteStopsDao(); + Dao routeStopsDao = helper.getRouteStopsDao(); for (BusRoute route : busRouteDao) { - QueryBuilder queryBuilder = routeStopsDao.queryBuilder(); + QueryBuilder queryBuilder = routeStopsDao.queryBuilder(); - queryBuilder.where().eq(RouteStops.ROUTE_ID_FIELD_NAME, route.id).and() - .eq(RouteStops.STOP_ID_FIELD_NAME, busStopID); + queryBuilder.where().eq(RouteStop.ROUTE_ID_FIELD_NAME, route.id).and() + .eq(RouteStop.STOP_ID_FIELD_NAME, busStopID); queryBuilder.setCountOf(true); - PreparedQuery preparedQuery = queryBuilder.prepare(); + PreparedQuery preparedQuery = queryBuilder.prepare(); long count = routeStopsDao.countOf(preparedQuery); diff --git a/src/net/cbaines/suma/DataManager.java b/src/net/cbaines/suma/DataManager.java index 3a550a7..5e8b195 100644 --- a/src/net/cbaines/suma/DataManager.java +++ b/src/net/cbaines/suma/DataManager.java @@ -214,11 +214,11 @@ public class DataManager { Dao busStopDao = helper.getBusStopDao(); Dao busRouteDao = helper.getBusRouteDao(); - Dao routeStopsDao = helper.getRouteStopsDao(); + Dao routeStopsDao = helper.getRouteStopsDao(); TableUtils.clearTable(helper.getConnectionSource(), BusStop.class); TableUtils.clearTable(helper.getConnectionSource(), BusRoute.class); - TableUtils.clearTable(helper.getConnectionSource(), RouteStops.class); + TableUtils.clearTable(helper.getConnectionSource(), RouteStop.class); Log.i(TAG, "Loading busstops from csv"); @@ -340,7 +340,7 @@ public class DataManager { int sequence = Integer.parseInt(dataBits[1]); Log.i(TAG, "Creating RouteStop " + busStop.id + " " + busRoute.code + " " + sequence); - routeStopsDao.create(new RouteStops(busStop, busRoute, sequence)); + routeStopsDao.create(new RouteStop(busStop, busRoute, sequence)); if (busRoute.id == 326) { // U1 busStop.routes = (byte) (busStop.routes | 1); @@ -457,7 +457,7 @@ public class DataManager { helper = OpenHelperManager.getHelper(context, DatabaseHelper.class); if (busRouteDao == null) busRouteDao = helper.getBusRouteDao(); - Dao routeStopsDao = null; + Dao routeStopsDao = null; if (routeStopsDao == null) routeStopsDao = helper.getRouteStopsDao(); if (busDao == null) @@ -568,12 +568,12 @@ public class DataManager { if (destStop != null) { - QueryBuilder routeStopsQueryBuilder = routeStopsDao.queryBuilder(); - routeStopsQueryBuilder.where().eq(RouteStops.ROUTE_ID_FIELD_NAME, route.id).and() - .eq(RouteStops.STOP_ID_FIELD_NAME, destStop.id); - PreparedQuery routeStopsPreparedQuery = routeStopsQueryBuilder.prepare(); + QueryBuilder routeStopsQueryBuilder = routeStopsDao.queryBuilder(); + routeStopsQueryBuilder.where().eq(RouteStop.ROUTE_ID_FIELD_NAME, route.id).and() + .eq(RouteStop.STOP_ID_FIELD_NAME, destStop.id); + PreparedQuery routeStopsPreparedQuery = routeStopsQueryBuilder.prepare(); - List routeStops = routeStopsDao.query(routeStopsPreparedQuery); + List routeStops = routeStopsDao.query(routeStopsPreparedQuery); if (routeStops.size() > 0) { Log.i(TAG, "Found " + routeStops.size() + " stops matching the destStop " + destStop + " on route " + route.code); @@ -855,7 +855,7 @@ public class DataManager { public static void routeMovementTest(Context context) throws SQLException { - Dao routeStopsDao = null; + Dao routeStopsDao = null; if (helper == null) helper = OpenHelperManager.getHelper(context, DatabaseHelper.class); @@ -870,7 +870,7 @@ public class DataManager { if (!busRoute.code.startsWith("U") || busRoute.code.equals("U9")) { continue; } - List routeStops = routeStopsDao.queryForEq(RouteStops.ROUTE_ID_FIELD_NAME, busRoute.id); + List routeStops = routeStopsDao.queryForEq(RouteStop.ROUTE_ID_FIELD_NAME, busRoute.id); ArrayList directions = new ArrayList(); if (busRoute.forwardDirection != null) { diff --git a/src/net/cbaines/suma/DatabaseHelper.java b/src/net/cbaines/suma/DatabaseHelper.java index 13f4957..facfe85 100644 --- a/src/net/cbaines/suma/DatabaseHelper.java +++ b/src/net/cbaines/suma/DatabaseHelper.java @@ -48,7 +48,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { private Dao buildingDao = null; private Dao busStopDao = null; private Dao busRouteDao = null; - private Dao routeStopsDao = null; + private Dao routeStopsDao = null; private Dao siteDao = null; private Dao busDao = null; @@ -67,7 +67,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { TableUtils.createTable(connectionSource, Building.class); TableUtils.createTable(connectionSource, BusStop.class); TableUtils.createTable(connectionSource, BusRoute.class); - TableUtils.createTable(connectionSource, RouteStops.class); + TableUtils.createTable(connectionSource, RouteStop.class); TableUtils.createTable(connectionSource, Site.class); TableUtils.createTable(connectionSource, Bus.class); } catch (SQLException e) { @@ -125,9 +125,9 @@ 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 getRouteStopsDao() throws SQLException { + public Dao getRouteStopsDao() throws SQLException { if (routeStopsDao == null) { - routeStopsDao = getDao(RouteStops.class); + routeStopsDao = getDao(RouteStop.class); } return routeStopsDao; } diff --git a/src/net/cbaines/suma/MapActivity.java b/src/net/cbaines/suma/MapActivity.java index 8f555da..e2b9d66 100644 --- a/src/net/cbaines/suma/MapActivity.java +++ b/src/net/cbaines/suma/MapActivity.java @@ -389,7 +389,7 @@ public class MapActivity extends OrmLiteBaseActivity implements Dao busStopDao = helper.getBusStopDao(); Dao busRouteDao = helper.getBusRouteDao(); - Dao routeStopsDao = helper.getRouteStopsDao(); + Dao routeStopsDao = helper.getRouteStopsDao(); long busStopCount = busStopDao.countOf(); long busRouteCount = busRouteDao.countOf(); diff --git a/src/net/cbaines/suma/POIView.java b/src/net/cbaines/suma/POIView.java index b27b4f3..95c571c 100644 --- a/src/net/cbaines/suma/POIView.java +++ b/src/net/cbaines/suma/POIView.java @@ -20,6 +20,7 @@ package net.cbaines.suma; import android.content.Context; +import android.preference.PreferenceManager; import android.util.Log; import android.view.Display; import android.view.Gravity; @@ -27,7 +28,7 @@ import android.view.WindowManager; import android.widget.LinearLayout; import android.widget.TextView; -public class POIView extends LinearLayout { +public class POIView extends LinearLayout implements Preferences { private final static String TAG = "POIView"; @@ -37,6 +38,8 @@ public class POIView extends LinearLayout { private LayoutParams textLayoutParams; + private boolean identifiersEnabled; + final int width; public POIView(Context context, POI poi) { @@ -46,6 +49,9 @@ public class POIView extends LinearLayout { public POIView(Context context, POI poi, int distInM) { super(context); + identifiersEnabled = PreferenceManager.getDefaultSharedPreferences(context).getBoolean(SHOW_IDENTIFIERS, + SHOW_IDENTIFIERS_ENABLED_BY_DEFAULT); + Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); width = display.getWidth(); // int height = display.getHeight(); @@ -85,14 +91,22 @@ public class POIView extends LinearLayout { Building building = (Building) poi; // Log.i(TAG, "Its a building of name " + building.name); - name.setText(building.name + " (" + building.id + ")"); + if (identifiersEnabled) { + name.setText(building.name + " (" + building.id + ")"); + } else { + name.setText(building.name); + } } else if (poi.type == POI.BUS_STOP) { BusStop busStop = (BusStop) poi; // Log.i(TAG, "Its a bus stop of description " + // busStop.description); - name.setText(busStop.description + " (" + busStop.id + ")"); + if (identifiersEnabled) { + name.setText(busStop.description + " (" + busStop.id + ")"); + } else { + name.setText(busStop.description); + } routes.setRoutes(busStop.routes); @@ -100,8 +114,11 @@ public class POIView extends LinearLayout { Site site = (Site) poi; // Log.i(TAG, "Its a site of name " + site.name); - - name.setText(site.name + " (" + site.id + ")"); + if (identifiersEnabled) { + name.setText(site.name + " (" + site.id + ")"); + } else { + name.setText(site.name); + } } else { Log.w(TAG, "Cant identify " + poi.type); @@ -121,5 +138,4 @@ public class POIView extends LinearLayout { // Log.w("POIView", "No dist avalible for S" + poi.id); } } - } \ No newline at end of file diff --git a/src/net/cbaines/suma/Preferences.java b/src/net/cbaines/suma/Preferences.java index ff8f366..0508251 100644 --- a/src/net/cbaines/suma/Preferences.java +++ b/src/net/cbaines/suma/Preferences.java @@ -11,5 +11,8 @@ public interface Preferences { static final String NON_UNI_LINK_BUS_STOPS_OVERLAY = "nonUniLinkBusStops"; static final boolean NON_UNI_LINK_BUS_STOP_OVERLAY_ENABLED_BY_DEFAULT = false; + static final String SHOW_IDENTIFIERS = "showIdentifiers"; + static final boolean SHOW_IDENTIFIERS_ENABLED_BY_DEFAULT = false; + static final String FAVOURITES_PREFERENCES = "favourites"; } diff --git a/src/net/cbaines/suma/PreferencesActivity.java b/src/net/cbaines/suma/PreferencesActivity.java index 39e6bb2..bab72bf 100644 --- a/src/net/cbaines/suma/PreferencesActivity.java +++ b/src/net/cbaines/suma/PreferencesActivity.java @@ -45,6 +45,9 @@ public class PreferencesActivity extends PreferenceActivity implements Preferenc if (!sharedPrefs.contains(NON_UNI_LINK_BUS_STOPS_OVERLAY)) { editor.putBoolean(NON_UNI_LINK_BUS_STOPS_OVERLAY, NON_UNI_LINK_BUS_STOP_OVERLAY_ENABLED_BY_DEFAULT); } + if (!sharedPrefs.contains(SHOW_IDENTIFIERS)) { + editor.putBoolean(SHOW_IDENTIFIERS, SHOW_IDENTIFIERS_ENABLED_BY_DEFAULT); + } editor.commit(); addPreferencesFromResource(R.xml.preferences); diff --git a/src/net/cbaines/suma/RouteStop.java b/src/net/cbaines/suma/RouteStop.java new file mode 100644 index 0000000..a19f4fa --- /dev/null +++ b/src/net/cbaines/suma/RouteStop.java @@ -0,0 +1,63 @@ +/* + * Southampton University Map App + * Copyright (C) 2011 Christopher Baines + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +package net.cbaines.suma; + +import com.j256.ormlite.field.DatabaseField; +import com.j256.ormlite.table.DatabaseTable; + +@DatabaseTable(tableName = "routestops") +public class RouteStop implements Comparable { + public final static String STOP_ID_FIELD_NAME = "stop_id"; + public final static String ROUTE_ID_FIELD_NAME = "route_id"; + public final static String SEQUENCE_ID_FIELD_NAME = "sequence"; + + /** + * This id is generated by the database and set on the object when it is passed to the create method. An id is needed in case + * we need to update or delete this object in the future. + */ + @DatabaseField(generatedId = true) + int id; + + @DatabaseField + int sequence; + + // This is a foreign object which just stores the id from the User object in + // this table. + @DatabaseField(foreign = true, columnName = STOP_ID_FIELD_NAME, indexName = "routestops_routestop_idx") + BusStop busStop; + + // This is a foreign object which just stores the id from the Post object in + // this table. + @DatabaseField(foreign = true, columnName = ROUTE_ID_FIELD_NAME, indexName = "routestops_routestop_idx") + BusRoute busRoute; + + RouteStop() { + } + + public RouteStop(BusStop stop, BusRoute route, int sequence) { + this.busStop = stop; + this.busRoute = route; + this.sequence = sequence; + } + + public int compareTo(RouteStop routeStop) { + return this.sequence - routeStop.sequence; + } +} diff --git a/src/net/cbaines/suma/RouteStops.java b/src/net/cbaines/suma/RouteStops.java deleted file mode 100644 index 2f6c00a..0000000 --- a/src/net/cbaines/suma/RouteStops.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Southampton University Map App - * Copyright (C) 2011 Christopher Baines - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package net.cbaines.suma; - -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; - -@DatabaseTable(tableName = "routestops") -public class RouteStops { - public final static String STOP_ID_FIELD_NAME = "stop_id"; - public final static String ROUTE_ID_FIELD_NAME = "route_id"; - public final static String SEQUENCE_ID_FIELD_NAME = "sequence"; - - /** - * This id is generated by the database and set on the object when it is - * passed to the create method. An id is needed in case we need to update or - * delete this object in the future. - */ - @DatabaseField(generatedId = true) - int id; - - @DatabaseField - int sequence; - - // This is a foreign object which just stores the id from the User object in - // this table. - @DatabaseField(foreign = true, columnName = STOP_ID_FIELD_NAME, indexName = "routestops_routestop_idx") - BusStop busStop; - - // This is a foreign object which just stores the id from the Post object in - // this table. - @DatabaseField(foreign = true, columnName = ROUTE_ID_FIELD_NAME, indexName = "routestops_routestop_idx") - BusRoute busRoute; - - RouteStops() { - } - - public RouteStops(BusStop stop, BusRoute route, int sequence) { - this.busStop = stop; - this.busRoute = route; - this.sequence = sequence; - } -} -- cgit v1.2.3