aboutsummaryrefslogtreecommitdiff
path: root/src/net/cbaines/suma/StopView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/cbaines/suma/StopView.java')
-rw-r--r--src/net/cbaines/suma/StopView.java36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/net/cbaines/suma/StopView.java b/src/net/cbaines/suma/StopView.java
index 68be1f6..0fe3aa1 100644
--- a/src/net/cbaines/suma/StopView.java
+++ b/src/net/cbaines/suma/StopView.java
@@ -22,10 +22,13 @@ package net.cbaines.suma;
import java.sql.SQLException;
import java.text.DateFormat;
+import android.app.Activity;
import android.content.Context;
+import android.content.Intent;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
+import android.view.View.OnLongClickListener;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
@@ -33,7 +36,7 @@ import android.widget.Toast;
import com.j256.ormlite.android.apptools.OpenHelperManager;
import com.j256.ormlite.dao.Dao;
-public class StopView extends LinearLayout implements OnClickListener {
+public class StopView extends LinearLayout implements OnClickListener, OnLongClickListener {
// private final ImageView icon;
@@ -44,6 +47,8 @@ public class StopView extends LinearLayout implements OnClickListener {
private String onClickMessage = "";
private final Context context;
+ private Stop stop;
+
public StopView(Context context, Stop stop) {
super(context);
@@ -68,6 +73,8 @@ public class StopView extends LinearLayout implements OnClickListener {
// Log.i(TAG, "Time of arival " + stop.arivalTime);
+ this.stop = stop;
+
name.setText(stop.bus.getName());
time.setText(stop.getTimeToArival());
@@ -88,8 +95,7 @@ public class StopView extends LinearLayout implements OnClickListener {
if (stop.live) {
onClickMessage = "Unidentified bus (" + stop.bus.getName() + ") at " + DateFormat.getTimeInstance(DateFormat.SHORT).format(stop.arivalTime);
} else {
- onClickMessage = "Timetabled bus (" + stop.bus.getName() + ") at "
- + DateFormat.getTimeInstance(DateFormat.SHORT).format(stop.arivalTime);
+ onClickMessage = "Timetabled bus (" + stop.bus.getName() + ") at " + DateFormat.getTimeInstance(DateFormat.SHORT).format(stop.arivalTime);
}
}
} catch (SQLException e) {
@@ -97,6 +103,7 @@ public class StopView extends LinearLayout implements OnClickListener {
}
this.setOnClickListener(this);
+ this.setOnLongClickListener(this);
}
public void onClick(View v) {
@@ -104,4 +111,27 @@ public class StopView extends LinearLayout implements OnClickListener {
}
+ @Override
+ public boolean onLongClick(View v) {
+ DatabaseHelper helper = OpenHelperManager.getHelper(context, DatabaseHelper.class);
+
+ try {
+ Dao<Bus, Integer> busDao = helper.getBusDao();
+
+ busDao.refresh(stop.bus);
+
+ if (stop.bus.id != null) {
+ Intent i = new Intent(context, BusActivity.class);
+ i.putExtra("busID", stop.bus.id);
+ ((Activity) context).startActivityForResult(i, 0);
+ } else {
+ Toast.makeText(context, "Arival prediction not avalible for timetabled buses", Toast.LENGTH_SHORT).show();
+ }
+
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
+
}