import com.td.utility.ConfUtil;\r
import com.td.utility.DateUtil;\r
import com.td.utility.Debug;\r
+import com.td.utility.Delay;\r
import com.td.utility.EditPrefUtil;\r
\r
public class TrainTwitterAdapter extends TwitterAdapter {\r
public static final long START_ID = Long.MAX_VALUE;\r
public static final long ERROR_ID = START_ID - 1;\r
- \r
+\r
private TrainDelayedServiceImpl context;\r
private EditPrefUtil pref;\r
\r
\r
try {\r
int len = ConfUtil.getLen(pref);\r
- \r
+\r
long min = Long.MAX_VALUE;\r
long max = 0;\r
\r
long routeId = -1;\r
List<Train> trains = context.getTrains();\r
if (trains != null) {\r
- for (Train train : trains) {\r
- if (query.equals(train.getSearchText())) {\r
- routeId = train.getId();\r
+ Train train = null;\r
+ for (Train t : trains) {\r
+ if (query.equals(t.getSearchText())) {\r
+ train = t;\r
+ routeId = t.getId();\r
break;\r
}\r
}\r
+ if (train == null) {\r
+ return;\r
+ }\r
\r
if (minDate != null && maxDate != null) {\r
Debug.d(this, minDate.toString(), "-", maxDate.toString());\r
Debug.d(this, "diff=" + diff);\r
Debug.d(this, "count=" + count);\r
\r
+ checkDelay(train, cal, count, len);\r
+\r
insert(routeId, diff, count, 0);\r
}\r
} catch (Exception e) {\r
}\r
}\r
\r
+ private void checkDelay(Train train, Calendar curCal, int count, int len) {\r
+ int cntpmi = count / len;\r
+ int h = ConfUtil.getHeight(pref);\r
+ boolean isDelay = true;\r
+\r
+ if (cntpmi < h) {\r
+ return;\r
+ }\r
+ \r
+ String data = ConfUtil.getDelay(pref);\r
+ Delay[] delays = Delay.getInstances(data);\r
+ Delay newDelay = null;\r
+\r
+ Delay delay = Delay.search(delays, train.getId());\r
+ if (delay != null) {\r
+ Calendar dCal = DateUtil.getCalendar(delay.getYmd(), delay.getHm());\r
+ long t = dCal.getTimeInMillis();\r
+ int w = ConfUtil.getWidth(pref);\r
+ long cur = curCal.getTimeInMillis();\r
+ if (cur - t < w * 60 * 1000) {\r
+ // \8dÅ\8cã\82Ì\92x\89\84\82©\82ç\8e\9e\8aÔ\82ª\8co\82Á\82Ä\82¢\82È\82¢(\92x\89\84\82Ì\8e\9e\8aÔ\82Í\8dX\90V\82·\82é)\r
+ Debug.t(context, train.getName() + " \8dÅ\8cã\82Ì\92x\89\84\82©\82ç\8e\9e\8aÔ\82ª\8co\82Á\82Ä\82¢\82È\82¢");\r
+ \r
+ isDelay = false;\r
+ } else {\r
+ // \91O\89ñ\82Ì\92x\89\84\82©\82ç\81A\8dÄ\93x\92x\89\84\82ª\94\90¶\r
+ Debug.t(context, train.getName() + " \91O\89ñ\82Ì\92x\89\84\82©\82ç\81A\8dÄ\93x\92x\89\84\82ª\94\90¶");\r
+ }\r
+ Date d = dCal.getTime();\r
+ delay.setYmd(DateUtil.getYmd(d));\r
+ delay.setHm(DateUtil.getHm(d));\r
+ } else {\r
+ // \90V\8bK\93o\98^(\92x\89\84\94\90¶)\r
+ Date d = curCal.getTime();\r
+ int ymd = DateUtil.getYmd(d);\r
+ int hm = DateUtil.getHm(d);\r
+ newDelay = new Delay(train.getId(), ymd, hm, 0, true);\r
+\r
+ Debug.t(context, train.getName() + " \90V\8bK\93o\98^(\92x\89\84\94\90¶)");\r
+ }\r
+ //\r
+ StringBuffer sb = Delay.getData(delays);\r
+ if (newDelay != null) {\r
+ Delay.setData(sb, newDelay);\r
+ }\r
+\r
+ if (isDelay) {\r
+ // \81@\92x\89\84\82ð\92Ê\92m\r
+ if (context != null) {\r
+ context.notificate(train.getName());\r
+ }\r
+ }\r
+\r
+ }\r
+\r
private boolean filter(String text) {\r
List<Keyword> keywords = context.getKeywords();\r
if (keywords == null) {\r
private void insert(long routeId, long diff, int count, int status) {\r
insert(context, cal, routeId, diff, count, status);\r
}\r
- \r
- public static void insert(Context context, Calendar cal, long routeId, long diff, int count, int status) {\r
+\r
+ public static void insert(Context context, Calendar cal, long routeId,\r
+ long diff, int count, int status) {\r
Date date = cal.getTime();\r
\r
int ymd = DateUtil.getYmd(date);\r
@Override\r
public void onException(TwitterException e, TwitterMethod method) {\r
Debug.d(this, null, e);\r
- if (Debug.isDebug()){\r
+ if (Debug.isDebug()) {\r
insert(ERROR_ID, -1, -1, -1);\r
}\r
}\r