OSDN Git Service

T28109
authorYuji Konishi <yuji.k64613@gmail.com>
Tue, 17 Apr 2012 06:20:31 +0000 (15:20 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Tue, 17 Apr 2012 06:20:31 +0000 (15:20 +0900)
T28100

15 files changed:
workspace/EverClip/gen/com/yuji/ec/R.java
workspace/EverClip/res/values/strings.xml
workspace/EverClip/src/com/yuji/ec/EverClipActivity.java
workspace/EverClip/src/com/yuji/ec/Initialize.java
workspace/EverClip/src/com/yuji/ec/NoteTypeListActivity.java
workspace/EverClip/src/com/yuji/ec/NoteUpdatorActivity.java
workspace/EverClip/src/com/yuji/ec/SettingActivity.java
workspace/EverClip/src/com/yuji/ec/db/DatabaseHelper.java
workspace/EverClip/src/com/yuji/ec/db/NoteDao.java
workspace/EverClip/src/com/yuji/ec/service/NoteUpdatorService.java
workspace/EverClip/src/com/yuji/ec/task/NoteUpdateTask.java
workspace/EverClip/src/com/yuji/ec/utility/BaseActivity.java
workspace/EverClip/src/com/yuji/ec/utility/EvernoteUtil.java
workspace/EverClip/src/com/yuji/ec/utility/HtmlParser.java
workspace/EverClip/src/com/yuji/ec/utility/NoteUpdator.java

index 6706923..dc0c367 100644 (file)
@@ -78,14 +78,16 @@ public final class R {
         public static final int cancelButton=0x7f050006;
         public static final int closeButton=0x7f050007;
         public static final int deleteButton=0x7f050005;
+        public static final int dialogErrorTitle=0x7f050027;
+        public static final int dialogSystemError=0x7f050028;
         public static final int mainConfirmTitle=0x7f05000a;
         public static final int mainMenuSetting=0x7f050008;
         public static final int mainTitle=0x7f050009;
         public static final int noButton=0x7f050003;
-        public static final int noteTypeConfirmTitle=0x7f050028;
+        public static final int noteTypeConfirmTitle=0x7f05002a;
         public static final int noteTypeDialogTitle=0x7f05001d;
         public static final int noteTypeTitle=0x7f05001c;
-        public static final int selectTitle=0x7f050027;
+        public static final int selectTitle=0x7f050029;
         public static final int sendButton=0x7f050001;
         public static final int settingConfirmNoteMsg=0x7f05000d;
         public static final int settingConfirmTitle=0x7f05000b;
@@ -94,7 +96,7 @@ public final class R {
         public static final int settingNoteTitle=0x7f050010;
         public static final int settingSortTitle=0x7f050012;
         public static final int settingTimeButton=0x7f050016;
-        public static final int settingTimeText=0x7f05002a;
+        public static final int settingTimeText=0x7f05002c;
         public static final int settingTimeTitle=0x7f050015;
         public static final int settingUpdateButton=0x7f050014;
         public static final int settingUpdateTitle=0x7f050013;
@@ -112,7 +114,7 @@ public final class R {
         public static final int updatorMessage=0x7f050018;
         public static final int updatorNoteButton=0x7f05001a;
         public static final int updatorNoteDialogTitle=0x7f05001b;
-        public static final int updatorNoteText=0x7f050029;
+        public static final int updatorNoteText=0x7f05002b;
         public static final int updatorNoteTitle=0x7f050019;
         public static final int userPasswordTitle=0x7f05001f;
         public static final int userUserTitle=0x7f05001e;
index 3aff375..32fa92f 100644 (file)
@@ -48,6 +48,9 @@
     <string name="toastEvernoteSystem">Evernoteとの連係に失敗しました</string>
     <string name="toastSystem">システムエラーが発生しました</string>
 
+    <string name="dialogErrorTitle">エラー</string>
+    <string name="dialogSystemError">システムエラーが発生しました</string>
+    
        <string-array name="note_item_array">
            <item>全てのノート</item>
            <item>ノートブック</item>
index 143c044..a079030 100644 (file)
@@ -159,9 +159,6 @@ public class EverClipActivity extends BaseActivity {
                        }
                        updateList(str);
                } else {
-                       // TODO\81@\97l\8eq\8c©\82é
-                       //layoutView.setVisibility(View.GONE);
-                       //updateList(null);
                        Intent intent = new Intent(this, (Class<?>) SettingActivity.class);
                        startActivityForResult(intent, 0);
                }               
@@ -169,7 +166,11 @@ public class EverClipActivity extends BaseActivity {
        
        private void updateList(String str) {
                List<NoteListItem> list = getNoteList(str);
-
+               if (list == null){
+                       terminate(null);
+                       return;
+               }
+               
                NoteListViewArrayAdapter adapter = new NoteListViewArrayAdapter(this,
                                R.layout.simple_list_item_1, list);
                listView.setAdapter(adapter);
@@ -182,6 +183,9 @@ public class EverClipActivity extends BaseActivity {
                NoteDao dao = (NoteDao) NoteDao.getInstance();
 
                List<Note> list = dao.search();
+               if (list == null){
+                       return null;
+               }
                isEmpty = (list.size() <= 0)? true : false;
                sortList(list);
 
index 341dfab..258c1b3 100644 (file)
@@ -18,29 +18,11 @@ public class Initialize {
                        return;\r
                }\r
                \r
-               // TODO Simeji\82Ì\8fê\8d\87\82Í\81A\90Ý\92è\82µ\82È\82¢\r
-//             EvernoteUtil util = EvernoteUtil.getInstance();\r
-//             String username = PasswordUtil.getUsername(context);\r
-//             String password = PasswordUtil.getPassword(context);\r
-//             if (!CommonUtil.isNull(username) && !CommonUtil.isNull(password)) {\r
-//                     util.setConfig(username, password);\r
-//             }\r
-\r
-               try {\r
-                       DatabaseHelper.init(context);\r
-               } catch (ECException e) {\r
-                       // TODO\r
-                       e.printStackTrace();\r
-               }\r
+               DatabaseHelper.init(context);\r
                \r
                isInit = false;\r
        }\r
 \r
-       // TODO\r
-//     public static void setInitialize() {\r
-//             isInit = true;\r
-//     }\r
-\r
        public static void initialize(Context context, String name) {\r
                if (!isInit2) {\r
                        return;\r
@@ -49,7 +31,6 @@ public class Initialize {
                        return;\r
                }\r
                \r
-               // TODO Simeji\82Ì\8fê\8d\87\82Í\81A\90Ý\92è\82µ\82È\82¢\r
                EvernoteUtil util = EvernoteUtil.getInstance();\r
                String username = PasswordUtil.getUsername(context);\r
                String password = PasswordUtil.getPassword(context);\r
index c4ca64d..6c10640 100644 (file)
@@ -78,46 +78,6 @@ public class NoteTypeListActivity extends BaseActivity {
                finish();\r
        }\r
 \r
-       // private void updateList() {\r
-       // List<NoteListItem> list = getNoteList();\r
-       // if (list == null) {\r
-       // return;\r
-       // }\r
-       //\r
-       // NoteListViewArrayAdapter adapter = new NoteListViewArrayAdapter(this,\r
-       // R.layout.simple_list_item_1, list);\r
-       // listView.setAdapter(adapter);\r
-       //\r
-       // }\r
-       //\r
-       // private List<NoteListItem> getNoteList() {\r
-       // int noteItemType = pref.getInt(Constant.PREF_NOTE_ITEM_TYPE,\r
-       // Constant.NOTE_ITEM_TYPE_ALL);\r
-       //\r
-       // List<INoteItem> list = null;\r
-       // EvernoteUtil util = EvernoteUtil.getInstance();\r
-       // switch (noteItemType) {\r
-       // case Constant.NOTE_ITEM_TYPE_NOTE_BOOK:\r
-       // List<Notebook> noteList = util.getNoteBookList();\r
-       // list = util.toNoteItemFromNoteBook(noteList);\r
-       // break;\r
-       // case Constant.NOTE_ITEM_TYPE_TAG:\r
-       // List<Tag> tagList = util.getTagList();\r
-       // list = util.toNoteItemFromTag(tagList);\r
-       // break;\r
-       // default:\r
-       // return null;\r
-       // }\r
-       //\r
-       // List<NoteListItem> itemList = new ArrayList<NoteListItem>();\r
-       // for (INoteItem iItem : list) {\r
-       // NoteListItem item = new NoteListItem(iItem.getText(), iItem);\r
-       // itemList.add(item);\r
-       // }\r
-       //\r
-       // return itemList;\r
-       // }\r
-       //\r
        public void done(Error errorCode, List<INoteItem> nList) {\r
                if (errorCode != null && !errorCode.equals(Error.NONE)) {\r
                        EvernoteUtil util = EvernoteUtil.getInstance();\r
@@ -126,9 +86,6 @@ public class NoteTypeListActivity extends BaseActivity {
                }\r
 \r
                if (nList == null) {\r
-                       // \83L\83\83\83\93\83Z\83\8b\83{\83^\83\93\89\9f\89º\8e\9e\r
-                       // TODO\r
-                       // closeButtonOnClick();\r
                        return;\r
                }\r
 \r
index 6eacb2e..40dcf6d 100644 (file)
@@ -239,7 +239,6 @@ public class NoteUpdatorActivity extends BaseActivity {
                                Constant.PREF_NOTE_ITEM_TYPE_TMP);
                pref.copy(Constant.PREF_NOTE_ITEM_GUID,
                                Constant.PREF_NOTE_ITEM_GUID_TMP);
-               //pref.remove(Constant.PREF_NOTE_ITEM_GUID_TYPE_TMP); // TODO
                pref.copy(Constant.PREF_NOTE_ITEM_TYPE,
                                Constant.PREF_NOTE_ITEM_GUID_TYPE_TMP);
 
index a510ba1..5acb552 100644 (file)
@@ -345,26 +345,6 @@ public class SettingActivity extends BaseActivity {
                startActivityForResult(intent, 0);
        }
 
-       // private void noteTypeSpinnerItemSelected(AdapterView<?> parent, View
-       // view,
-       // int position, long id) {
-       // setStatus();
-       // }
-       //
-       // private void noteTypeButtonOnClick() {
-       // Intent intent = new Intent(this, (Class<?>) NoteTypeListActivity.class);
-       // startActivityForResult(intent, 1); // TODO
-       // }
-       //
-       // private void updateButtonOnClick() {
-       // NoteUpdateTask task = new NoteUpdateTask(this);
-       // AsyncTaskCommand command = new AsyncTaskCommand(this, task);
-       // // command.setTitle(getString(R.string.noteListGetting)); // TODO
-       // command.setTitle("Title");
-       // command.setButtonTitle(getString(R.string.cancelButton));
-       // command.execute("");
-       // }
-
        private void noteButtonOnClick() {
                NoteUpdatorActivity.init(this);
                Intent intent = new Intent(this, (Class<?>) NoteUpdatorActivity.class);
index 06e27b5..21813ac 100644 (file)
@@ -18,7 +18,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
                return instance;\r
        }\r
 \r
-       public static void init(Context context) throws ECException {\r
+       public static void init(Context context) {\r
                if (instance != null) {\r
                        return;\r
                }\r
@@ -28,13 +28,8 @@ public class DatabaseHelper extends SQLiteOpenHelper {
                DatabaseHelper helper = new DatabaseHelper(context);\r
                SQLiteDatabase db = helper.getWritableDatabase();\r
 \r
-               try {\r
-                       for (IDao<?> dao : daoList) {\r
-                               dao.init(db);\r
-                       }\r
-               } catch (Exception e) {\r
-                       // TODO\r
-                       Debug.d(context, null, e);\r
+               for (IDao<?> dao : daoList) {\r
+                       dao.init(db);\r
                }\r
        }\r
 \r
index a433d52..a6c84e1 100644 (file)
@@ -52,18 +52,7 @@ public class NoteDao implements IDao<Note> {
        }\r
        \r
        public void start(SQLiteDatabase db) {\r
-//             Note note;\r
-//             \r
-//             note = new Note("id0", "\83T\83\93\83v\83\8bA", 0, 0);\r
-//             add(db, note);\r
-//             note = new Note("id1", "\83T\83\93\83v\83\8bB", 0, 0);\r
-//             add(db, note);\r
-//             note = new Note("id2", "\83T\83\93\83v\83\8bC", 0, 0);\r
-//             add(db, note);\r
-//             note = new Note("id3", "abcdefg", 0, 0);\r
-//             add(db, note);\r
-//             note = new Note("id4", "aXYZ\82 \82¢\82¤\82¦\82¨", 0, 0);\r
-//             add(db, note);\r
+\r
        }\r
 \r
        public List<Note> search(){\r
@@ -72,11 +61,12 @@ public class NoteDao implements IDao<Note> {
        \r
        private List<Note> search(String selection, String[] selectionArgs, String orderBy){\r
                List<Note> list = new ArrayList<Note>();\r
+               Cursor cursor = null;\r
                try {\r
                        DatabaseHelper helper = DatabaseHelper.getInstance();\r
                        SQLiteDatabase db = helper.getReadableDatabase();\r
 \r
-                       Cursor cursor = db.query(\r
+                       cursor = db.query(\r
                                        "NOTE",\r
                                        new String[] {\r
                                        android.provider.BaseColumns._ID, "GUID", "TEXT", "CREATED", "UPDATED"},\r
@@ -93,23 +83,25 @@ public class NoteDao implements IDao<Note> {
                                list.add(note);\r
                            cursor.moveToNext();\r
                        }\r
-                       cursor.close();\r
                } catch (SQLException e){\r
-                       // TODO\r
                        Debug.d(this, null, e);\r
+                       list = null;\r
                } catch (Exception e){\r
-                       // TODO\r
                        Debug.d(this, null, e);\r
+                       list = null;\r
                }\r
                finally {\r
-                       // TODO\r
+                       if (cursor != null){\r
+                               cursor.close(); \r
+                               cursor = null;          \r
+                       }\r
                }\r
                return list;\r
        }\r
 \r
        public boolean isEmpty(){\r
                List<Note> list = search();\r
-               return list.size() <= 0;\r
+               return list == null || list.size() <= 0;\r
        }\r
        \r
        public void add(Note note) {\r
@@ -122,12 +114,6 @@ public class NoteDao implements IDao<Note> {
                long id = -1;\r
                db.beginTransaction();\r
                try {\r
-//                     int i = 1;\r
-//                     SQLiteStatement stmt = insertStmt;\r
-//                     stmt.bindString(i++, note.getGuid());\r
-//                     stmt.bindString(i++, note.getText());\r
-//                     stmt.bindLong(i++, note.getDate());\r
-//                     id = stmt.executeInsert();\r
                        id = addNT(note);\r
                        db.setTransactionSuccessful();\r
                } finally {\r
index 2a72b01..bc1ab13 100644 (file)
@@ -2,11 +2,6 @@ package com.yuji.ec.service;
 \r
 import java.util.Calendar;\r
 \r
-import com.yuji.ec.common.Constant;\r
-import com.yuji.ec.utility.DateUtil;\r
-import com.yuji.ec.utility.EditPrefUtil;\r
-import com.yuji.ec.utility.NoteUpdator;\r
-\r
 import android.app.AlarmManager;\r
 import android.app.PendingIntent;\r
 import android.app.Service;\r
@@ -16,6 +11,12 @@ import android.os.Binder;
 import android.os.IBinder;\r
 import android.widget.Toast;\r
 \r
+import com.yuji.ec.common.Constant;\r
+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.NoteUpdator;\r
+\r
 public class NoteUpdatorService extends Service {\r
        public class KitchenTimerBinder extends Binder {\r
                public NoteUpdatorService getService() {\r
@@ -40,22 +41,24 @@ public class NoteUpdatorService extends Service {
 \r
        private Runnable task = new Runnable() {\r
                public void run() {\r
-                       if (action.equals(ACTION_START)) {\r
-                               // \8f\89\8aú\8bN\93®\r
-                       } else {\r
-                               // \83^\83C\83}\81[\8bN\93®\r
-                               synchronized (binder) {\r
-                                       try {\r
-                                               execute();\r
-                                       } catch (Exception e) {\r
-                                               // TODO\r
+                       try {\r
+                               if (action.equals(ACTION_START)) {\r
+                                       // \8f\89\8aú\8bN\93®\r
+                               } else {\r
+                                       // \83^\83C\83}\81[\8bN\93®\r
+                                       synchronized (binder) {\r
+                                               try {\r
+                                                       execute();\r
+                                               } catch (Exception e) {\r
+                                                       Debug.d(this, null, e);\r
+                                               }\r
                                        }\r
                                }\r
-                       }\r
-\r
-                       setNextTime();\r
 \r
-                       NoteUpdatorService.this.stopSelf();\r
+                               setNextTime();\r
+                       } finally {\r
+                               NoteUpdatorService.this.stopSelf();\r
+                       }\r
                }\r
 \r
                private void execute() {\r
@@ -63,7 +66,7 @@ public class NoteUpdatorService extends Service {
                                        Constant.NOTE_ITEM_TYPE_ALL);\r
                        String guid = pref.get(Constant.PREF_NOTE_ITEM_GUID);\r
 \r
-                       NoteUpdator updator = new NoteUpdator();\r
+                       NoteUpdator updator = NoteUpdator.getInstance();\r
                        updator.update(NoteUpdatorService.this, noteItemType, guid);\r
                }\r
 \r
index 949d5a2..83826f0 100644 (file)
@@ -26,7 +26,7 @@ public class NoteUpdateTask implements AsyncTaskIF {
        public void doExecute() {
                synchronized (util) {
                        try {
-                               NoteUpdator updator = new NoteUpdator();
+                               NoteUpdator updator = NoteUpdator.getInstance();
                                updator.update(activityRef.get(), noteItemType, guid);
                        } finally {
                                errorCode = util.getErrorCode();
index c914677..bcc2d33 100644 (file)
@@ -9,8 +9,10 @@ import android.os.Bundle;
 import android.view.KeyEvent;\r
 import android.view.Window;\r
 import android.view.WindowManager;\r
+import android.widget.Toast;\r
 \r
 import com.yuji.ec.Initialize;\r
+import com.yuji.ec.R;\r
 \r
 public class BaseActivity extends Activity {\r
        @Override\r
@@ -18,10 +20,15 @@ public class BaseActivity extends Activity {
                super.onCreate(savedInstanceState);\r
                Debug.d(this, Debug.ON_CREATE);\r
 \r
-               String name = this.getLocalClassName();\r
-               Context context = getApplicationContext();\r
-               Initialize.initialize(context);\r
-               Initialize.initialize(context, name);\r
+               try {\r
+                       String name = this.getLocalClassName();\r
+                       Context context = getApplicationContext();\r
+                       Initialize.initialize(context);\r
+                       Initialize.initialize(context, name);\r
+               }\r
+               catch (Exception e){\r
+                       terminate(e);\r
+               }\r
        }\r
 \r
        @Override\r
@@ -124,20 +131,18 @@ public class BaseActivity extends Activity {
                if (t != null) {\r
                        Debug.d(target, null, t);\r
                }\r
-               // TODO\r
-//             showDialog(getString(R.string.dialogErrorTitle),\r
-//                             getString(R.string.dialogSystemError));\r
+               showDialog(getString(R.string.dialogErrorTitle),\r
+                               getString(R.string.dialogSystemError));\r
        }\r
 \r
        public void terminate(Throwable t) {\r
                if (t != null) {\r
                        Debug.d(this, null, t);\r
 \r
-                       // TODO\r
-//                     Toast.makeText(\r
-//                                     this,\r
-//                                     getString(R.string.toastSystem) + ":"\r
-//                                                     + t.getLocalizedMessage(), Toast.LENGTH_LONG);\r
+                       Toast.makeText(\r
+                                       this,\r
+                                       getString(R.string.toastSystem) + ":"\r
+                                                       + t.getLocalizedMessage(), Toast.LENGTH_LONG);\r
                }\r
                moveTaskToBack(true);\r
        }\r
index fd5a59a..6d26357 100644 (file)
@@ -15,6 +15,7 @@ import com.evernote.edam.error.EDAMErrorCode;
 import com.evernote.edam.error.EDAMNotFoundException;
 import com.evernote.edam.error.EDAMSystemException;
 import com.evernote.edam.error.EDAMUserException;
+import com.evernote.edam.notestore.NoteCollectionCounts;
 import com.evernote.edam.notestore.NoteFilter;
 import com.evernote.edam.notestore.NoteList;
 import com.evernote.edam.notestore.NoteStore;
@@ -136,7 +137,9 @@ public class EvernoteUtil {
                        if (token == null) {
                                return null;
                        }
-                       noteList = noteStore.findNotes(token, filter, 0, 100); // TODO 100
+                       // TODO #28107
+                       noteList = noteStore.findNotes(token, filter, 0, 1000);
+                       
                        errorCode = Error.NONE;
                } catch (EDAMUserException e) {
                        Debug.d(this, null, e);
@@ -354,15 +357,9 @@ public class EvernoteUtil {
                return note;
        }
 
-       //public List<com.yuji.ec.db.Note> getNoteContentList() {
        public List<com.yuji.ec.db.Note> getNoteContentList(NoteList noteList) {
                errorCode = Error.OTHER;
 
-//             NoteList noteList = getNoteList();
-//             if (noteList == null) {
-//                     return null;
-//             }
-
                List<com.yuji.ec.db.Note> list = new ArrayList<com.yuji.ec.db.Note>();
                HtmlParser parser = new HtmlParser();
 
@@ -372,14 +369,16 @@ public class EvernoteUtil {
                                String guid = n.getGuid();
                                Note nc = getNote(guid);
                                String content = nc.getContent();
-                               parser.parse(content);
+                               if (parser.parse(content)){
+                                       return null;
+                               }
                                String text = parser.getText();
                                com.yuji.ec.db.Note note = toNote(nc, text);
                                list.add(note);
                        }
                        errorCode = Error.NONE;
                } catch (EDAMNotFoundException e) {
-                       // TODO
+                       errorCode = Error.NOT_FOUND;
                        return null;
                }
                return list;
index 5125602..8739f87 100644 (file)
@@ -20,12 +20,12 @@ public class HtmlParser implements ContentHandler {
        private final static String NL = System.getProperty("line.separator");\r
        private StringBuffer sb = null;\r
        \r
-       public void parse(String str){\r
+       public boolean parse(String str){\r
 //             String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"\r
 //                             +"<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">"\r
 //                             +"<en-note><div><br clear=\"none\"/></div><hr /><h3>2012\94N4\8c\8e5\93ú 13:08</h3><hr /><div><div>\82 \82©\82³\82½\82È\82½\82È</div><div><br clear='none'/></div><div><br clear='none'/></div><div><br clear='none'/></div><div>\82 \82½</div></div><hr /><h3>2012\94N4\8c\8e5\93ú 16:17</h3><hr /><div><div>\83e\83X\83g</div></div><hr /><h3>2012\94N4\8c\8e5\93ú 20:24</h3><hr /><div><div>\82 \82©\82³\82½\82È</div><div>\82Í\82È\82Ü\82â\82è\82í</div></div></en-note>";\r
-       // TODO \83G\83\89\81[\82Ì\8fê\8d\87\r
-               \r
+\r
+               boolean result = false;\r
                try {\r
                sb = new StringBuffer();\r
                \r
@@ -37,19 +37,18 @@ public class HtmlParser implements ContentHandler {
 \r
             parser.setFeature(Parser.namespacesFeature, false);\r
             parser.parse(is);\r
+\r
+            result = true;\r
                } catch (SAXNotRecognizedException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
+                       Debug.d(this, null, e);\r
                } catch (SAXNotSupportedException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
+                       Debug.d(this, null, e);\r
                } catch (IOException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
+                       Debug.d(this, null, e);\r
                } catch (SAXException e) {\r
-                       // TODO Auto-generated catch block\r
-                       e.printStackTrace();\r
+                       Debug.d(this, null, e);\r
                }\r
+               return result;\r
        }\r
 \r
        public String getText(){\r
index e59d85f..855a3df 100644 (file)
@@ -14,6 +14,24 @@ import com.yuji.ec.db.NoteDao;
 import com.yuji.ec.utility.EvernoteUtil.Error;\r
 \r
 public class NoteUpdator {\r
+       private static NoteUpdator instance = null;\r
+       private static Object obj = new Object();\r
+\r
+       public static NoteUpdator getInstance() {\r
+               if (instance == null) {\r
+                       synchronized (obj) {\r
+                               if (instance == null) {\r
+                                       instance = new NoteUpdator();\r
+                               }\r
+                       }\r
+               }\r
+               return instance;\r
+       }\r
+\r
+       private NoteUpdator() {\r
+\r
+       }\r
+\r
        public void update(Context context, int noteItemType, String guid) {\r
                try {\r
                        EvernoteUtil util = EvernoteUtil.getInstance();\r
@@ -37,14 +55,14 @@ public class NoteUpdator {
                                noteList = util.getNoteList();\r
                                break;\r
                        }\r
-                       \r
-                       if (util.getErrorCode() != Error.NONE){\r
-                               return; // TODO\r
+\r
+                       if (util.getErrorCode() != Error.NONE) {\r
+                               return;\r
                        }\r
 \r
                        List<Note> list = util.getNoteContentList(noteList);\r
                        if (list == null) {\r
-                               // TODO\r
+                               // NOT_FOUND\r
                                return;\r
                        }\r
 \r
@@ -52,19 +70,20 @@ public class NoteUpdator {
                        SQLiteDatabase db = helper.getWritableDatabase();\r
                        NoteDao dao = (NoteDao) NoteDao.getInstance();\r
 \r
-                       db.beginTransaction();\r
-                       try {\r
-                               dao.deleteNT();\r
-                               for (Note note : list) {\r
-                                       dao.addNT(note);\r
+                       synchronized (obj) {\r
+                               db.beginTransaction();\r
+                               try {\r
+                                       dao.deleteNT();\r
+                                       for (Note note : list) {\r
+                                               dao.addNT(note);\r
+                                       }\r
+                                       db.setTransactionSuccessful();\r
+                               } finally {\r
+                                       db.endTransaction();\r
                                }\r
-                               db.setTransactionSuccessful();\r
-                       } finally {\r
-                               db.endTransaction();\r
                        }\r
                } catch (Exception e) {\r
-                       // TODO\r
-                       e.printStackTrace();\r
+                       Debug.d(this, null, e);\r
                }\r
        }\r
 }\r