From 4c032a70bf394102ca357049bddd64db9122d67b Mon Sep 17 00:00:00 2001 From: Yuji Konishi Date: Fri, 21 Sep 2012 00:49:09 +0900 Subject: [PATCH] T29618 --- .../src/com/yuji/ef/SettingActivity.java | 54 ++++++++++++++++------ .../src/com/yuji/ef/task/NoteUpdateTask.java | 20 ++++---- 2 files changed, 53 insertions(+), 21 deletions(-) diff --git a/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java b/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java index 3fd80d7..e58b6d6 100644 --- a/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java +++ b/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java @@ -33,9 +33,11 @@ import com.yuji.ef.utility.AsyncTaskCommand; import com.yuji.ef.utility.BaseActivity; import com.yuji.ef.utility.Debug; import com.yuji.ef.utility.EvernoteUtil; +import com.yuji.ef.utility.LockHandler; +import com.yuji.ef.utility.LockListener; import com.yuji.ef.utility.OAuthUtil; -public class SettingActivity extends BaseActivity { +public class SettingActivity extends BaseActivity implements LockListener { private EditPrefUtil pref = new EditPrefUtil(this); private LinearLayout msgLayout; @@ -54,7 +56,8 @@ public class SettingActivity extends BaseActivity { private boolean lock = false; private boolean isInit = true; - + private boolean isInCycle = false; + private class NoteUpdatorReceiver extends BroadcastReceiver { @Override @@ -147,6 +150,16 @@ public class SettingActivity extends BaseActivity { } @Override + public void sendLockResult(boolean b) { + lock = true; + + if (isInit) { + isInit = false; + } + setStatus(); + } + + @Override protected void onStart() { super.onStart(); } @@ -154,6 +167,12 @@ public class SettingActivity extends BaseActivity { @Override protected void onResume() { super.onResume(); + isInCycle = true; + + LockHandler handler = new LockHandler(); + boolean isUnlock = false; + handler.lock(this, Constant.LOCK_UPDATE_NOTE, true, isUnlock); + lock = false; int updateTime = pref.getInt(Constant.PREF_UPDATE_TIME, 0); @@ -168,10 +187,7 @@ public class SettingActivity extends BaseActivity { String updateDate = pref.get(Constant.PREF_UPDATE_DATETIME); updateDateText.setText(updateDate); - if (isInit) { - setStatus(); - isInit = false; - } + setStatus(); } @Override @@ -204,7 +220,13 @@ public class SettingActivity extends BaseActivity { } } + // ロック未取得でも解除する(ゴミ掃除) + LockDao lockDao = (LockDao) LockDao.getInstance(); + lockDao.unlock(this, Constant.LOCK_UPDATE_NOTE); + lock = false; + super.onPause(); + isInCycle = false; } @Override @@ -254,8 +276,9 @@ public class SettingActivity extends BaseActivity { } private void updateButton(boolean isAll) { - LockDao lockDao = (LockDao) LockDao.getInstance(); - lock = lockDao.lock(this, Constant.LOCK_UPDATE_NOTE); + // #29618 + //LockDao lockDao = (LockDao) LockDao.getInstance(); + //lock = lockDao.lock(this, Constant.LOCK_UPDATE_NOTE); if (!lock) { setStatus(); @@ -264,7 +287,10 @@ public class SettingActivity extends BaseActivity { pref.put(Constant.PREF_UPDATE_DATA, Constant.ON); pref.update(); - + + lock = false; + setStatus(); + NoteUpdateTask task = new NoteUpdateTask(this, true, true, isAll); AsyncTaskCommand command = new AsyncTaskCommand(this, task); @@ -273,12 +299,13 @@ public class SettingActivity extends BaseActivity { command.setCancelable(false); command.setDialog(false); command.execute(""); - - setStatus(); } public void done(int errorCode) { - lock = false; + // #29618 + //lock = false; + lock = true; + setStatus(); } @@ -292,7 +319,7 @@ public class SettingActivity extends BaseActivity { } private void setStatus() { - if (lock) { + if (!lock) { msgLayout.setVisibility(View.VISIBLE); confirmMsg.setText(getString(R.string.settingUpdateMsg)); @@ -385,4 +412,5 @@ public class SettingActivity extends BaseActivity { } msgLayout.setVisibility(View.GONE); } + } diff --git a/source/workspace/EverFolder/src/com/yuji/ef/task/NoteUpdateTask.java b/source/workspace/EverFolder/src/com/yuji/ef/task/NoteUpdateTask.java index 22e0f42..64b7231 100644 --- a/source/workspace/EverFolder/src/com/yuji/ef/task/NoteUpdateTask.java +++ b/source/workspace/EverFolder/src/com/yuji/ef/task/NoteUpdateTask.java @@ -45,24 +45,27 @@ public class NoteUpdateTask implements AsyncTaskIF { } Debug.d(this, null, e); - LockDao lockDao = (LockDao) LockDao.getInstance(); - lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); + // #29618 + //LockDao lockDao = (LockDao) LockDao.getInstance(); + //lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); throw e; } catch (Exception e) { EfException.msg(com.yuji.ef.R.string.ErrorUpdate); Debug.d(this, null, e); - LockDao lockDao = (LockDao) LockDao.getInstance(); - lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); + // #29618 + //LockDao lockDao = (LockDao) LockDao.getInstance(); + //lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); throw new EfException(EfError.SYSTEM); } catch (Throwable e) { EfException.msg(com.yuji.ef.R.string.ErrorUpdate); Debug.d(this, null, e); - LockDao lockDao = (LockDao) LockDao.getInstance(); - lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); + // #29618 + //LockDao lockDao = (LockDao) LockDao.getInstance(); + //lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); throw new EfException(EfError.SYSTEM); } @@ -73,8 +76,9 @@ public class NoteUpdateTask implements AsyncTaskIF { } public void done(boolean isCancel) { - LockDao lockDao = (LockDao) LockDao.getInstance(); - lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); + // #29618 + //LockDao lockDao = (LockDao) LockDao.getInstance(); + //lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); SettingActivity activity = getActivity(); if (activity != null) { -- 2.11.0