diff --git a/.idea/sonarlint/issuestore/0/2/023468cfdd0b71d4098903b9070e364658e2fbcf b/.idea/sonarlint/issuestore/0/2/023468cfdd0b71d4098903b9070e364658e2fbcf
index fb72d00..1047716 100644
--- a/.idea/sonarlint/issuestore/0/2/023468cfdd0b71d4098903b9070e364658e2fbcf
+++ b/.idea/sonarlint/issuestore/0/2/023468cfdd0b71d4098903b9070e364658e2fbcf
@@ -1,21 +1,21 @@
 
->
-java:S1604t"(Make this anonymous inner class a lambda(ÉãÃ®
+?
+java:S1604…"(Make this anonymous inner class a lambda(ÉãÃ®
 V	java:S125"<This block of commented-out lines of code should be removed.(Í›�¸ýÿÿÿÿ
 €
-java:S3008""eRename this field "GTASK_SYNC_NOTIFICATION_ID" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ëíÅÍúÿÿÿÿ
+java:S3008%"eRename this field "GTASK_SYNC_NOTIFICATION_ID" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ëíÅÍúÿÿÿÿ
 L
-java:S1874 "1Remove this use of "AsyncTask"; it is deprecated.(¯ÚÔËúÿÿÿÿ
+java:S1874#"1Remove this use of "AsyncTask"; it is deprecated.(¯ÚÔËúÿÿÿÿ
 N
-java:S3878="8Remove this array creation and simply pass the elements.(‘ÀßŽ
+java:S3878D"8Remove this array creation and simply pass the elements.(‘ÀßŽ
 M
-java:S1874="7Remove this use of "publishProgress"; it is deprecated.(‘ÀßŽ
+java:S1874D"7Remove this use of "publishProgress"; it is deprecated.(‘ÀßŽ
 C
-java:S1172B".Remove this unused method parameter "content".(ÖÔ¥R
+java:S1172I".Remove this unused method parameter "content".(ÖÔ¥R
 K
-java:S1874E"0Remove this use of "defaults"; it is deprecated.(±æÝÈûÿÿÿÿ
-V	java:S125Q"<This block of commented-out lines of code should be removed.(ëœôùþÿÿÿÿ
+java:S1874L"0Remove this use of "defaults"; it is deprecated.(±æÝÈûÿÿÿÿ
+V	java:S125X"<This block of commented-out lines of code should be removed.(ëœôùþÿÿÿÿ
 e
-java:S1874^"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(Ã«•·ÿÿÿÿÿ
+java:S1874k"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(Ã«•·ÿÿÿÿÿ
 e
-java:S1874f"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(÷á‰½ûÿÿÿÿ
\ No newline at end of file
+java:S1874w"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(÷á‰½ûÿÿÿÿ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/4/5/4529b3a97b0f3b19b895aa06f23bed63ff38a312 b/.idea/sonarlint/issuestore/4/5/4529b3a97b0f3b19b895aa06f23bed63ff38a312
index 4ccc5d5..1e58eb6 100644
--- a/.idea/sonarlint/issuestore/4/5/4529b3a97b0f3b19b895aa06f23bed63ff38a312
+++ b/.idea/sonarlint/issuestore/4/5/4529b3a97b0f3b19b895aa06f23bed63ff38a312
@@ -1,29 +1,29 @@
 
-u
-java:S2293Ï"YReplace the type specification in this constructor call with the diamond operator ("<>").(æå�„þÿÿÿÿ
+|
+java:S2293Ö"YReplace the type specification in this constructor call with the diamond operator ("<>").(æå�„þÿÿÿÿ8Ð«âý«1
 a
 java:S2184t"FCast one of the operands of this multiplication operation to a "long".(â£›Úùÿÿÿÿ
 T
 java:S1874L"9Remove this use of "DefaultHttpClient"; it is deprecated.(ë¯¥ìþÿÿÿÿ
 H
-java:S1874è"2Remove this use of "HttpParams"; it is deprecated.(ŸÅ‹E
+java:S1874ï"2Remove this use of "HttpParams"; it is deprecated.(ŸÅ‹E
 M
-java:S1874è"7Remove this use of "BasicHttpParams"; it is deprecated.(ŸÅ‹E
+java:S1874ï"7Remove this use of "BasicHttpParams"; it is deprecated.(ŸÅ‹E
 X
-java:S1874é"<Remove this use of "HttpConnectionParams"; it is deprecated.(­Ú¬Ùùÿÿÿÿ
+java:S1874ð"<Remove this use of "HttpConnectionParams"; it is deprecated.(­Ú¬Ùùÿÿÿÿ
 X
-java:S1874é"<Remove this use of "setConnectionTimeout"; it is deprecated.(­Ú¬Ùùÿÿÿÿ
+java:S1874ð"<Remove this use of "setConnectionTimeout"; it is deprecated.(­Ú¬Ùùÿÿÿÿ
 X
-java:S1874ê"<Remove this use of "HttpConnectionParams"; it is deprecated.(åÙµÌûÿÿÿÿ
-P
-java:S1874ê"4Remove this use of "setSoTimeout"; it is deprecated.(åÙµÌûÿÿÿÿ
-O
-java:S1874ë"9Remove this use of "DefaultHttpClient"; it is deprecated.(ÛÔÇ/
+java:S1874ñ"<Remove this use of "HttpConnectionParams"; it is deprecated.(åÙµÌûÿÿÿÿ
+W
+java:S1874ñ"4Remove this use of "setSoTimeout"; it is deprecated.(åÙµÌûÿÿÿÿ8¡­âý«1
 V
-java:S1874î":Remove this use of "HttpProtocolParams"; it is deprecated.(Ã•êøÿÿÿÿÿ
-F
-java:S2093¶"*Change this "try" to a try-with-resources.(¡»¢üùÿÿÿÿ
-\
-java:S2147Ý"ECombine this catch with the one at line 345, which has the same body.(ï­£Ä
-\
-java:S2147œ"ECombine this catch with the one at line 536, which has the same body.(ï­£Ä
\ No newline at end of file
+java:S1874ò"9Remove this use of "DefaultHttpClient"; it is deprecated.(ÛÔÇ/8¢­âý«1
+]
+java:S1874õ":Remove this use of "HttpProtocolParams"; it is deprecated.(Ã•êøÿÿÿÿÿ8£­âý«1
+M
+java:S2093½"*Change this "try" to a try-with-resources.(¡»¢üùÿÿÿÿ8¨­âý«1
+c
+java:S2147ä"ECombine this catch with the one at line 352, which has the same body.(ï­£Ä8ª­âý«1
+c
+java:S2147£"ECombine this catch with the one at line 543, which has the same body.(ï­£Ä8·­âý«1
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a b/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a
index 0e25932..043cd23 100644
--- a/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a
+++ b/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a
@@ -1,5 +1,5 @@
 
-\
-java:S2259¹"@A "NullPointerException" could be thrown; "js" is nullable here.(±ú”§ýÿÿÿÿ
-i
-java:S3776…"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(´ÇŽª
\ No newline at end of file
+c
+java:S2259Ì"@A "NullPointerException" could be thrown; "js" is nullable here.(±ú”§ýÿÿÿÿ8ŠÚ�ü«1
+p
+java:S3776¥"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(´ÇŽª8å³�ü«1
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/1/f1226eeacd46c914d51f3d1a6d6f27377490d2a4 b/.idea/sonarlint/issuestore/f/1/f1226eeacd46c914d51f3d1a6d6f27377490d2a4
index 4c8c98f..bc07d45 100644
--- a/.idea/sonarlint/issuestore/f/1/f1226eeacd46c914d51f3d1a6d6f27377490d2a4
+++ b/.idea/sonarlint/issuestore/f/1/f1226eeacd46c914d51f3d1a6d6f27377490d2a4
@@ -1,15 +1,15 @@
 
+|
+java:S2293�"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ÿ“�…üÿÿÿÿ8ƒ¯‚ê«1
+|
+java:S2293—"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ÿ“�…üÿÿÿÿ8ƒ¯‚ê«1
+|
+java:S2293¢"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ÿ“�…üÿÿÿÿ8ƒ¯‚ê«1
+9
+java:S2386."Make this member "protected".(êÝÐu8Œ±‚ê«1
 u
-java:S2293�"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ÿ“�…üÿÿÿÿ
-u
-java:S2293—"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ÿ“�…üÿÿÿÿ
-u
-java:S2293¢"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ÿ“�…üÿÿÿÿ
-2
-java:S2386."Make this member "protected".(êÝÐu
-n
-java:S3776å"RRefactor this method to reduce its Cognitive Complexity from 91 to the 15 allowed.(¸ŸêÉýÿÿÿÿ
-h
-java:S3776»"RRefactor this method to reduce its Cognitive Complexity from 32 to the 15 allowed.(ë®Æ
-ã
-java:S6541å"ÆA "Brain Method" was detected. Refactor it to reduce at least one of the following metrics: LOC from 116 to 64, Complexity from 51 to 14, Nesting Level from 6 to 2, Number of Variables from 23 to 6.(¸ŸêÉýÿÿÿÿ
\ No newline at end of file
+java:S3776ï"RRefactor this method to reduce its Cognitive Complexity from 91 to the 15 allowed.(¸ŸêÉýÿÿÿÿ8�±‚ê«1
+o
+java:S3776Ï"RRefactor this method to reduce its Cognitive Complexity from 32 to the 15 allowed.(ë®Æ8­‘™ê«1
+ê
+java:S6541ï"ÆA "Brain Method" was detected. Refactor it to reduce at least one of the following metrics: LOC from 116 to 64, Complexity from 51 to 14, Nesting Level from 6 to 2, Number of Variables from 23 to 6.(¸ŸêÉýÿÿÿÿ8°±‚ê«1
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/index.pb b/.idea/sonarlint/issuestore/index.pb
index 0cf0abf..5177437 100644
--- a/.idea/sonarlint/issuestore/index.pb
+++ b/.idea/sonarlint/issuestore/index.pb
@@ -148,4 +148,24 @@ p
 k
 ;app/src/main/java/net/micode/notes/gtask/data/MetaData.java,c\1\c182d0c9c237ea8a46a92ccaae9bb5c751923a88
 j
-:app/src/main/java/net/micode/notes/data/NotesProvider.java,6\a\6a65e747031f27aef20597b4181148a9fbf963d5
\ No newline at end of file
+:app/src/main/java/net/micode/notes/data/NotesProvider.java,6\a\6a65e747031f27aef20597b4181148a9fbf963d5
+g
+7app/src/main/java/net/micode/notes/gtask/data/Node.java,3\a\3aac5305cb73bfbdeb8078cd264d04323fa80e92
+j
+:app/src/main/java/net/micode/notes/gtask/data/SqlData.java,9\3\934a4e2abf19d28a53f6aeb1dcd99248c44b6892
+j
+:app/src/main/java/net/micode/notes/gtask/data/SqlNote.java,f\1\f1226eeacd46c914d51f3d1a6d6f27377490d2a4
+g
+7app/src/main/java/net/micode/notes/gtask/data/Task.java,d\1\d187f1271655c3d91661a39fe6de395b6a9f290a
+k
+;app/src/main/java/net/micode/notes/gtask/data/TaskList.java,e\0\e094aec5c3e1b6f44539adff3114f5a1ad603ddc
+~
+Napp/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java,5\f\5f6162ca79fcea353b280c5dc84973a9c37d2c74
+
+Oapp/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java,0\f\0f0f0549145d0e2bfb972ba1ed2e2c38bfd6d1b1
+s
+Capp/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java,0\2\023468cfdd0b71d4098903b9070e364658e2fbcf
+p
+@app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java,4\5\4529b3a97b0f3b19b895aa06f23bed63ff38a312
+q
+Aapp/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java,a\b\ab153b0256bc5f6c194e188cec0b8e327e347a90
\ No newline at end of file
diff --git a/.idea/sonarlint/securityhotspotstore/index.pb b/.idea/sonarlint/securityhotspotstore/index.pb
index c2cf1ae..84ad721 100644
--- a/.idea/sonarlint/securityhotspotstore/index.pb
+++ b/.idea/sonarlint/securityhotspotstore/index.pb
@@ -148,4 +148,24 @@ p
 j
 :app/src/main/java/net/micode/notes/data/NotesProvider.java,6\a\6a65e747031f27aef20597b4181148a9fbf963d5
 k
-;app/src/main/java/net/micode/notes/gtask/data/MetaData.java,c\1\c182d0c9c237ea8a46a92ccaae9bb5c751923a88
\ No newline at end of file
+;app/src/main/java/net/micode/notes/gtask/data/MetaData.java,c\1\c182d0c9c237ea8a46a92ccaae9bb5c751923a88
+g
+7app/src/main/java/net/micode/notes/gtask/data/Node.java,3\a\3aac5305cb73bfbdeb8078cd264d04323fa80e92
+j
+:app/src/main/java/net/micode/notes/gtask/data/SqlData.java,9\3\934a4e2abf19d28a53f6aeb1dcd99248c44b6892
+j
+:app/src/main/java/net/micode/notes/gtask/data/SqlNote.java,f\1\f1226eeacd46c914d51f3d1a6d6f27377490d2a4
+g
+7app/src/main/java/net/micode/notes/gtask/data/Task.java,d\1\d187f1271655c3d91661a39fe6de395b6a9f290a
+k
+;app/src/main/java/net/micode/notes/gtask/data/TaskList.java,e\0\e094aec5c3e1b6f44539adff3114f5a1ad603ddc
+~
+Napp/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java,5\f\5f6162ca79fcea353b280c5dc84973a9c37d2c74
+
+Oapp/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java,0\f\0f0f0549145d0e2bfb972ba1ed2e2c38bfd6d1b1
+p
+@app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java,4\5\4529b3a97b0f3b19b895aa06f23bed63ff38a312
+s
+Capp/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java,0\2\023468cfdd0b71d4098903b9070e364658e2fbcf
+q
+Aapp/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java,a\b\ab153b0256bc5f6c194e188cec0b8e327e347a90
\ No newline at end of file
diff --git a/app/src/main/java/net/micode/notes/gtask/data/Task.java b/app/src/main/java/net/micode/notes/gtask/data/Task.java
index 6a19454..7f7258c 100644
--- a/app/src/main/java/net/micode/notes/gtask/data/Task.java
+++ b/app/src/main/java/net/micode/notes/gtask/data/Task.java
@@ -54,6 +54,11 @@ public class Task extends Node {
         mMetaInfo = null;
     }
 
+    /**
+     * ç”Ÿæˆ�åˆ›å»ºä»»åŠ¡çš„JSONæ•°æ�®
+     * @param actionId
+     * @return
+     */
     public JSONObject getCreateAction(int actionId) {
         JSONObject js = new JSONObject();
 
@@ -103,6 +108,12 @@ public class Task extends Node {
         return js;
     }
 
+
+    /**
+     * ç”Ÿæˆ�æ›´æ–°ä»»åŠ¡çš„JSONæ•°æ�®
+     * @param actionId
+     * @return
+     */
     public JSONObject getUpdateAction(int actionId) {
         JSONObject js = new JSONObject();
 
@@ -135,6 +146,10 @@ public class Task extends Node {
         return js;
     }
 
+    /**
+     * ä»Žè¿œç¨‹æœ�åŠ¡å™¨çš„JSONæ•°æ�®ä¸­è®¾ç½®ä»»åŠ¡çš„å†…å®¹
+     * @param js
+     */
     public void setContentByRemoteJSON(JSONObject js) {
         if (js != null) {
             try {
@@ -175,6 +190,10 @@ public class Task extends Node {
         }
     }
 
+    /**
+     * ä»Žæœ¬åœ°JSONæ•°æ�®ä¸­è®¾ç½®ä»»åŠ¡çš„å†…å®¹
+     * @param js
+     */
     public void setContentByLocalJSON(JSONObject js) {
         if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)
                 || !js.has(GTaskStringUtils.META_HEAD_DATA)) {
@@ -204,6 +223,10 @@ public class Task extends Node {
         }
     }
 
+    /**
+     * å°†ä»»åŠ¡çš„å†…å®¹è½¬æ�¢ä¸ºæœ¬åœ°çš„JSONæ•°æ�®
+     * @return
+     */
     public JSONObject getLocalJSONFromContent() {
         String name = getName();
         try {
@@ -247,6 +270,10 @@ public class Task extends Node {
         }
     }
 
+    /**
+     * è®¾ç½®ä»»åŠ¡çš„å…ƒæ•°æ�®ä¿¡æ�¯
+     * @param metaData
+     */
     public void setMetaInfo(MetaData metaData) {
         if (metaData != null && metaData.getNotes() != null) {
             try {
@@ -258,6 +285,11 @@ public class Task extends Node {
         }
     }
 
+    /**
+     * èŽ·å�–å�Œæ­¥æ“�ä½œçš„åŠ¨ä½œ
+     * @param c
+     * @return
+     */
     public int getSyncAction(Cursor c) {
         try {
             JSONObject noteInfo = null;
@@ -311,6 +343,10 @@ public class Task extends Node {
         return SYNC_ACTION_ERROR;
     }
 
+    /**
+     *åˆ¤æ–­ä»»åŠ¡æ˜¯å�¦å€¼å¾—ä¿�å­˜
+     * @return
+     */
     public boolean isWorthSaving() {
         return mMetaInfo != null || (getName() != null && getName().trim().length() > 0)
                 || (getNotes() != null && getNotes().trim().length() > 0);
diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java
index 56c8e5e..d6b382d 100644
--- a/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java
+++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java
@@ -29,6 +29,9 @@ import net.micode.notes.ui.NotesListActivity;
 import net.micode.notes.ui.NotesPreferenceActivity;
 
 
+/**
+ * æ‰§è¡Œå�Žå�°å¼‚æ­¥ä»»åŠ¡
+ */
 public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
 
     private static int GTASK_SYNC_NOTIFICATION_ID = 5234235;
@@ -57,6 +60,10 @@ public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
         mTaskManager.cancelSync();
     }
 
+    /**
+     * å�‘å¸ƒè¿›åº¦ä¿¡æ�¯
+     * @param message
+     */
     public void publishProgess(String message) {
         publishProgress(new String[] {
             message
@@ -83,6 +90,11 @@ public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
         mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);
     }
 
+    /**
+     * åœ¨å�Žå�°çº¿ç¨‹ä¸­æ‰§è¡Œçš„ä»»åŠ¡
+     * @param unused
+     * @return
+     */
     @Override
     protected Integer doInBackground(Void... unused) {
         publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity
@@ -90,6 +102,7 @@ public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
         return mTaskManager.sync(mContext, this);
     }
 
+
     @Override
     protected void onProgressUpdate(String... progress) {
         showNotification(R.string.ticker_syncing, progress[0]);
@@ -98,6 +111,10 @@ public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
         }
     }
 
+    /**
+     * æ ¹æ�®ä»»åŠ¡çš„ç»“æžœæ˜¾ç¤ºç›¸åº”çš„é€šçŸ¥
+     * @param result
+     */
     @Override
     protected void onPostExecute(Integer result) {
         if (result == GTaskManager.STATE_SUCCESS) {
diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java
index 0ee5dc8..217cbfb 100644
--- a/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java
+++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java
@@ -114,10 +114,13 @@ public class GTaskClient {
         // we suppose that the cookie would expire after 5 minutes
         // then we need to re-login
         final long interval = 1000 * 60 * 5;
+
+        //æ ¹æ�®è®¾å®šçš„æ—¶é—´é—´éš”å’Œä¸Šæ¬¡ç™»å½•æ—¶é—´åˆ¤æ–­æ˜¯å�¦éœ€è¦�é‡�æ–°ç™»å½•
         if (mLastLoginTime + interval < System.currentTimeMillis()) {
             mLoggedin = false;
         }
 
+        //æ£€æŸ¥æ˜¯å�¦éœ€è¦�é‡�æ–°ç™»å½•ï¼ˆå�¯èƒ½æ˜¯å› ä¸ºåˆ‡æ�¢äº†è´¦æˆ·ï¼‰ã€‚
         // need to re-login after account switch
         if (mLoggedin
                 && !TextUtils.equals(getSyncAccount().name, NotesPreferenceActivity
@@ -130,13 +133,16 @@ public class GTaskClient {
             return true;
         }
 
+        //æ›´æ–°æœ€æ–°ç™»å½•æ—¶é—´ä¸ºå½“å‰�æ—¶é—´
         mLastLoginTime = System.currentTimeMillis();
+        //è°ƒç”¨loginGoogleAccountæ–¹æ³•è¿›è¡ŒGoogleè´¦æˆ·ç™»å½•ï¼Œå¹¶èŽ·å�–è®¤è¯�ä»¤ç‰Œã€‚
         String authToken = loginGoogleAccount(activity, false);
         if (authToken == null) {
             Log.e(TAG, "login google account failed");
             return false;
         }
 
+        //å¦‚æžœä¸�æ˜¯ä»¥ "gmail.com" æˆ– "googlemail.com" ç»“å°¾çš„è‡ªå®šä¹‰åŸŸå��è´¦æˆ·ï¼Œåˆ™æž„å»ºç™»å½•URLï¼Œå¹¶ä½¿ç”¨tryToLoginGtaskæ–¹æ³•å°�è¯•ç™»å½•
         // login with custom domain if necessary
         if (!(mAccount.name.toLowerCase().endsWith("gmail.com") || mAccount.name.toLowerCase()
                 .endsWith("googlemail.com"))) {
@@ -152,6 +158,7 @@ public class GTaskClient {
             }
         }
 
+        //å¦‚æžœè‡ªå®šä¹‰åŸŸå��ç™»å½•å¤±è´¥ï¼Œåˆ™ä½¿ç”¨Googleå®˜æ–¹çš„ç™»å½•URLï¼Œå¹¶ä½¿ç”¨tryToLoginGtaskæ–¹æ³•å°�è¯•ç™»å½•
         // try to login with google official url
         if (!mLoggedin) {
             mGetUrl = GTASK_GET_URL;
diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java
index d2b4082..0197168 100644
--- a/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java
+++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java
@@ -247,6 +247,10 @@ public class GTaskManager {
         }
     }
 
+    /**
+     * å°†æœ¬åœ°ç¬”è®°ä¸Žè¿œç¨‹GTasksè¿›è¡Œå�Œæ­¥
+     * @throws NetworkFailureException
+     */
     private void syncContent() throws NetworkFailureException {
         int syncType;
         Cursor c = null;
