OSDN Git Service

遅延通知まわり作り込
authorYuji Konishi <yuji.k64613@gmail.com>
Sat, 13 Aug 2011 05:03:54 +0000 (14:03 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Sat, 13 Aug 2011 05:03:54 +0000 (14:03 +0900)
12 files changed:
workspace/TrainDelayed/AndroidManifest.xml
workspace/TrainDelayed/gen/com/td/R.java
workspace/TrainDelayed/res/layout/main.xml
workspace/TrainDelayed/src/com/td/HistoryActivity.java
workspace/TrainDelayed/src/com/td/HistoryConfActivity.java
workspace/TrainDelayed/src/com/td/HistoryListActivity.java
workspace/TrainDelayed/src/com/td/TrainDelayedActivity.java
workspace/TrainDelayed/src/com/td/TrainDelayedActivityTest.java [new file with mode: 0644]
workspace/TrainDelayed/src/com/td/broadcast/DelayReceiver.java
workspace/TrainDelayed/src/com/td/service/TrainDelayedServiceImpl.java
workspace/TrainDelayed/src/com/td/service/TrainTwitterAdapter.java
workspace/TrainDelayed/src/com/td/utility/StringMap.java [new file with mode: 0644]

index 6fc685c..cb1de2d 100644 (file)
@@ -39,6 +39,8 @@
                                <action android:name="com.td.broadcast.DelayReceiver.DEBUG" />
                                <action android:name="com.td.broadcast.DelayReceiver.START_SERVICE" />
                                <action android:name="com.td.broadcast.DelayReceiver.STOP_SERVICE" />
+                               <action android:name="com.td.broadcast.DelayReceiver.UPDATE" />
+                               <action android:name="com.td.broadcast.DelayReceiver.DELAY" />
                        </intent-filter>
                </receiver>
     </application>
index bbd0003..3bcbb2c 100644 (file)
@@ -17,21 +17,21 @@ public final class R {
     }\r
     public static final class id {\r
         public static final int LinearLayout24=0x7f050005;\r
-        public static final int LinearLayout34=0x7f05005d;\r
-        public static final int LinearLayout64=0x7f050042;\r
+        public static final int LinearLayout34=0x7f05005f;\r
+        public static final int LinearLayout64=0x7f050044;\r
         public static final int LinearLayout74=0x7f050016;\r
-        public static final int LinearLayout84=0x7f05004f;\r
+        public static final int LinearLayout84=0x7f050051;\r
         public static final int LinearLayout94=0x7f05001d;\r
         public static final int LinearLayoutb4=0x7f05000a;\r
-        public static final int button01=0x7f050026;\r
-        public static final int button02=0x7f050028;\r
-        public static final int button03=0x7f05002a;\r
-        public static final int button04=0x7f05002c;\r
-        public static final int button05=0x7f05002e;\r
-        public static final int button06=0x7f050030;\r
-        public static final int button07=0x7f050032;\r
-        public static final int button09=0x7f050036;\r
-        public static final int button0z=0x7f050034;\r
+        public static final int button01=0x7f050028;\r
+        public static final int button02=0x7f05002a;\r
+        public static final int button03=0x7f05002c;\r
+        public static final int button04=0x7f05002e;\r
+        public static final int button05=0x7f050030;\r
+        public static final int button06=0x7f050032;\r
+        public static final int button07=0x7f050034;\r
+        public static final int button09=0x7f050038;\r
+        public static final int button0z=0x7f050036;\r
         public static final int button11=0x7f050010;\r
         public static final int button12=0x7f050011;\r
         public static final int button13=0x7f050012;\r
@@ -39,69 +39,70 @@ public final class R {
         public static final int button22=0x7f050003;\r
         public static final int button23=0x7f050004;\r
         public static final int button29=0x7f050006;\r
-        public static final int button31=0x7f05005e;\r
-        public static final int button32=0x7f05005f;\r
-        public static final int button33=0x7f05005c;\r
-        public static final int button41=0x7f05004b;\r
-        public static final int button51=0x7f050062;\r
-        public static final int button61=0x7f050043;\r
-        public static final int button62=0x7f050044;\r
-        public static final int button63=0x7f050045;\r
-        public static final int button64=0x7f050046;\r
-        public static final int button65=0x7f050047;\r
-        public static final int button66=0x7f050048;\r
+        public static final int button31=0x7f050060;\r
+        public static final int button32=0x7f050061;\r
+        public static final int button33=0x7f05005e;\r
+        public static final int button41=0x7f05004d;\r
+        public static final int button51=0x7f050064;\r
+        public static final int button61=0x7f050045;\r
+        public static final int button62=0x7f050046;\r
+        public static final int button63=0x7f050047;\r
+        public static final int button64=0x7f050048;\r
+        public static final int button65=0x7f050049;\r
+        public static final int button66=0x7f05004a;\r
         public static final int button71=0x7f050017;\r
         public static final int button72=0x7f050018;\r
-        public static final int button81=0x7f050050;\r
-        public static final int button82=0x7f050051;\r
-        public static final int button83=0x7f050052;\r
-        public static final int button84=0x7f050053;\r
-        public static final int button85=0x7f050054;\r
-        public static final int button86=0x7f050055;\r
+        public static final int button81=0x7f050052;\r
+        public static final int button82=0x7f050053;\r
+        public static final int button83=0x7f050054;\r
+        public static final int button84=0x7f050055;\r
+        public static final int button85=0x7f050056;\r
+        public static final int button86=0x7f050057;\r
         public static final int button91=0x7f05001e;\r
         public static final int button92=0x7f05001f;\r
-        public static final int buttona1=0x7f050068;\r
+        public static final int buttona1=0x7f05006a;\r
         public static final int buttonb8=0x7f05000b;\r
         public static final int buttonb9=0x7f05000c;\r
         public static final int checkBox=0x7f050000;\r
-        public static final int checkBox31=0x7f05005a;\r
-        public static final int checkBox32=0x7f05005b;\r
-        public static final int checkBox61=0x7f050039;\r
-        public static final int checkBox62=0x7f05003a;\r
-        public static final int checkBox63=0x7f05003b;\r
-        public static final int checkBox64=0x7f05003c;\r
-        public static final int checkBox65=0x7f05003d;\r
-        public static final int checkBox66=0x7f05003e;\r
-        public static final int checkBox67=0x7f05003f;\r
-        public static final int editText31=0x7f050058;\r
-        public static final int editText32=0x7f050059;\r
-        public static final int editText61=0x7f050040;\r
-        public static final int editText62=0x7f050041;\r
+        public static final int checkBox31=0x7f05005c;\r
+        public static final int checkBox32=0x7f05005d;\r
+        public static final int checkBox61=0x7f05003b;\r
+        public static final int checkBox62=0x7f05003c;\r
+        public static final int checkBox63=0x7f05003d;\r
+        public static final int checkBox64=0x7f05003e;\r
+        public static final int checkBox65=0x7f05003f;\r
+        public static final int checkBox66=0x7f050040;\r
+        public static final int checkBox67=0x7f050041;\r
+        public static final int editText31=0x7f05005a;\r
+        public static final int editText32=0x7f05005b;\r
+        public static final int editText61=0x7f050042;\r
+        public static final int editText62=0x7f050043;\r
         public static final int editText71=0x7f050014;\r
         public static final int editText72=0x7f050015;\r
-        public static final int editText81=0x7f05004e;\r
+        public static final int editText81=0x7f050050;\r
         public static final int historyView11=0x7f05000f;\r
-        public static final int imageView1=0x7f050063;\r
+        public static final int imageView1=0x7f050065;\r
         public static final int linearLayout00=0x7f050022;\r
-        public static final int linearLayout01=0x7f050025;\r
-        public static final int linearLayout02=0x7f050027;\r
-        public static final int linearLayout03=0x7f050029;\r
-        public static final int linearLayout04=0x7f05002b;\r
-        public static final int linearLayout05=0x7f05002d;\r
-        public static final int linearLayout06=0x7f05002f;\r
-        public static final int linearLayout07=0x7f050031;\r
-        public static final int linearLayout09=0x7f050035;\r
-        public static final int linearLayout0z=0x7f050033;\r
-        public static final int linearLayout30=0x7f050056;\r
-        public static final int linearLayouta0=0x7f050065;\r
-        public static final int listView61=0x7f050037;\r
-        public static final int listView81=0x7f05004d;\r
+        public static final int linearLayout001=0x7f050024;\r
+        public static final int linearLayout01=0x7f050027;\r
+        public static final int linearLayout02=0x7f050029;\r
+        public static final int linearLayout03=0x7f05002b;\r
+        public static final int linearLayout04=0x7f05002d;\r
+        public static final int linearLayout05=0x7f05002f;\r
+        public static final int linearLayout06=0x7f050031;\r
+        public static final int linearLayout07=0x7f050033;\r
+        public static final int linearLayout09=0x7f050037;\r
+        public static final int linearLayout0z=0x7f050035;\r
+        public static final int linearLayout30=0x7f050058;\r
+        public static final int linearLayouta0=0x7f050067;\r
+        public static final int listView61=0x7f050039;\r
+        public static final int listView81=0x7f05004f;\r
         public static final int listView91=0x7f05001c;\r
-        public static final int menu41=0x7f05004a;\r
-        public static final int menu51=0x7f050061;\r
-        public static final int scrollView01=0x7f050024;\r
+        public static final int menu41=0x7f05004c;\r
+        public static final int menu51=0x7f050063;\r
+        public static final int scrollView01=0x7f050026;\r
         public static final int scrollView11=0x7f05000e;\r
-        public static final int scrollView61=0x7f050038;\r
+        public static final int scrollView61=0x7f05003a;\r
         public static final int spinner71=0x7f050013;\r
         public static final int spinner91=0x7f05001a;\r
         public static final int spinnerb1=0x7f050007;\r
@@ -110,17 +111,18 @@ public final class R {
         public static final int text2=0x7f050001;\r
         public static final int text911=0x7f050020;\r
         public static final int text912=0x7f050021;\r
-        public static final int textView01=0x7f050023;\r
-        public static final int textView1=0x7f050064;\r
+        public static final int textView00=0x7f050023;\r
+        public static final int textView01=0x7f050025;\r
+        public static final int textView1=0x7f050066;\r
         public static final int textView11=0x7f05000d;\r
-        public static final int textView31=0x7f050057;\r
-        public static final int textView41=0x7f050049;\r
-        public static final int textView51=0x7f050060;\r
-        public static final int textView81=0x7f05004c;\r
+        public static final int textView31=0x7f050059;\r
+        public static final int textView41=0x7f05004b;\r
+        public static final int textView51=0x7f050062;\r
+        public static final int textView81=0x7f05004e;\r
         public static final int textView91=0x7f050019;\r
         public static final int textView92=0x7f05001b;\r
-        public static final int textViewa1=0x7f050066;\r
-        public static final int waitViewa1=0x7f050067;\r
+        public static final int textViewa1=0x7f050068;\r
+        public static final int waitViewa1=0x7f050069;\r
     }\r
     public static final class layout {\r
         public static final int check_list_item_1=0x7f030000;\r
index feddddd..5001f6e 100644 (file)
@@ -7,6 +7,20 @@
 <LinearLayout
         android:id="@+id/linearLayout00"
         android:layout_height="wrap_content"
+        android:background="#996666"
+        android:padding="3dip"
+        android:layout_width="fill_parent">
+       <TextView android:text="none"
+               android:textAppearance="?android:attr/textAppearanceMedium"
+        android:background="#cc9999"
+               android:id="@+id/textView00"
+               android:layout_width="fill_parent"
+               android:layout_height="wrap_content">
+               </TextView>
+</LinearLayout>
+<LinearLayout
+        android:id="@+id/linearLayout001"
+        android:layout_height="wrap_content"
         android:background="#999999"
         android:padding="3dip"
         android:layout_width="fill_parent">
index 9d95c7c..d8bf4fd 100644 (file)
@@ -70,16 +70,17 @@ public class HistoryActivity extends BaseActivity {
                                public void onClick(View view) {\r
                                        Intent intent = new Intent(HistoryActivity.this,\r
                                                        (Class<?>) HistoryListActivity.class);\r
-                                       startActivityForResult(intent, -1);\r
+                                       startActivityForResult(intent, 0);\r
                                }\r
                        });\r
 \r
                        Button button2 = (Button) findViewById(R.id.button12);\r
                        button2.setOnClickListener(new OnClickListener() {\r
                                public void onClick(View view) {\r
+                                       HistoryConfActivity.init(HistoryActivity.this);\r
                                        Intent intent = new Intent(HistoryActivity.this,\r
                                                        (Class<?>) HistoryConfActivity.class);\r
-                                       startActivityForResult(intent, -1);\r
+                                       startActivityForResult(intent, 0);\r
                                }\r
                        });\r
 \r
@@ -128,10 +129,11 @@ public class HistoryActivity extends BaseActivity {
 \r
                        int H = 3;\r
                        \r
-                       String data = pref.get(PREF_HIS_DATA);\r
-                       if (data != null){\r
-                               pref.restore(PREF_HIS_DATA);\r
-                       }\r
+                       // TODO\r
+//                     String data = pref.get(PREF_HIS_DATA);\r
+//                     if (data != null){\r
+//                             pref.restore(PREF_HIS_DATA);\r
+//                     }\r
 \r
                        prefEnHour = pref.getInt(PREF_HIS_EN_HOUR, date.getHours());\r
                        prefEnMinute = pref.getInt(PREF_HIS_EN_MINUTE, date.getMinutes());\r
@@ -216,12 +218,22 @@ public class HistoryActivity extends BaseActivity {
        protected void onStop() {\r
                super.onStop();\r
                \r
-               pref.save(PREF_HIS_DATA);\r
+               // TODO\r
+//             pref.save(PREF_HIS_DATA);\r
        }\r
 \r
        @Override\r
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {\r
                super.onActivityResult(requestCode, resultCode, data);\r
+               \r
+               switch (resultCode){\r
+               case RESULT_OK:\r
+                       // \90Ý\92è\82ª\95Ï\8dX\82³\82ê\82½\82Ì\82Å\81A\92l\82ð\93Ç\82Ý\92¼\82·\r
+                       pref.remove(PREF_HIS_DATA);\r
+                       break;\r
+               case RESULT_CANCELED:\r
+                       break;\r
+               }\r
        }\r
 \r
        public static void init(Context context) {\r
index 3f54f62..41c22dc 100644 (file)
@@ -4,7 +4,7 @@ import java.util.Calendar;
 import java.util.Date;\r
 \r
 import android.app.TimePickerDialog;\r
-import android.content.Intent;\r
+import android.content.Context;\r
 import android.os.Bundle;\r
 import android.view.View;\r
 import android.view.View.OnClickListener;\r
@@ -17,34 +17,34 @@ import android.widget.Spinner;
 import android.widget.TimePicker;\r
 \r
 import com.td.utility.BaseActivity;\r
-import com.td.utility.Const;\r
 import com.td.utility.DateUtil;\r
 import com.td.utility.EditPrefUtil;\r
 import com.td.utility.FormattedDate;\r
 \r
 public class HistoryConfActivity extends BaseActivity {\r
        private EditPrefUtil pref = new EditPrefUtil(this);\r
+       private Spinner spinner1;\r
+       private EditText editText1;\r
+       private EditText editText2;\r
+       private FormattedDate[] weeks;\r
 \r
        @Override\r
     public void onCreate(Bundle savedInstanceState) {\r
         super.onCreate(savedInstanceState);\r
         setContentView(R.layout.history_conf);\r
 \r
-        int prefStHour = pref.getInt(HistoryActivity.PREF_HIS_ST_HOUR);\r
-        int prefStMinute = pref.getInt(HistoryActivity.PREF_HIS_ST_MINUTE);\r
-        int prefEnHour = pref.getInt(HistoryActivity.PREF_HIS_EN_HOUR);\r
-        int prefEnMinute = pref.getInt(HistoryActivity.PREF_HIS_EN_MINUTE);\r
-        int prefYmdPos = pref.getInt(HistoryActivity.PREF_HIS_YMD_POS);\r
-\r
         Calendar cal;\r
         Date date;\r
         \r
         cal = Calendar.getInstance();\r
         date = cal.getTime();\r
-        Spinner spinner1 = (Spinner) findViewById(R.id.spinner71);\r
+        spinner1 = (Spinner) findViewById(R.id.spinner71);\r
                spinner1.setOnItemSelectedListener(new OnItemSelectedListener(){\r
                        public void onItemSelected(AdapterView<?> parent, View view,\r
                                        int position, long id) {\r
+                               Date d = weeks[position].getDate();\r
+                               int ymd = DateUtil.getYmd(d);\r
+                               pref.put(HistoryActivity.PREF_HIS_YMD, ymd);\r
                                pref.put(HistoryActivity.PREF_HIS_YMD_POS, position);\r
                        }\r
                        \r
@@ -52,19 +52,18 @@ public class HistoryConfActivity extends BaseActivity {
                                ;\r
                        }\r
                });\r
-               FormattedDate[] week = new FormattedDate[DateUtil.WEEK];\r
+               weeks = new FormattedDate[DateUtil.WEEK];\r
                for (int i = 0; i < DateUtil.WEEK; i++){\r
-                       week[DateUtil.WEEK - (i + 1)] = new FormattedDate(date);\r
+                       weeks[DateUtil.WEEK - (i + 1)] = new FormattedDate(date);\r
                        cal.add(Calendar.DATE, -1);\r
                        date = cal.getTime();\r
                }\r
                ArrayAdapter<FormattedDate> adapter1 = new ArrayAdapter<FormattedDate>(\r
-                               this, android.R.layout.simple_spinner_item, week);\r
+                               this, android.R.layout.simple_spinner_item, weeks);\r
                adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);\r
                spinner1.setAdapter(adapter1);\r
-               spinner1.setSelection(prefYmdPos);\r
         \r
-        final EditText editText1 = (EditText) findViewById(R.id.editText71);\r
+        editText1 = (EditText) findViewById(R.id.editText71);\r
                editText1.setOnClickListener(new OnClickListener(){\r
                        public void onClick(View view) {\r
                                String t = editText1.getText().toString();\r
@@ -88,10 +87,8 @@ public class HistoryConfActivity extends BaseActivity {
                                                }, hour, minute, true);\r
                                timePickerDialog.show();\r
                        }});\r
-               editText1.setText(DateUtil.formattedHm(DateUtil.getHm(prefStHour,\r
-                               prefStMinute)));\r
                \r
-        final EditText editText2 = (EditText) findViewById(R.id.editText72);\r
+        editText2 = (EditText) findViewById(R.id.editText72);\r
                editText2.setOnClickListener(new OnClickListener(){\r
                        public void onClick(View view) {\r
                                String t = editText2.getText().toString();\r
@@ -115,15 +112,13 @@ public class HistoryConfActivity extends BaseActivity {
                                                }, hour, minute, true);\r
                                timePickerDialog.show();\r
                        }});\r
-               editText2.setText(DateUtil.formattedHm(DateUtil.getHm(prefEnHour,\r
-                               prefEnMinute)));\r
 \r
                Button button1 = (Button) this.findViewById(R.id.button71);\r
                button1.setOnClickListener(new OnClickListener() {\r
                        public void onClick(View view) {\r
                                pref.update();\r
                                \r
-                       setResult(Const.OK);\r
+                               HistoryConfActivity.this.setResult(RESULT_OK);\r
                        HistoryConfActivity.this.finish();\r
                        }\r
                });\r
@@ -131,16 +126,48 @@ public class HistoryConfActivity extends BaseActivity {
                Button button2 = (Button) this.findViewById(R.id.button72);\r
                button2.setOnClickListener(new OnClickListener() {\r
                        public void onClick(View view) {\r
-                       setResult(Const.CANCEL);\r
+                               HistoryConfActivity.this.setResult(RESULT_CANCELED);\r
                                HistoryConfActivity.this.finish();\r
                        }\r
                });\r
        }\r
 \r
+    @Override\r
+       protected void onStart() {\r
+               super.onStart();\r
+               \r
+               String data = pref.get(HistoryActivity.PREF_HIS_DATA);\r
+               if (data != null){\r
+                       pref.restore(HistoryActivity.PREF_HIS_DATA);\r
+               }\r
+        int prefStHour = pref.getInt(HistoryActivity.PREF_HIS_ST_HOUR);\r
+        int prefStMinute = pref.getInt(HistoryActivity.PREF_HIS_ST_MINUTE);\r
+        int prefEnHour = pref.getInt(HistoryActivity.PREF_HIS_EN_HOUR);\r
+        int prefEnMinute = pref.getInt(HistoryActivity.PREF_HIS_EN_MINUTE);\r
+        int prefYmdPos = pref.getInt(HistoryActivity.PREF_HIS_YMD_POS);\r
+\r
+               spinner1.setSelection(prefYmdPos);\r
+               editText1.setText(DateUtil.formattedHm(DateUtil.getHm(prefStHour,\r
+                               prefStMinute)));\r
+               editText2.setText(DateUtil.formattedHm(DateUtil.getHm(prefEnHour,\r
+                               prefEnMinute)));\r
+               \r
+    }\r
+    \r
        @Override\r
        protected void onStop() {\r
-               pref.update();\r
+               // TODO\r
+               //pref.update();\r
+               pref.save(HistoryActivity.PREF_HIS_DATA);\r
                \r
                super.onStop();\r
        }\r
+       \r
+       public static void init(Context context) {\r
+               EditPrefUtil pref = new EditPrefUtil(context);\r
+\r
+               pref.remove(HistoryActivity.PREF_HIS_DATA);\r
+               \r
+               pref.update();\r
+       }       \r
 }\r
index 2dd9015..4f6a8be 100644 (file)
@@ -48,6 +48,7 @@ public class HistoryListActivity extends BaseActivity {
                \r
                button1.setOnClickListener(new OnClickListener(){\r
                        public void onClick(View view) {\r
+                               HistoryConfActivity.init(HistoryListActivity.this);\r
                                Intent intent = new Intent(HistoryListActivity.this,\r
                                                (Class<?>) HistoryConfActivity.class);\r
                                startActivityForResult(intent, 0);\r
@@ -99,16 +100,19 @@ public class HistoryListActivity extends BaseActivity {
                }\r
        }\r
 \r
-       // TODO\r
-//    @Override  \r
-//    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {  \r
-//     super.onActivityResult(requestCode, resultCode, intent);  \r
-//     \r
-//     // requestCode = -1\r
-//     if (resultCode == Const.OK){\r
-//             updateList();\r
-//     }\r
-//    }\r
+       @Override\r
+       protected void onActivityResult(int requestCode, int resultCode, Intent data) {\r
+               super.onActivityResult(requestCode, resultCode, data);\r
+               \r
+               switch (resultCode){\r
+               case RESULT_OK:\r
+                       // \90Ý\92è\82ª\95Ï\8dX\82³\82ê\82½\82Ì\82Å\81A\92l\82ð\93Ç\82Ý\92¼\82·\r
+                       pref.remove(HistoryActivity.PREF_HIS_DATA);\r
+                       break;\r
+               case RESULT_CANCELED:\r
+                       break;\r
+               }\r
+       }\r
     \r
        private void updateList(){\r
                int ymd = pref.getInt(HistoryActivity.PREF_HIS_YMD);\r
index 972b7eb..fe7183f 100644 (file)
@@ -1,6 +1,9 @@
 package com.td;
 
+import java.util.Calendar;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
 import android.app.AlarmManager;
 import android.app.AlertDialog;
@@ -34,9 +37,14 @@ import com.td.utility.Debug;
 import com.td.utility.EditPrefUtil;
 import com.td.utility.StatusFlag;
 import com.td.utility.StatusFlagTest;
+import com.td.utility.StringMap;
 import com.td.wait.TrainServiceWaiting;
 
 public class TrainDelayedActivity extends BaseActivity implements TrainDelayedService {
+       public static final String PREF_TRD_DELAY = "TRD_DELAY";
+       public static final String PREF_TRD_DELAY_MSG = "TRD_DELAY_MSG";
+       
+       private TextView textView0;
        private TextView textView1;
        private Button button1;
        private Button button2;
@@ -47,6 +55,7 @@ public class TrainDelayedActivity extends BaseActivity implements TrainDelayedSe
        private Button button7;
        private Button button9;
        private Button buttonz;
+       private LinearLayout linearLayout0;
        private LinearLayout linearLayout1;
        private LinearLayout linearLayout2;
        private LinearLayout linearLayout3;
@@ -80,6 +89,11 @@ public class TrainDelayedActivity extends BaseActivity implements TrainDelayedSe
                        else if (action.compareTo(DelayReceiver.UPDATE) == 0){
                                setStatus();
                        }
+                       else if (action.compareTo(DelayReceiver.DELAY) == 0){
+                               updateDelay(intent);
+                               
+                               setStatus();
+                       }
                }               
        };
        
@@ -92,6 +106,7 @@ public class TrainDelayedActivity extends BaseActivity implements TrainDelayedSe
                intentFilter.addAction(DelayReceiver.START_SERVICE);
                intentFilter.addAction(DelayReceiver.STOP_SERVICE);
                intentFilter.addAction(DelayReceiver.UPDATE);
+               intentFilter.addAction(DelayReceiver.DELAY);
                registerReceiver(receiver, intentFilter);
              
                button1 = (Button) this.findViewById(R.id.button01);
@@ -267,6 +282,7 @@ public class TrainDelayedActivity extends BaseActivity implements TrainDelayedSe
                        buttonz.setVisibility(View.GONE);
                }
 
+               linearLayout0 = (LinearLayout) this.findViewById(R.id.linearLayout00);
                linearLayout1 = (LinearLayout) this.findViewById(R.id.linearLayout01);
                linearLayout2 = (LinearLayout) this.findViewById(R.id.linearLayout02);
                linearLayout3 = (LinearLayout) this.findViewById(R.id.linearLayout03);
@@ -276,7 +292,11 @@ public class TrainDelayedActivity extends BaseActivity implements TrainDelayedSe
                linearLayout7 = (LinearLayout) this.findViewById(R.id.linearLayout07);
                linearLayout9 = (LinearLayout) this.findViewById(R.id.linearLayout09);
                
+               textView0 = (TextView) this.findViewById(R.id.textView00);      
                textView1 = (TextView) this.findViewById(R.id.textView01);      
+               
+               // TODO
+               linearLayout0.setVisibility(View.GONE);
        }
 
        @Override
@@ -295,6 +315,79 @@ public class TrainDelayedActivity extends BaseActivity implements TrainDelayedSe
                setStatus();
        }
 
+       public void updateDelay(Intent intent){
+               StringMap map = new StringMap();
+               String data = pref.get(PREF_TRD_DELAY);
+               if (data != null){
+                       map.setData(data);
+               }
+               Calendar cal = Calendar.getInstance();
+               long t = cal.getTimeInMillis();
+               
+               long id = intent.getLongExtra("ID", -1);
+               map.put(String.valueOf(id), String.valueOf(t));
+               
+               data = map.getData();
+               pref.put(PREF_TRD_DELAY, data);
+               pref.update();          
+       }
+       
+       public boolean updateDelayMsg(){
+               Calendar cal = Calendar.getInstance();
+               long t = cal.getTimeInMillis();
+               
+               return updateDelayMsg(t);
+       }
+       
+       public boolean updateDelayMsg(long t){
+               StringMap map = new StringMap();
+               String data = pref.get(PREF_TRD_DELAY);
+               if (data != null){
+                       map.setData(data);
+               }
+
+               Set<String> ks = map.keySet();
+               for (Iterator<String> it = ks.iterator(); it.hasNext(); ){
+                       String key = it.next();
+                       String value = map.get(key);
+                       long dt = Long.valueOf(value);
+                       
+                       if (t - dt > 5 * 60 * 1000){ // 5\95ª
+                               map.remove(key);
+                       }
+               }
+               
+               StringBuffer sb = new StringBuffer();
+               TrainDao dao = TrainDao.getInstance();
+               for (Iterator<String> it = ks.iterator(); it.hasNext(); ){
+                       String key = it.next();
+                       
+                       long id = Long.valueOf(key);
+                       Train train = dao.searchById(id);
+                       if (train != null){
+                               if (sb.length() > 0){
+                                       sb.append("\81A");
+                               }
+                               sb.append(train.getName());
+                       }
+               }
+               if (sb.length() > 0){
+                       sb.append("\82ª\92x\89\84\82µ\82Ä\82¢\82é\82©\82à\82µ\82ê\82Ü\82¹\82ñ\81B\8fÚ\8d×\82Í\81A\97\9a\97ð\82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢");
+                       
+                       String text = sb.toString();
+                       pref.put(PREF_TRD_DELAY_MSG, text);
+                       
+                       textView0.setTag(text);
+                       
+                       return true;
+               }
+               else {
+                       pref.remove(PREF_TRD_DELAY_MSG);
+                       return false;
+               }
+               
+       }
+       
        private void setStatus() {
                String text = "";
                prefSvsStatus = pref.getInt(TrainDelayedServiceImpl.PREF_SVS_STATUS, 0);
@@ -425,6 +518,15 @@ public class TrainDelayedActivity extends BaseActivity implements TrainDelayedSe
                        break;
                }
 
+               boolean msgFlag = updateDelayMsg();
+               if (msgFlag){
+                       linearLayout0.setVisibility(View.VISIBLE);
+                       color6 = c1;                    
+               }
+               else {
+                       linearLayout0.setVisibility(View.GONE);                 
+               }
+               
                textView1.setText(text);
                linearLayout1.setBackgroundColor(color1);
                linearLayout2.setBackgroundColor(color2);
@@ -437,7 +539,7 @@ public class TrainDelayedActivity extends BaseActivity implements TrainDelayedSe
        }
        
        private void debug(){
-               int n = 6;
+               int n = 7;
                
                switch (n){
                case 1:
@@ -467,6 +569,9 @@ public class TrainDelayedActivity extends BaseActivity implements TrainDelayedSe
                case 6:
                        TrainTwitterAdapterTest.main(this);
                        break;
+               case 7:
+                       TrainDelayedActivityTest.main(this);
+                       break;
                default:
                        break;
                }
diff --git a/workspace/TrainDelayed/src/com/td/TrainDelayedActivityTest.java b/workspace/TrainDelayed/src/com/td/TrainDelayedActivityTest.java
new file mode 100644 (file)
index 0000000..51621e8
--- /dev/null
@@ -0,0 +1,24 @@
+package com.td;\r
+\r
+import android.content.Context;\r
+\r
+import com.td.test.TestException;\r
+import com.td.utility.Debug;\r
+\r
+public class TrainDelayedActivityTest {\r
+       public static void main(Context context) {\r
+               TrainDelayedActivityTest obj = new TrainDelayedActivityTest();\r
+\r
+               Debug.i(obj, "start");\r
+               try {\r
+                       test_updateDelay();\r
+               } catch (TestException e) {\r
+                       Debug.i(obj, null, e);\r
+               }\r
+               Debug.i(obj, "end");\r
+       }\r
+\r
+       public static void test_updateDelay() throws TestException{\r
+       \r
+       }\r
+}\r
index 9ea4a0f..f3c6cfb 100644 (file)
@@ -7,6 +7,7 @@ import android.os.Bundle;
 import android.widget.Toast;\r
 \r
 public class DelayReceiver extends BroadcastReceiver {\r
+       public static String DELAY = "com.td.broadcast.DelayReceiver.DELAY";\r
        public static String DEBUG = "com.td.broadcast.DelayReceiver.DEBUG";\r
        public static String START_SERVICE = "com.td.broadcast.DelayReceiver.START_SERVICE";\r
        public static String STOP_SERVICE = "com.td.broadcast.DelayReceiver.STOP_SERVICE";\r
@@ -29,5 +30,8 @@ public class DelayReceiver extends BroadcastReceiver {
                else if (action.equals(UPDATE)){\r
                        ;\r
                }\r
+               else if (action.equals(DELAY)){\r
+                       ;\r
+               }\r
        }\r
 }\r
index 6c1f97a..7f92203 100644 (file)
@@ -96,7 +96,7 @@ public class TrainDelayedServiceImpl extends Service implements TrainDelayedServ
                        Notification notification = new Notification(icon, tickerText, when);\r
 \r
                        Context context = getApplicationContext();\r
-                       CharSequence contentTitle = "My notification"; // TODO\r
+                       CharSequence contentTitle = "\93d\8eÔ\82ª\92x\82ê\82Ä\82é?"; // TODO\r
                        CharSequence contentText = msg;\r
                        Intent notificationIntent = new Intent(this,\r
                                        TrainDelayedActivity.class);\r
@@ -105,7 +105,7 @@ public class TrainDelayedServiceImpl extends Service implements TrainDelayedServ
                        notification.setLatestEventInfo(context, contentTitle, contentText,\r
                                        contentIntent);\r
 \r
-                       int HELLO_ID = 1;\r
+                       int HELLO_ID = 1; // TODO\r
                        mNotificationManager.notify(HELLO_ID, notification);\r
                } catch (Exception e) {\r
                        Debug.d(this, null, e);\r
index 4e5eff8..4577c8f 100644 (file)
@@ -11,9 +11,11 @@ import twitter4j.TwitterException;
 import twitter4j.TwitterMethod;\r
 import android.content.ContentValues;\r
 import android.content.Context;\r
+import android.content.Intent;\r
 import android.net.Uri;\r
 \r
 import com.td.HistoryContentProvider;\r
+import com.td.broadcast.DelayReceiver;\r
 import com.td.db.Keyword;\r
 import com.td.db.Train;\r
 import com.td.utility.ConfUtil;\r
@@ -180,6 +182,10 @@ public class TrainTwitterAdapter extends TwitterAdapter {
                        // \92x\89\84\82ð\92Ê\92m\r
                        if (impl != null) {\r
                                impl.notificate(train.getName());\r
+                               \r
+                               Intent intent = new Intent(DelayReceiver.DELAY);\r
+                               intent.putExtra("ID", delay.getId());\r
+                               impl.getContext().sendBroadcast(intent);\r
                        }\r
                }\r
                pref.update();\r
diff --git a/workspace/TrainDelayed/src/com/td/utility/StringMap.java b/workspace/TrainDelayed/src/com/td/utility/StringMap.java
new file mode 100644 (file)
index 0000000..32e4b5d
--- /dev/null
@@ -0,0 +1,36 @@
+package com.td.utility;\r
+\r
+import java.util.HashMap;\r
+import java.util.Iterator;\r
+import java.util.Map.Entry;\r
+import java.util.Set;\r
+\r
+public class StringMap extends HashMap<String, String> {\r
+       private final String DELM = "\t";\r
+       \r
+       public String getData(){\r
+               StringBuffer sb = new StringBuffer();\r
+               Set<Entry<String, String>> s = this.entrySet();\r
+               for (Iterator<Entry<String, String>> it = s.iterator(); it.hasNext(); ){\r
+                       Entry<String, String> ent = it.next();\r
+                       String key = ent.getKey();\r
+                       String value = ent.getValue();\r
+                       sb.append(key);\r
+                       sb.append(DELM);\r
+                       sb.append(value);\r
+                       sb.append(DELM);\r
+               }\r
+               return sb.toString();\r
+       }\r
+       \r
+       public void setData(String data){\r
+               this.clear();\r
+               \r
+               String[] str = data.split(DELM);\r
+               for (int i = 0; i < str.length / 2; i++){\r
+                       String key = str[i * 2];\r
+                       String value = str[i * 2 + 1];\r
+                       this.put(key, value);\r
+               }\r
+       }\r
+}\r