OSDN Git Service

StatusFlagクラス作成
[train-delayed/source.git] / workspace / TrainDelayed / src / com / td / utility / StatusFlag.java
1 package com.td.utility;\r
2 \r
3 import java.util.Calendar;\r
4 import java.util.Date;\r
5 \r
6 import android.content.Context;\r
7 \r
8 public class StatusFlag {\r
9         public static final int ON = 1;\r
10         public static final int OFF = 0;\r
11         public static final int TERM_NONE = -1;\r
12         \r
13         private static final String PREF_STF_FLAG = "STF_FLAG";\r
14         private static final String DELM = ",";\r
15 \r
16         private Context context;\r
17         private long term; // \95ª\r
18         private EditPrefUtil pref;\r
19 \r
20         public StatusFlag(Context context, long term){\r
21                 this.context = context;\r
22                 this.term = term;\r
23                 pref = new EditPrefUtil(context);\r
24         }\r
25         \r
26         public void set(int flag){\r
27                 Calendar cal = Calendar.getInstance();\r
28                 Date d = cal.getTime();\r
29                 int ymd = DateUtil.getYmd(d);\r
30                 int hm = DateUtil.getHm(d);\r
31                 \r
32                 StringBuffer sb = new StringBuffer();\r
33                 sb.append(ymd);\r
34                 sb.append(DELM);\r
35                 sb.append(hm);\r
36                 sb.append(DELM);\r
37                 sb.append(flag);\r
38                 \r
39                 pref.put(PREF_STF_FLAG, sb.toString());\r
40         }\r
41         \r
42         public int get(){\r
43                 return get(term);\r
44         }\r
45         \r
46         public int get(long term){\r
47                 String s = pref.get(PREF_STF_FLAG);\r
48                 if (s == null){\r
49                         return OFF;\r
50                 }\r
51                 \r
52                 String[] t = s.split(DELM);\r
53                 int ymd = Integer.valueOf(t[0]);\r
54                 int hm = Integer.valueOf(t[1]);\r
55                 int flag = Integer.valueOf(t[2]);\r
56                 \r
57                 if (flag == OFF || term < 0){\r
58                         return flag;\r
59                 }\r
60                 \r
61                 int y = DateUtil.getY(ymd);\r
62                 int m = DateUtil.getM(ymd);\r
63                 int d = DateUtil.getD(ymd);\r
64 \r
65                 int h = DateUtil.getH(hm);\r
66                 int mi = DateUtil.getMi(hm);\r
67                 \r
68                 Calendar sCal = DateUtil.getCalendar(y, m, d, h, mi);\r
69                 Calendar nCal = Calendar.getInstance();\r
70                 \r
71                 long mt = sCal.getTimeInMillis() + term * 60 * 1000; // \95Û\91\8aú\8aÔ\8dÅ\91å\r
72                 long nt = nCal.getTimeInMillis(); // \8c»\8dÝ\r
73                 \r
74                 if (nt > mt){\r
75                         Debug.t(context, "\95Û\91\8dÅ\91å\8aú\8aÔ\92´\89ß\81@" + ymd + "/" + hm);\r
76                         return OFF;\r
77                 }\r
78                 return flag;\r
79         }\r
80 \r
81         public boolean isOn(){\r
82                 return get() == ON;\r
83         }\r
84 \r
85         public boolean isOff(){\r
86                 return !isOn();\r
87         }\r
88 }\r