From 2b7f882cd346f645a087b4fcbe055e725c8f9f90 Mon Sep 17 00:00:00 2001 From: Yuji Konishi Date: Sat, 28 Apr 2012 13:23:40 +0900 Subject: [PATCH] T28191 T28190 T28189 --- workspace/EverClip/AndroidManifest.xml | 1 + .../EverClip/src/com/yuji/ec/SettingActivity.java | 26 +++++++++++++++++++++- .../com/yuji/ec/service/NoteUpdatorService.java | 6 +++++ .../EverClip/src/com/yuji/ec/utility/DateUtil.java | 17 +++++++------- .../src/com/yuji/ec/utility/NetworkUtil.java | 17 ++++++++++++++ 5 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 workspace/EverClip/src/com/yuji/ec/utility/NetworkUtil.java diff --git a/workspace/EverClip/AndroidManifest.xml b/workspace/EverClip/AndroidManifest.xml index b244852..d2de4b9 100644 --- a/workspace/EverClip/AndroidManifest.xml +++ b/workspace/EverClip/AndroidManifest.xml @@ -29,4 +29,5 @@ + \ No newline at end of file diff --git a/workspace/EverClip/src/com/yuji/ec/SettingActivity.java b/workspace/EverClip/src/com/yuji/ec/SettingActivity.java index 3c2c51c..7ca18f9 100644 --- a/workspace/EverClip/src/com/yuji/ec/SettingActivity.java +++ b/workspace/EverClip/src/com/yuji/ec/SettingActivity.java @@ -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); // ƒoƒCƒ“ƒh‰ðœ + isBind = false; + } + if (isRegister) { + unregisterReceiver(receiver); // “o˜^‰ðœ + 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; // ƒT[ƒrƒX‚ɃoƒCƒ“ƒh 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); diff --git a/workspace/EverClip/src/com/yuji/ec/service/NoteUpdatorService.java b/workspace/EverClip/src/com/yuji/ec/service/NoteUpdatorService.java index 45ec126..022ae92 100644 --- a/workspace/EverClip/src/com/yuji/ec/service/NoteUpdatorService.java +++ b/workspace/EverClip/src/com/yuji/ec/service/NoteUpdatorService.java @@ -15,6 +15,7 @@ import com.yuji.ec.common.Constant; import com.yuji.ec.utility.DateUtil; import com.yuji.ec.utility.Debug; import com.yuji.ec.utility.EditPrefUtil; +import com.yuji.ec.utility.NetworkUtil; import com.yuji.ec.utility.NoteUpdator; public class NoteUpdatorService extends Service { @@ -68,6 +69,11 @@ public class NoteUpdatorService extends Service { } private void execute() { + if (!NetworkUtil + .isConnected(NoteUpdatorService.this)){ + return; + } + int noteItemType = pref.getInt(Constant.PREF_NOTE_ITEM_TYPE, Constant.NOTE_ITEM_TYPE_ALL); String guid = pref.get(Constant.PREF_NOTE_ITEM_GUID); diff --git a/workspace/EverClip/src/com/yuji/ec/utility/DateUtil.java b/workspace/EverClip/src/com/yuji/ec/utility/DateUtil.java index 670aa61..9bd7d24 100644 --- a/workspace/EverClip/src/com/yuji/ec/utility/DateUtil.java +++ b/workspace/EverClip/src/com/yuji/ec/utility/DateUtil.java @@ -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 index 0000000..e7d443e --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/utility/NetworkUtil.java @@ -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; + } +} -- 2.11.0