OSDN Git Service

T29612
authorYuji Konishi <yuji.k64613@gmail.com>
Fri, 21 Sep 2012 03:32:39 +0000 (12:32 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Fri, 21 Sep 2012 03:32:39 +0000 (12:32 +0900)
source/workspace/EverFolder/src/com/yuji/ef/SettingActivity.java
source/workspace/EverFolder/src/com/yuji/ef/service/NoteUpdatorService.java
source/workspace/EverFolder/src/com/yuji/ef/task/NoteUpdateTask.java
source/workspace/EverFolder/src/com/yuji/ef/utility/EvernoteUtil.java

index 652645e..a5bc2b2 100644 (file)
@@ -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));
index 4e655f2..daf2bc4 100644 (file)
@@ -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);
index a35f214..d32c1fd 100644 (file)
@@ -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<SettingActivity>(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) {
index ecd48e7..0653261 100644 (file)
@@ -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