From 4820cd9c93bbf76e6ef25578ca3497273f27fb7d Mon Sep 17 00:00:00 2001 From: Yuji Konishi Date: Fri, 21 Sep 2012 12:32:39 +0900 Subject: [PATCH] T29612 --- .../src/com/yuji/ef/SettingActivity.java | 2 +- .../com/yuji/ef/service/NoteUpdatorService.java | 2 +- .../src/com/yuji/ef/task/NoteUpdateTask.java | 55 ++++++++++++---------- .../src/com/yuji/ef/utility/EvernoteUtil.java | 41 +++++++++++----- 4 files changed, 63 insertions(+), 37 deletions(-) diff --git a/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java b/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java index 652645e..a5bc2b2 100644 --- a/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java +++ b/source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java @@ -317,7 +317,7 @@ public class SettingActivity extends BaseActivity implements LockListener { lock = false; setStatus(); - NoteUpdateTask task = new NoteUpdateTask(this, true, true, isAll); + NoteUpdateTask task = new NoteUpdateTask(this, true, true, isAll, true); AsyncTaskCommand command = new AsyncTaskCommand(this, task); // command.setTitle(getString(R.string.updatorNoteDialogTitle)); diff --git a/source/workspace/EverFolder/src/com/yuji/ef/service/NoteUpdatorService.java b/source/workspace/EverFolder/src/com/yuji/ef/service/NoteUpdatorService.java index 4e655f2..daf2bc4 100644 --- a/source/workspace/EverFolder/src/com/yuji/ef/service/NoteUpdatorService.java +++ b/source/workspace/EverFolder/src/com/yuji/ef/service/NoteUpdatorService.java @@ -127,7 +127,7 @@ public class NoteUpdatorService extends Service { Initialize.initialize(NoteUpdatorService.this, null); - NoteUpdateTask task = new NoteUpdateTask(null, true, true, true); + NoteUpdateTask task = new NoteUpdateTask(null, true, true, true, false); task.doExecute(); updateDate(null); 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 a35f214..d32c1fd 100644 --- a/source/workspace/EverFolder/src/com/yuji/ef/task/NoteUpdateTask.java +++ b/source/workspace/EverFolder/src/com/yuji/ef/task/NoteUpdateTask.java @@ -18,67 +18,74 @@ public class NoteUpdateTask implements AsyncTaskIF { private boolean isRoot; private boolean isBook; private boolean isNote; + private boolean isDisplayError; private int errorCode = -1; public NoteUpdateTask(SettingActivity activity, boolean isRoot, - boolean isBook, boolean isNote) { + boolean isBook, boolean isNote, boolean isDisplayError) { activityRef = new WeakReference(activity); this.isRoot = isRoot; this.isBook = isBook; this.isNote = isNote; + this.isDisplayError = isDisplayError; } public void doExecute() throws EfException { try { - //FolderUtil test = FolderUtil.getInstance(); + // FolderUtil test = FolderUtil.getInstance(); // test.createTestNote(); // EvernoteUtil.getInstance().createHelpData(); FolderUtil util = FolderUtil.getInstance(); util.update(isRoot, isBook, isNote); } catch (RollbackException e) { - if (e.getError() == EfError.NETWORK){ - // TODO - EfException.msg(com.yuji.ef.R.string.ErrorNetwork); - } - else { - EfException.msg(com.yuji.ef.R.string.ErrorUpdate); + if (isDisplayError) { + if (e.getError() == EfError.NETWORK) { + // TODO + EfException.msg(com.yuji.ef.R.string.ErrorNetwork); + } else { + EfException.msg(com.yuji.ef.R.string.ErrorUpdate); + } } Debug.d(this, null, e); - + // #29618 - //LockDao lockDao = (LockDao) LockDao.getInstance(); - //lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); - + // 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); + if (isDisplayError) { + EfException.msg(com.yuji.ef.R.string.ErrorUpdate); + } Debug.d(this, null, e); // #29618 - //LockDao lockDao = (LockDao) LockDao.getInstance(); - //lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); - + // 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); + if (isDisplayError) { + EfException.msg(com.yuji.ef.R.string.ErrorUpdate); + } Debug.d(this, null, e); - + // #29618 - //LockDao lockDao = (LockDao) LockDao.getInstance(); - //lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); - + // LockDao lockDao = (LockDao) LockDao.getInstance(); + // lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); + throw new EfException(EfError.SYSTEM); } } - + public void cancel() { } public void done(boolean isCancel) { // #29618 - //LockDao lockDao = (LockDao) LockDao.getInstance(); - //lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); + // LockDao lockDao = (LockDao) LockDao.getInstance(); + // lockDao.unlock(SettingActivity.class, Constant.LOCK_UPDATE_NOTE); SettingActivity activity = getActivity(); if (activity != null) { diff --git a/source/workspace/EverFolder/src/com/yuji/ef/utility/EvernoteUtil.java b/source/workspace/EverFolder/src/com/yuji/ef/utility/EvernoteUtil.java index ecd48e7..0653261 100644 --- a/source/workspace/EverFolder/src/com/yuji/ef/utility/EvernoteUtil.java +++ b/source/workspace/EverFolder/src/com/yuji/ef/utility/EvernoteUtil.java @@ -1,16 +1,18 @@ package com.yuji.ef.utility; import java.net.ConnectException; +import java.net.SocketTimeoutException; +import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; +import javax.net.ssl.SSLPeerUnverifiedException; + +import org.apache.http.conn.ConnectTimeoutException; import org.apache.thrift.TException; -import org.apache.thrift.protocol.TBinaryProtocol; -import org.apache.thrift.transport.THttpClient; import org.apache.thrift.transport.TTransportException; import com.evernote.client.oauth.android.EvernoteSession; -import com.evernote.edam.error.EDAMErrorCode; import com.evernote.edam.error.EDAMNotFoundException; import com.evernote.edam.error.EDAMSystemException; import com.evernote.edam.error.EDAMUserException; @@ -21,9 +23,6 @@ import com.evernote.edam.type.Note; import com.evernote.edam.type.NoteSortOrder; import com.evernote.edam.type.Notebook; import com.evernote.edam.type.Tag; -import com.evernote.edam.type.User; -import com.evernote.edam.userstore.AuthenticationResult; -import com.evernote.edam.userstore.UserStore; public class EvernoteUtil { private static final int N = 50; @@ -91,7 +90,7 @@ public class EvernoteUtil { } catch (TException e) { Debug.d(this, null, e); - if (e.getCause() instanceof ConnectException) { + if (isNetworkError(e)) { errorCode = Error.CONNECT; } } @@ -164,7 +163,7 @@ public class EvernoteUtil { } catch (TException e) { Debug.d(this, null, e); - if (e.getCause() instanceof ConnectException) { + if (isNetworkError(e)) { errorCode = Error.CONNECT; } list = null; @@ -190,7 +189,7 @@ public class EvernoteUtil { } catch (TException e) { Debug.d(this, null, e); - if (e.getCause() instanceof ConnectException) { + if (isNetworkError(e)) { errorCode = Error.CONNECT; } } @@ -215,7 +214,7 @@ public class EvernoteUtil { } catch (TException e) { Debug.d(this, null, e); - if (e.getCause() instanceof ConnectException) { + if (isNetworkError(e)) { errorCode = Error.CONNECT; } } @@ -280,7 +279,7 @@ public class EvernoteUtil { } catch (TException e) { Debug.d(this, null, e); - if (e.getCause() instanceof ConnectException) { + if (isNetworkError(e)) { errorCode = Error.CONNECT; } } @@ -411,4 +410,24 @@ public class EvernoteUtil { public Note createHelpNote(String toke, Notebook notebook, String name) throws EDAMUserException, EDAMSystemException, EDAMNotFoundException, TException{ return createNote(notebook, name); } + + private boolean isNetworkError(Exception e){ + Throwable t = e.getCause(); + if (t instanceof ConnectException){ + return true; + } + if (t instanceof ConnectTimeoutException){ + return true; + } + if (t instanceof SocketTimeoutException){ + return true; + } + if (t instanceof UnknownHostException){ + return true; + } + if (t instanceof SSLPeerUnverifiedException){ + return true; + } + return false; + } } \ No newline at end of file -- 2.11.0