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.java86
1 files changed, 79 insertions, 7 deletions
diff --git a/src/net/cbaines/suma/StopView.java b/src/net/cbaines/suma/StopView.java
index dc023aa..764072e 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.content.Context;
+import android.app.Activity;
+import android.content.Intent;
+import android.util.Log;
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;
@@ -42,9 +45,11 @@ public class StopView extends LinearLayout implements OnClickListener {
private final TextView name;
private final TextView time;
private String onClickMessage = "";
- private final Context context;
+ private final BusStopActivity context;
- public StopView(Context context, Stop stop) {
+ private Stop stop;
+
+ public StopView(BusStopActivity context, Stop stop) {
super(context);
this.context = 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());
@@ -79,20 +86,85 @@ public class StopView extends LinearLayout implements OnClickListener {
busDao.refresh(stop.bus);
if (stop.bus.id != null) {
- onClickMessage = "Bus " + stop.bus.toString() + " at " + DateFormat.getTimeInstance(DateFormat.SHORT).format(stop.arivalTime);
+ if (stop.live) {
+ onClickMessage = "Bus " + stop.bus.toString() + " at "
+ + DateFormat.getTimeInstance(DateFormat.SHORT).format(stop.arivalTime);
+ } else {
+ onClickMessage = "Timetabled bus " + stop.bus.toString() + " at "
+ + DateFormat.getTimeInstance(DateFormat.SHORT).format(stop.arivalTime);
+ }
} else {
- onClickMessage = "Unidentified bus (" + stop.bus.getName() + ") at " + DateFormat.getTimeInstance(DateFormat.SHORT).format(stop.arivalTime);
+ 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);
+ }
}
} catch (SQLException e) {
e.printStackTrace();
}
this.setOnClickListener(this);
+ this.setOnLongClickListener(this);
}
public void onClick(View v) {
- Toast.makeText(context, onClickMessage, Toast.LENGTH_SHORT).show();
+ if (context.activityToast == null) {
+ context.activityToast = Toast.makeText(context, onClickMessage, Toast.LENGTH_SHORT);
+ } else {
+ context.activityToast.setText(onClickMessage);
+ context.activityToast.setDuration(Toast.LENGTH_SHORT);
+ }
+ context.activityToast.show();
}
+ @Override
+ public boolean onLongClick(View v) {
+ DatabaseHelper helper = OpenHelperManager.getHelper(context, DatabaseHelper.class);
+
+ try {
+ Dao<Bus, Integer> busDao = helper.getBusDao();
+ Dao<BusRoute, Integer> busRouteDao = helper.getBusRouteDao();
+
+ busDao.refresh(stop.bus);
+ busRouteDao.refresh(stop.bus.route);
+
+ Log.i("StopView", "Bus route " + stop.bus.route + " Uni-Link " + stop.bus.route.uniLink + " Bus ID "
+ + stop.bus.id);
+
+ if (stop.bus.id != null && stop.bus.route.uniLink) {
+ Intent i = new Intent(context, BusActivity.class);
+ i.putExtra("busID", stop.bus.id);
+ i.putExtra("busStopID", stop.busStop.id);
+ ((Activity) context).startActivityForResult(i, 0);
+ } else {
+ if (!stop.bus.route.uniLink) {
+ if (context.activityToast == null) {
+ context.activityToast = Toast.makeText(context,
+ "Bus schedules only avalible for Uni-Link buses", Toast.LENGTH_SHORT);
+ } else {
+ context.activityToast.setText("Bus schedules only avalible for Uni-Link buses");
+ context.activityToast.setDuration(Toast.LENGTH_SHORT);
+ }
+ context.activityToast.show();
+ } else {
+ if (context.activityToast == null) {
+ context.activityToast = Toast.makeText(context,
+ "Bus schedules not avalible for unidentified buses", Toast.LENGTH_SHORT);
+ } else {
+ context.activityToast.setText("Bus schedules not avalible for unidentified buses");
+ context.activityToast.setDuration(Toast.LENGTH_SHORT);
+ }
+ context.activityToast.show();
+ }
+ }
+
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return true;
+ }
}