OSDN Git Service

T28109
[everclip/source.git] / workspace / EverClip / src / com / yuji / ec / utility / NoteUpdator.java
1 package com.yuji.ec.utility;\r
2 \r
3 import java.util.List;\r
4 \r
5 import android.content.Context;\r
6 import android.database.sqlite.SQLiteDatabase;\r
7 \r
8 import com.evernote.edam.notestore.NoteList;\r
9 import com.yuji.ec.common.CommonUtil;\r
10 import com.yuji.ec.common.Constant;\r
11 import com.yuji.ec.db.DatabaseHelper;\r
12 import com.yuji.ec.db.Note;\r
13 import com.yuji.ec.db.NoteDao;\r
14 import com.yuji.ec.utility.EvernoteUtil.Error;\r
15 \r
16 public class NoteUpdator {\r
17         private static NoteUpdator instance = null;\r
18         private static Object obj = new Object();\r
19 \r
20         public static NoteUpdator getInstance() {\r
21                 if (instance == null) {\r
22                         synchronized (obj) {\r
23                                 if (instance == null) {\r
24                                         instance = new NoteUpdator();\r
25                                 }\r
26                         }\r
27                 }\r
28                 return instance;\r
29         }\r
30 \r
31         private NoteUpdator() {\r
32 \r
33         }\r
34 \r
35         public void update(Context context, int noteItemType, String guid) {\r
36                 try {\r
37                         EvernoteUtil util = EvernoteUtil.getInstance();\r
38                         String username = PasswordUtil.getUsername(context);\r
39                         String password = PasswordUtil.getPassword(context);\r
40                         if (!CommonUtil.isNull(username) && !CommonUtil.isNull(password)) {\r
41                                 util.setConfig(username, password);\r
42                         } else {\r
43                                 return;\r
44                         }\r
45 \r
46                         NoteList noteList;\r
47                         switch (noteItemType) {\r
48                         case Constant.NOTE_ITEM_TYPE_NOTE_BOOK:\r
49                                 noteList = util.getNoteListByNotebook(guid);\r
50                                 break;\r
51                         case Constant.NOTE_ITEM_TYPE_TAG:\r
52                                 noteList = util.getNoteListByTag(guid);\r
53                                 break;\r
54                         default:\r
55                                 noteList = util.getNoteList();\r
56                                 break;\r
57                         }\r
58 \r
59                         if (util.getErrorCode() != Error.NONE) {\r
60                                 return;\r
61                         }\r
62 \r
63                         List<Note> list = util.getNoteContentList(noteList);\r
64                         if (list == null) {\r
65                                 // NOT_FOUND\r
66                                 return;\r
67                         }\r
68 \r
69                         DatabaseHelper helper = DatabaseHelper.getInstance();\r
70                         SQLiteDatabase db = helper.getWritableDatabase();\r
71                         NoteDao dao = (NoteDao) NoteDao.getInstance();\r
72 \r
73                         synchronized (obj) {\r
74                                 db.beginTransaction();\r
75                                 try {\r
76                                         dao.deleteNT();\r
77                                         for (Note note : list) {\r
78                                                 dao.addNT(note);\r
79                                         }\r
80                                         db.setTransactionSuccessful();\r
81                                 } finally {\r
82                                         db.endTransaction();\r
83                                 }\r
84                         }\r
85                 } catch (Exception e) {\r
86                         Debug.d(this, null, e);\r
87                 }\r
88         }\r
89 }\r