OSDN Git Service

StatusFlagクラス作成 wait
authorYuji Konishi <yuji.k64613@gmail.com>
Sun, 31 Jul 2011 12:21:13 +0000 (21:21 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Sun, 31 Jul 2011 12:21:13 +0000 (21:21 +0900)
workspace/TrainDelayed/res/layout/train_edit.xml
workspace/TrainDelayed/src/com/td/TrainDelayedActivity.java
workspace/TrainDelayed/src/com/td/TrainEditActivity.java
workspace/TrainDelayed/src/com/td/utility/DateUtil.java
workspace/TrainDelayed/src/com/td/utility/StatusFlag.java [new file with mode: 0644]
workspace/TrainDelayed/src/com/td/utility/StatusFlagTest.java [new file with mode: 0644]
workspace/TrainDelayed/src/com/td/utility/TdException.java

index 14d7629..285592e 100644 (file)
@@ -19,7 +19,7 @@
        <TextView android:text="路線名(編集不可)" android:background="#999999" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>\r
        <EditText android:layout_height="wrap_content" android:id="@+id/editText31" android:layout_width="wrap_content" editable="false" android:focusable="false" android:cursorVisible="false" />\r
        <TextView android:text="検索時に使用する路線名" android:background="#999999" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>\r
-       <EditText android:layout_height="wrap_content" android:id="@+id/editText32" android:layout_width="wrap_content" />\r
+       <EditText android:layout_height="wrap_content" android:id="@+id/editText32" android:layout_width="wrap_content" android:inputType="text" />\r
        <TextView android:text="編集内容" android:background="#999999" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>\r
        <CheckBox android:layout_width="fill_parent" android:text="「線」を削除する" android:id="@+id/checkBox31" android:layout_height="fill_parent"></CheckBox>\r
        <CheckBox android:layout_width="fill_parent" android:text="「JR」を削除する" android:id="@+id/checkBox32" android:layout_height="fill_parent"></CheckBox>\r
index 0d7632d..0e167ad 100644 (file)
@@ -28,6 +28,7 @@ import com.td.service.TrainDelayedServiceImpl;
 import com.td.utility.BaseActivity;
 import com.td.utility.Debug;
 import com.td.utility.EditPrefUtil;
+import com.td.utility.StatusFlagTest;
 import com.td.wait.InitializeWating;
 import com.td.wait.TrainServiceWaiting;
 
@@ -402,7 +403,7 @@ public class TrainDelayedActivity extends BaseActivity {
        }
        
        private void debug(){
-               int n = 1;
+               int n = 4;
                
                switch (n){
                case 1:
@@ -422,6 +423,10 @@ public class TrainDelayedActivity extends BaseActivity {
                        intent.putExtra("TEXT", "\83T\83\93\83v\83\8b\83\81\83b\83Z\81[\83W");
                        sendBroadcast(intent);
                        break;
+               case 4:
+                       // StatusFlag\82Ì\83e\83X\83g
+                       StatusFlagTest.main(this);
+                       break;
                default:
                        break;
                }
index f9cb421..6938bf5 100644 (file)
@@ -178,7 +178,11 @@ public class TrainEditActivity extends BaseActivity {
                        String sname = train.getSearchText();\r
                        if (checkBox1.isChecked()) {\r
                                int len = sname.length();\r
-                               sname = sname.substring(0, len - 1);\r
+                               int slen = LINE.length();\r
+                               if (len >= slen\r
+                                               && sname.substring(len - slen, len).equals(LINE)) {\r
+                                       sname = sname.substring(0, len - slen);\r
+                               }\r
                        } else {\r
                                sname += LINE;\r
                        }\r
@@ -198,7 +202,10 @@ public class TrainEditActivity extends BaseActivity {
                        String sname = train.getSearchText();\r
                        if (checkBox2.isChecked()) {\r
                                int len = sname.length();\r
-                               sname = sname.substring(2, len);\r
+                               int slen = JR.length();\r
+                               if (len >= slen && sname.substring(0, slen).equals(JR)) {\r
+                                       sname = sname.substring(slen, len);\r
+                               }\r
                        } else {\r
                                sname = JR + sname;\r
                        }\r
index 78de648..4f3f89a 100644 (file)
@@ -96,7 +96,6 @@ public class DateUtil {
        \r
        public static Calendar getCalendar(int y, int m, int d, int h, int mi){\r
                Calendar cal = Calendar.getInstance();\r
-               //cal.set(y - 1900, m - 1, d, h, mi);\r
                cal.set(y, m - 1, d, h, mi);\r
                return cal;\r
        }\r
@@ -138,4 +137,24 @@ public class DateUtil {
        public static String getMinute(String t){\r
                return t.substring(3, 5);\r
        }\r
+       \r
+       public static int getY(int ymd){\r
+               return ymd / 10000;\r
+       }\r
+       \r
+       public static int getM(int ymd){\r
+               return (ymd % 10000) / 100;\r
+       }\r
+       \r
+       public static int getD(int ymd){\r
+               return ymd % 100;\r
+       }\r
+\r
+       public static int getH(int hm){\r
+               return hm / 100;\r
+       }\r
+\r
+       public static int getMi(int hm){\r
+               return hm % 100;\r
+       }       \r
 }\r
diff --git a/workspace/TrainDelayed/src/com/td/utility/StatusFlag.java b/workspace/TrainDelayed/src/com/td/utility/StatusFlag.java
new file mode 100644 (file)
index 0000000..3307095
--- /dev/null
@@ -0,0 +1,88 @@
+package com.td.utility;\r
+\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+\r
+import android.content.Context;\r
+\r
+public class StatusFlag {\r
+       public static final int ON = 1;\r
+       public static final int OFF = 0;\r
+       public static final int TERM_NONE = -1;\r
+       \r
+       private static final String PREF_STF_FLAG = "STF_FLAG";\r
+       private static final String DELM = ",";\r
+\r
+       private Context context;\r
+       private long term; // \95ª\r
+       private EditPrefUtil pref;\r
+\r
+       public StatusFlag(Context context, long term){\r
+               this.context = context;\r
+               this.term = term;\r
+               pref = new EditPrefUtil(context);\r
+       }\r
+       \r
+       public void set(int flag){\r
+               Calendar cal = Calendar.getInstance();\r
+               Date d = cal.getTime();\r
+               int ymd = DateUtil.getYmd(d);\r
+               int hm = DateUtil.getHm(d);\r
+               \r
+               StringBuffer sb = new StringBuffer();\r
+               sb.append(ymd);\r
+               sb.append(DELM);\r
+               sb.append(hm);\r
+               sb.append(DELM);\r
+               sb.append(flag);\r
+               \r
+               pref.put(PREF_STF_FLAG, sb.toString());\r
+       }\r
+       \r
+       public int get(){\r
+               return get(term);\r
+       }\r
+       \r
+       public int get(long term){\r
+               String s = pref.get(PREF_STF_FLAG);\r
+               if (s == null){\r
+                       return OFF;\r
+               }\r
+               \r
+               String[] t = s.split(DELM);\r
+               int ymd = Integer.valueOf(t[0]);\r
+               int hm = Integer.valueOf(t[1]);\r
+               int flag = Integer.valueOf(t[2]);\r
+               \r
+               if (flag == OFF || term < 0){\r
+                       return flag;\r
+               }\r
+               \r
+               int y = DateUtil.getY(ymd);\r
+               int m = DateUtil.getM(ymd);\r
+               int d = DateUtil.getD(ymd);\r
+\r
+               int h = DateUtil.getH(hm);\r
+               int mi = DateUtil.getMi(hm);\r
+               \r
+               Calendar sCal = DateUtil.getCalendar(y, m, d, h, mi);\r
+               Calendar nCal = Calendar.getInstance();\r
+               \r
+               long mt = sCal.getTimeInMillis() + term * 60 * 1000; // \95Û\91\8aú\8aÔ\8dÅ\91å\r
+               long nt = nCal.getTimeInMillis(); // \8c»\8dÝ\r
+               \r
+               if (nt > mt){\r
+                       Debug.t(context, "\95Û\91\8dÅ\91å\8aú\8aÔ\92´\89ß\81@" + ymd + "/" + hm);\r
+                       return OFF;\r
+               }\r
+               return flag;\r
+       }\r
+\r
+       public boolean isOn(){\r
+               return get() == ON;\r
+       }\r
+\r
+       public boolean isOff(){\r
+               return !isOn();\r
+       }\r
+}\r
diff --git a/workspace/TrainDelayed/src/com/td/utility/StatusFlagTest.java b/workspace/TrainDelayed/src/com/td/utility/StatusFlagTest.java
new file mode 100644 (file)
index 0000000..3ee6f50
--- /dev/null
@@ -0,0 +1,49 @@
+package com.td.utility;\r
+\r
+import android.content.Context;\r
+\r
+public class StatusFlagTest {\r
+       public static void main(Context context) {\r
+               int i;\r
+               try {\r
+                       for (i = 0; i < 3; i++) {\r
+                               long term = -1;\r
+                               long slp = 0;\r
+                               int flag = StatusFlag.OFF;\r
+                               int eFlag = -1;\r
+                               int ret;\r
+\r
+                               StatusFlag sf;\r
+                               switch (i) {\r
+                               case 0:\r
+                                       term = -1;\r
+                                       slp = 1;\r
+                                       flag = StatusFlag.ON;\r
+                                       eFlag = StatusFlag.ON;\r
+                                       break;\r
+                               case 1:\r
+                                       term = 2;\r
+                                       slp = 1;\r
+                                       flag = StatusFlag.ON;\r
+                                       eFlag = StatusFlag.ON;\r
+                                       break;\r
+                               case 2:\r
+                                       term = 1;\r
+                                       slp = 2;\r
+                                       flag = StatusFlag.ON;\r
+                                       eFlag = StatusFlag.OFF;\r
+                                       break;\r
+                               }\r
+                               sf = new StatusFlag(context, term);\r
+                               sf.set(flag);\r
+                               Thread.sleep(slp * 60 * 1000);\r
+                               ret = sf.get();\r
+                               if (eFlag != ret){\r
+                                       throw new TdException("" + i);\r
+                               }\r
+                       }\r
+               } catch (Exception e) {\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+}\r
index 33a726b..4780f14 100644 (file)
@@ -10,4 +10,8 @@ public class TdException extends Exception {
        public TdException(Throwable throwable) {\r
                super(throwable);\r
        }\r
+\r
+       public TdException(String string) {\r
+               super(string);\r
+       }\r
 }\r