aboutsummaryrefslogtreecommitdiff
path: root/src/net/cbaines/suma/SouthamptonUniversityMapActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/cbaines/suma/SouthamptonUniversityMapActivity.java')
-rw-r--r--src/net/cbaines/suma/SouthamptonUniversityMapActivity.java42
1 files changed, 33 insertions, 9 deletions
diff --git a/src/net/cbaines/suma/SouthamptonUniversityMapActivity.java b/src/net/cbaines/suma/SouthamptonUniversityMapActivity.java
index 4bfb3de..3580c60 100644
--- a/src/net/cbaines/suma/SouthamptonUniversityMapActivity.java
+++ b/src/net/cbaines/suma/SouthamptonUniversityMapActivity.java
@@ -136,7 +136,7 @@ public class SouthamptonUniversityMapActivity extends OrmLiteBaseActivity<Databa
private static final int UNI_LINK_BUS_STOP_OVERLAY_RANK = 4;
- private FavouriteDialog favDialog;
+ private POIDialog favDialog;
private SouthamptonUniversityMapActivity instance;
@@ -771,14 +771,15 @@ public class SouthamptonUniversityMapActivity extends OrmLiteBaseActivity<Databa
return false;
case R.id.menu_favourites:
Log.i(TAG, "Showing favourite dialog");
- boolean refreshNeeded = favDialog != null;
+
showDialog(FAVOURITE_DIALOG_ID);
- if (favDialog != null) {
- if (refreshNeeded)
- favDialog.refresh();
- } else {
+ if (favDialog == null) {
Log.e(TAG, "Very wierd, just tried to launch the favourite's dialog, but its null?");
+ return false;
}
+
+ refreshFavouriteDialog();
+
return false;
case R.id.menu_about:
Intent aboutIntent = new Intent(SouthamptonUniversityMapActivity.this, AboutActivity.class);
@@ -790,6 +791,30 @@ public class SouthamptonUniversityMapActivity extends OrmLiteBaseActivity<Databa
}
}
+ private void refreshFavouriteDialog() {
+ ArrayList<POI> newFavouriteItems = new ArrayList<POI>();
+
+ try {
+ Dao<Building, String> buildingDao = getHelper().getBuildingDao();
+ Dao<BusStop, String> busStopDao = getHelper().getBusStopDao();
+
+ newFavouriteItems.addAll(buildingDao.queryForEq(POI.FAVOURITE_FIELD_NAME, true));
+ newFavouriteItems.addAll(busStopDao.queryForEq(POI.FAVOURITE_FIELD_NAME, true));
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+
+ Log.i(TAG, "There are " + newFavouriteItems.size() + " favourites");
+ if (newFavouriteItems.size() == 0) {
+ Log.i(TAG, "Favourite dialog has no favourites, displaying message");
+ favDialog.setMessage(getResources().getString(R.string.favourites_dialog_message));
+ favDialog.setItems(null);
+ } else {
+ favDialog.setMessage("");
+ favDialog.setItems(newFavouriteItems);
+ }
+ }
+
@Override
public boolean onSearchRequested() {
Intent i = new Intent(SouthamptonUniversityMapActivity.this, FindActivity.class);
@@ -850,7 +875,7 @@ public class SouthamptonUniversityMapActivity extends OrmLiteBaseActivity<Databa
}
if (favDialog != null) {
- favDialog.refresh();
+ refreshFavouriteDialog();
}
}
}
@@ -876,11 +901,10 @@ public class SouthamptonUniversityMapActivity extends OrmLiteBaseActivity<Databa
viewDialog.setOnItemClickListener(this);
return viewDialog;
case FAVOURITE_DIALOG_ID:
- favDialog = new FavouriteDialog(instance);
+ favDialog = new POIDialog(instance);
favDialog.setOnItemClickListener(this);
favDialog.setOnItemLongClickListener(this);
return favDialog;
-
}
return null;
}