OSDN Git Service

T28191
authorYuji Konishi <yuji.k64613@gmail.com>
Sat, 28 Apr 2012 04:23:40 +0000 (13:23 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Sat, 28 Apr 2012 04:23:40 +0000 (13:23 +0900)
T28190
T28189

workspace/EverClip/AndroidManifest.xml
workspace/EverClip/src/com/yuji/ec/SettingActivity.java
workspace/EverClip/src/com/yuji/ec/service/NoteUpdatorService.java
workspace/EverClip/src/com/yuji/ec/utility/DateUtil.java
workspace/EverClip/src/com/yuji/ec/utility/NetworkUtil.java [new file with mode: 0644]

index b244852..d2de4b9 100644 (file)
@@ -29,4 +29,5 @@
            <service android:enabled="true" android:name=".service.NoteUpdatorService" />
     </application>
     <uses-permission android:name="android.permission.INTERNET" />
+       <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 </manifest>
\ No newline at end of file
index 3c2c51c..7ca18f9 100644 (file)
@@ -57,6 +57,8 @@ public class SettingActivity extends BaseActivity {
        private Button closeButton = null;
 
        private long updateTime = -1;
+       private boolean isRegister = false;
+       private boolean isBind = false;
 
        private class NoteUpdatorReceiver extends BroadcastReceiver {
 
@@ -234,22 +236,37 @@ public class SettingActivity extends BaseActivity {
                super.onPause();
        }
 
+       @Override
+       public void onDestroy() {
+               if (isBind) {
+                       unbindService(serviceConnection); // \83o\83C\83\93\83h\89ð\8f\9c
+                       isBind = false;
+               }
+               if (isRegister) {
+                       unregisterReceiver(receiver); // \93o\98^\89ð\8f\9c
+                       isRegister = false;
+               }
+               super.onDestroy();
+       }
+
        private void stopService() {
                NoteUpdatorService.stopService(this);
        }
 
        private void updateNote() {
                try {
-                       NoteUpdatorService.stopService(this);
+                       stopService();
 
                        Intent intent = new Intent(this, NoteUpdatorService.class);
                        intent.setAction(NoteUpdatorService.ACTION_START);
                        startService(intent);
                        IntentFilter filter = new IntentFilter(NoteUpdatorService.ACTION);
                        registerReceiver(receiver, filter);
+                       isRegister = true;
 
                        // \83T\81[\83r\83X\82É\83o\83C\83\93\83h
                        bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
+                       isBind = true;
                } catch (Exception e) {
                        Debug.d(this, null, e);
                }
@@ -305,6 +322,13 @@ public class SettingActivity extends BaseActivity {
 
        private void timeButtonOnClick() {
                Calendar calendar = Calendar.getInstance();
+               long t = updateTime;
+               if (t < 0) {
+                       t = pref.getLong(Constant.PREF_UPDATE_TIME, -1);
+               }
+               if (t >= 0) {
+                       calendar.setTimeInMillis(t);
+               }
                int hour = calendar.get(Calendar.HOUR_OF_DAY);
                int minute = calendar.get(Calendar.MINUTE);
 
index 45ec126..022ae92 100644 (file)
@@ -15,6 +15,7 @@ import com.yuji.ec.common.Constant;
 import com.yuji.ec.utility.DateUtil;\r
 import com.yuji.ec.utility.Debug;\r
 import com.yuji.ec.utility.EditPrefUtil;\r
+import com.yuji.ec.utility.NetworkUtil;\r
 import com.yuji.ec.utility.NoteUpdator;\r
 \r
 public class NoteUpdatorService extends Service {\r
@@ -68,6 +69,11 @@ public class NoteUpdatorService extends Service {
                }\r
 \r
                private void execute() {\r
+                       if (!NetworkUtil\r
+                                       .isConnected(NoteUpdatorService.this)){\r
+                               return;\r
+                       }\r
+                       \r
                        int noteItemType = pref.getInt(Constant.PREF_NOTE_ITEM_TYPE,\r
                                        Constant.NOTE_ITEM_TYPE_ALL);\r
                        String guid = pref.get(Constant.PREF_NOTE_ITEM_GUID);\r
index 670aa61..9bd7d24 100644 (file)
@@ -23,18 +23,19 @@ public class DateUtil {
        }
 
        public static long next(int h, int m, int s, int ds) {
-               Calendar cal = Calendar.getInstance();
-
+               Calendar cal;
+               
+               cal = Calendar.getInstance();
                cal.add(Calendar.SECOND, ds);
-
-               int nh = cal.get(Calendar.HOUR_OF_DAY);
-               int nm = cal.get(Calendar.MINUTE);
-               int ns = cal.get(Calendar.SECOND);
-
+               long nt = cal.getTimeInMillis();
+               
+               cal = Calendar.getInstance();
                cal.set(Calendar.HOUR_OF_DAY, h);
                cal.set(Calendar.MINUTE, m);
                cal.set(Calendar.SECOND, s);
-               if (h < nh || h == nh && m < nm || h == nh && m == nm && s < ns) {
+               long t = cal.getTimeInMillis();
+
+               if (t < nt){
                        cal.add(Calendar.DATE, 1);
                }
 
diff --git a/workspace/EverClip/src/com/yuji/ec/utility/NetworkUtil.java b/workspace/EverClip/src/com/yuji/ec/utility/NetworkUtil.java
new file mode 100644 (file)
index 0000000..e7d443e
--- /dev/null
@@ -0,0 +1,17 @@
+package com.yuji.ec.utility;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+
+public class NetworkUtil {
+       public static boolean isConnected(Context context) {
+               ConnectivityManager cm = (ConnectivityManager) context
+                               .getSystemService(Context.CONNECTIVITY_SERVICE);
+               NetworkInfo ni = cm.getActiveNetworkInfo();
+               if (ni != null) {
+                       return cm.getActiveNetworkInfo().isConnected();
+               }
+               return false;
+       }
+}