<activity android:name=".HistoryConfActivity" />
<activity android:name=".MonitorTimeActivity" />
<activity android:name=".SearchWordActivity" />
-
+
<service android:enabled="true" android:name="com.td.service.TrainDelayedServiceImpl" />
+<!--
+ <service android:enabled="true" android:name="com.td.service.TrainDelayedServiceImpl" android:process=":service" />
+-->
</application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
\ No newline at end of file
import java.util.List;
-import twitter4j.AsyncTwitter;
-import twitter4j.AsyncTwitterFactory;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
public class TrainDelayedActivity extends BaseActivity {
public static final String PREF_TRD_SFLG = "TRD_SFLG";
- private AsyncTwitterFactory factory = new AsyncTwitterFactory();
- private AsyncTwitter twitter = factory.getInstance();
private TextView textView1;
private Button button1;
private Button button2;
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
- final TrainTwitterAdapter listener = new TrainTwitterAdapter(this);
- twitter.addListener(listener);
-
button1 = (Button) this.findViewById(R.id.button01);
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
import twitter4j.TwitterException;\r
import twitter4j.TwitterMethod;\r
import android.content.ContentValues;\r
-import android.content.Context;\r
import android.net.Uri;\r
\r
import com.td.db.Keyword;\r
-import com.td.db.KeywordDao;\r
+import com.td.service.TrainDelayedServiceImpl;\r
import com.td.utility.DateUtil;\r
import com.td.utility.Debug;\r
\r
public class TrainTwitterAdapter extends TwitterAdapter {\r
- private Context context;\r
+ private TrainDelayedServiceImpl context;\r
private Calendar cal;\r
\r
- public TrainTwitterAdapter(Context context) {\r
+ public TrainTwitterAdapter(TrainDelayedServiceImpl context) {\r
this.context = context;\r
}\r
\r
}\r
\r
private boolean filter(String text) {\r
- List<Keyword> keywords = KeywordDao.getInstance().search();\r
-\r
+ List<Keyword> keywords = context.getKeywords();\r
+ if (keywords == null){\r
+ return false;\r
+ }\r
+ \r
for (Keyword keyword : keywords) {\r
if (text.indexOf(keyword.getText()) >= 0) {\r
return true;\r
\r
public void init(SQLiteDatabase db)\r
{\r
- Monitor monitor = new Monitor(600, 800);\r
- int n = 1;\r
- monitor.setWeek(n++, true);\r
- monitor.setWeek(n++, true);\r
- monitor.setWeek(n++, true);\r
- monitor.setWeek(n++, true);\r
- monitor.setWeek(n++, true);\r
- add(db, monitor); \r
+// Monitor monitor = new Monitor(600, 800);\r
+// int n = 1;\r
+// monitor.setWeek(n++, true);\r
+// monitor.setWeek(n++, true);\r
+// monitor.setWeek(n++, true);\r
+// monitor.setWeek(n++, true);\r
+// monitor.setWeek(n++, true);\r
+// add(db, monitor); \r
}\r
\r
public void start(SQLiteDatabase db) {\r
import java.util.Date;\r
import java.util.List;\r
\r
+import com.td.db.Keyword;\r
+import com.td.db.KeywordDao;\r
import com.td.db.Monitor;\r
import com.td.db.MonitorDao;\r
+import com.td.db.Train;\r
+import com.td.db.TrainDao;\r
import com.td.utility.DateUtil;\r
import com.td.utility.Debug;\r
\r
public class Scheduler {\r
private static Calendar cal = Calendar.getInstance();\r
private List<Term>[] list = null;\r
+ private List<Keyword> keywords = null;\r
+ private List<Train> trains = null;\r
private Comparator<Term> comp = new Comparator<Term>(){\r
public int compare(Term t1, Term t2) {\r
return t1.getFrom() - t2.getFrom();\r
\r
}\r
\r
+ public void init(){\r
+ Debug.d(this, "start init");\r
+ makeSchedule();\r
+ makeTrains(); \r
+ makeKeywords(); \r
+ Debug.d(this, "end init");\r
+ }\r
+ \r
public long calcSchedule(long now){\r
Debug.d(this, "start");\r
- makeSchedule();\r
long t = nextSchedule(now);\r
Debug.d(this, "end");\r
return t;\r
if (list != null){\r
return;\r
}\r
- Debug.d(this, "update");\r
+ Debug.d(this, "update schedule");\r
\r
MonitorDao dao = MonitorDao.getInstance();\r
List<Monitor> mList = dao.search();\r
makeSchedule(mList);\r
}\r
\r
+ public void makeTrains(){\r
+ if (trains != null){\r
+ return;\r
+ }\r
+ Debug.d(this, "update trains");\r
+\r
+ TrainDao dao = TrainDao.getInstance();\r
+ trains = dao.search(true); \r
+ }\r
+\r
+ public void makeKeywords(){\r
+ if (keywords != null){\r
+ return;\r
+ }\r
+ Debug.d(this, "update keywords");\r
+\r
+ KeywordDao dao = KeywordDao.getInstance();\r
+ keywords = dao.search();\r
+ }\r
+\r
+ public List<Term>[] getList() {\r
+ return list;\r
+ }\r
+\r
+ public List<Train> getTrains() {\r
+ return trains;\r
+ }\r
+\r
+ public List<Keyword> getKeywords() {\r
+ return keywords;\r
+ }\r
+ \r
public void makeSchedule(List<Monitor> mList){\r
clearSchedule();\r
\r
int to = (to1 > to2)? to1 : to2;\r
return new Term(from, to);\r
}\r
-\r
- public List<Term>[] getList() {\r
- return list;\r
- }\r
-\r
}\r
import com.td.R;\r
import com.td.TrainDelayedActivity;\r
import com.td.TrainTwitterAdapter;\r
+import com.td.db.DatabaseHelper;\r
+import com.td.db.Keyword;\r
import com.td.db.Train;\r
-import com.td.db.TrainDao;\r
import com.td.utility.Debug;\r
import com.td.utility.EditPrefUtil;\r
import com.td.utility.Util;\r
public static final String PREF_SVS_DBFLG = "SVS_DBFLG";\r
public static final String ACTION = TrainDelayedServiceImpl.class\r
.getSimpleName();\r
+ \r
private final IBinder binder = new Binder();\r
private static Scheduler scheduler = null;\r
\r
private EditPrefUtil pref = new EditPrefUtil(this);\r
\r
- // TODO\r
- private AsyncTwitterFactory factory = new AsyncTwitterFactory();\r
+ private static AsyncTwitterFactory factory = new AsyncTwitterFactory();\r
private AsyncTwitter twitter = factory.getInstance();\r
private TrainTwitterAdapter listener = new TrainTwitterAdapter(this);\r
\r
try {\r
Debug.d(this, "run() " + id);\r
\r
- TrainDao trainDao = TrainDao.getInstance();\r
- List<Train> list = trainDao.search(true);\r
+ if (scheduler == null){\r
+ return;\r
+ }\r
+ List<Train> list = scheduler.getTrains();\r
+ if (list == null){\r
+ return;\r
+ }\r
\r
Calendar cal = Calendar.getInstance();\r
listener.setCalender(cal);\r
Debug.d(this, "id=" + id);\r
synchronized (binder) {\r
try {\r
+ int prefDBFlag = pref.getInt(PREF_SVS_DBFLG, 0);\r
+ if (!Util.toBoolean(prefDBFlag)){\r
+ pref.put(PREF_SVS_DBFLG, 1);\r
+ pref.update();\r
+ scheduler = null;\r
+ }\r
+\r
+ if (scheduler == null){\r
+ scheduler = new Scheduler();\r
+ DatabaseHelper.init(getApplicationContext());\r
+ }\r
+ scheduler.init();\r
schedule(-1);\r
} catch (Exception e) {\r
// TODO\r
Debug.d(this, null, e);\r
}\r
}\r
-\r
- int prefDBFlag = pref.getInt(PREF_SVS_DBFLG, 0);\r
- if (!Util.toBoolean(prefDBFlag)){\r
- pref.put(PREF_SVS_DBFLG, 1);\r
- pref.update();\r
- scheduler = null;\r
- }\r
\r
- if (scheduler == null){\r
- scheduler = new Scheduler();\r
- }\r
long next = scheduler.calcSchedule(now);\r
\r
// \8e\9f\89ñ\8bN\93®\93o\98^\r
// \8dÄ\93x\83N\83\89\83C\83A\83\93\83g\82©\82ç\90Ú\91±\82³\82ê\82½\8dÛ\82É onRebind \82ð\8cÄ\82Ñ\8fo\82³\82¹\82é\8fê\8d\87\82Í true \82ð\95Ô\82·\r
return true;\r
}\r
+\r
+ public List<Keyword> getKeywords() {\r
+ if (scheduler == null){\r
+ return null;\r
+ }\r
+ return scheduler.getKeywords();\r
+ }\r
}\r