diff --git a/doc/实践考评-阅读维护开源软件的团队自评报告模板.xlsx b/doc/实践考评-阅读维护开源软件的团队自评报告模板.xlsx
new file mode 100644
index 0000000..4dfad4a
Binary files /dev/null and b/doc/实践考评-阅读维护开源软件的团队自评报告模板.xlsx differ
diff --git a/doc/实践考评-阅读维护开源软件的汇报.pptx b/doc/实践考评-阅读维护开源软件的汇报.pptx
new file mode 100644
index 0000000..8f6dc05
Binary files /dev/null and b/doc/实践考评-阅读维护开源软件的汇报.pptx differ
diff --git a/doc/开源软件泛读、标注和维护报告文档.docx b/doc/开源软件泛读、标注和维护报告文档.docx
index 555287c..982fe8f 100644
Binary files a/doc/开源软件泛读、标注和维护报告文档.docx and b/doc/开源软件泛读、标注和维护报告文档.docx differ
diff --git a/src/.gradle/8.1/checksums/checksums.lock b/src/.gradle/8.1/checksums/checksums.lock
new file mode 100644
index 0000000..2488e81
Binary files /dev/null and b/src/.gradle/8.1/checksums/checksums.lock differ
diff --git a/src/.gradle/8.1/checksums/md5-checksums.bin b/src/.gradle/8.1/checksums/md5-checksums.bin
new file mode 100644
index 0000000..c02726a
Binary files /dev/null and b/src/.gradle/8.1/checksums/md5-checksums.bin differ
diff --git a/src/.gradle/8.1/checksums/sha1-checksums.bin b/src/.gradle/8.1/checksums/sha1-checksums.bin
new file mode 100644
index 0000000..01641b1
Binary files /dev/null and b/src/.gradle/8.1/checksums/sha1-checksums.bin differ
diff --git a/src/.gradle/8.1/dependencies-accessors/dependencies-accessors.lock b/src/.gradle/8.1/dependencies-accessors/dependencies-accessors.lock
new file mode 100644
index 0000000..7d7c310
Binary files /dev/null and b/src/.gradle/8.1/dependencies-accessors/dependencies-accessors.lock differ
diff --git a/src/12.txt b/src/.gradle/8.1/dependencies-accessors/gc.properties
similarity index 100%
rename from src/12.txt
rename to src/.gradle/8.1/dependencies-accessors/gc.properties
diff --git a/src/.gradle/8.1/executionHistory/executionHistory.bin b/src/.gradle/8.1/executionHistory/executionHistory.bin
new file mode 100644
index 0000000..10b7c2f
Binary files /dev/null and b/src/.gradle/8.1/executionHistory/executionHistory.bin differ
diff --git a/src/.gradle/8.1/executionHistory/executionHistory.lock b/src/.gradle/8.1/executionHistory/executionHistory.lock
new file mode 100644
index 0000000..8a7da3c
Binary files /dev/null and b/src/.gradle/8.1/executionHistory/executionHistory.lock differ
diff --git a/src/.gradle/8.1/fileChanges/last-build.bin b/src/.gradle/8.1/fileChanges/last-build.bin
new file mode 100644
index 0000000..f76dd23
Binary files /dev/null and b/src/.gradle/8.1/fileChanges/last-build.bin differ
diff --git a/src/.gradle/8.1/fileHashes/fileHashes.bin b/src/.gradle/8.1/fileHashes/fileHashes.bin
new file mode 100644
index 0000000..b1f652f
Binary files /dev/null and b/src/.gradle/8.1/fileHashes/fileHashes.bin differ
diff --git a/src/.gradle/8.1/fileHashes/fileHashes.lock b/src/.gradle/8.1/fileHashes/fileHashes.lock
new file mode 100644
index 0000000..aad3cc5
Binary files /dev/null and b/src/.gradle/8.1/fileHashes/fileHashes.lock differ
diff --git a/src/.gradle/8.1/fileHashes/resourceHashesCache.bin b/src/.gradle/8.1/fileHashes/resourceHashesCache.bin
new file mode 100644
index 0000000..c8000f8
Binary files /dev/null and b/src/.gradle/8.1/fileHashes/resourceHashesCache.bin differ
diff --git a/src/.gradle/8.1/gc.properties b/src/.gradle/8.1/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/src/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/src/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000..0e9e30c
Binary files /dev/null and b/src/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/src/.gradle/buildOutputCleanup/cache.properties b/src/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000..2be95b4
--- /dev/null
+++ b/src/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Wed Jan 03 09:28:56 CST 2024
+gradle.version=8.1
diff --git a/src/.gradle/buildOutputCleanup/outputFiles.bin b/src/.gradle/buildOutputCleanup/outputFiles.bin
new file mode 100644
index 0000000..74e33fd
Binary files /dev/null and b/src/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/src/.gradle/file-system.probe b/src/.gradle/file-system.probe
new file mode 100644
index 0000000..979c406
Binary files /dev/null and b/src/.gradle/file-system.probe differ
diff --git a/src/.gradle/vcs-1/gc.properties b/src/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/src/Notes-master/.idea/.gitignore b/src/.idea/.gitignore
similarity index 100%
rename from src/Notes-master/.idea/.gitignore
rename to src/.idea/.gitignore
diff --git a/src/.idea/checkstyle-idea.xml b/src/.idea/checkstyle-idea.xml
new file mode 100644
index 0000000..f5b372c
--- /dev/null
+++ b/src/.idea/checkstyle-idea.xml
@@ -0,0 +1,16 @@
+
+
+
+ 10.12.5
+ JavaOnly
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/compiler.xml b/src/.idea/compiler.xml
new file mode 100644
index 0000000..b589d56
--- /dev/null
+++ b/src/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/gradle.xml b/src/.idea/gradle.xml
new file mode 100644
index 0000000..ae388c2
--- /dev/null
+++ b/src/.idea/gradle.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/intellij-javadocs-4.0.1.xml b/src/.idea/intellij-javadocs-4.0.1.xml
new file mode 100644
index 0000000..3ed9781
--- /dev/null
+++ b/src/.idea/intellij-javadocs-4.0.1.xml
@@ -0,0 +1,204 @@
+
+
+
+
+ UPDATE
+ false
+ true
+
+ METHOD
+ TYPE
+ FIELD
+
+
+ DEFAULT
+ PUBLIC
+ PROTECTED
+
+
+
+
+
+ ^.*(public|protected|private)*.+interface\s+\w+.*
+ /**\n
+ * The interface ${name}.\n
+<#if element.typeParameters?has_content> * \n
+</#if>
+<#list element.typeParameters as typeParameter>
+ * @param <${typeParameter.name}> the type parameter\n
+</#list>
+ */
+
+
+ ^.*(public|protected|private)*.+enum\s+\w+.*
+ /**\n
+ * The enum ${name}.\n
+ */
+
+
+ ^.*(public|protected|private)*.+class\s+\w+.*
+ /**\n
+ * The type ${name}.\n
+<#if element.typeParameters?has_content> * \n
+</#if>
+<#list element.typeParameters as typeParameter>
+ * @param <${typeParameter.name}> the type parameter\n
+</#list>
+ */
+
+
+ .+
+ /**\n
+ * The type ${name}.\n
+ */
+
+
+
+
+ .+
+ /**\n
+ * Instantiates a new ${name}.\n
+<#if element.parameterList.parameters?has_content>
+ *\n
+</#if>
+<#list element.parameterList.parameters as parameter>
+ * @param ${parameter.name} the ${paramNames[parameter.name]}\n
+</#list>
+<#if element.throwsList.referenceElements?has_content>
+ *\n
+</#if>
+<#list element.throwsList.referenceElements as exception>
+ * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
+</#list>
+ */
+
+
+
+
+ ^.*(public|protected|private)*\s*.*(\w(\s*<.+>)*)+\s+get\w+\s*\(.*\).+
+ /**\n
+ * Gets ${partName}.\n
+<#if element.typeParameters?has_content> * \n
+</#if>
+<#list element.typeParameters as typeParameter>
+ * @param <${typeParameter.name}> the type parameter\n
+</#list>
+<#if element.parameterList.parameters?has_content>
+ *\n
+</#if>
+<#list element.parameterList.parameters as parameter>
+ * @param ${parameter.name} the ${paramNames[parameter.name]}\n
+</#list>
+<#if isNotVoid>
+ *\n
+ * @return the ${partName}\n
+</#if>
+<#if element.throwsList.referenceElements?has_content>
+ *\n
+</#if>
+<#list element.throwsList.referenceElements as exception>
+ * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
+</#list>
+ */
+
+
+ ^.*(public|protected|private)*\s*.*(void|\w(\s*<.+>)*)+\s+set\w+\s*\(.*\).+
+ /**\n
+ * Sets ${partName}.\n
+<#if element.typeParameters?has_content> * \n
+</#if>
+<#list element.typeParameters as typeParameter>
+ * @param <${typeParameter.name}> the type parameter\n
+</#list>
+<#if element.parameterList.parameters?has_content>
+ *\n
+</#if>
+<#list element.parameterList.parameters as parameter>
+ * @param ${parameter.name} the ${paramNames[parameter.name]}\n
+</#list>
+<#if isNotVoid>
+ *\n
+ * @return the ${partName}\n
+</#if>
+<#if element.throwsList.referenceElements?has_content>
+ *\n
+</#if>
+<#list element.throwsList.referenceElements as exception>
+ * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
+</#list>
+ */
+
+
+ ^.*((public\s+static)|(static\s+public))\s+void\s+main\s*\(\s*String\s*(\[\s*\]|\.\.\.)\s+\w+\s*\).+
+ /**\n
+ * The entry point of application.\n
+
+ <#if element.parameterList.parameters?has_content>
+ *\n
+</#if>
+ * @param ${element.parameterList.parameters[0].name} the input arguments\n
+<#if element.throwsList.referenceElements?has_content>
+ *\n
+</#if>
+<#list element.throwsList.referenceElements as exception>
+ * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
+</#list>
+ */
+
+
+ .+
+ /**\n
+ * ${name}<#if isNotVoid> ${return}</#if>.\n
+<#if element.typeParameters?has_content> * \n
+</#if>
+<#list element.typeParameters as typeParameter>
+ * @param <${typeParameter.name}> the type parameter\n
+</#list>
+<#if element.parameterList.parameters?has_content>
+ *\n
+</#if>
+<#list element.parameterList.parameters as parameter>
+ * @param ${parameter.name} the ${paramNames[parameter.name]}\n
+</#list>
+<#if isNotVoid>
+ *\n
+ * @return the ${return}\n
+</#if>
+<#if element.throwsList.referenceElements?has_content>
+ *\n
+</#if>
+<#list element.throwsList.referenceElements as exception>
+ * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
+</#list>
+ */
+
+
+
+
+ ^.*(public|protected|private)*.+static.*(\w\s\w)+.+
+ /**\n
+ * The constant ${element.getName()}.\n
+ */
+
+
+ ^.*(public|protected|private)*.*(\w\s\w)+.+
+ /**\n
+ <#if element.parent.isInterface()>
+ * The constant ${element.getName()}.\n
+<#else>
+ * The ${name}.\n
+</#if> */
+
+
+ .+
+ /**\n
+ <#if element.parent.isEnum()>
+ *${name} ${typeName}.\n
+<#else>
+ * The ${name}.\n
+</#if>*/
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/jarRepositories.xml b/src/.idea/jarRepositories.xml
new file mode 100644
index 0000000..8b0863d
--- /dev/null
+++ b/src/.idea/jarRepositories.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/misc.xml b/src/.idea/misc.xml
new file mode 100644
index 0000000..8978d23
--- /dev/null
+++ b/src/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/modules.xml b/src/.idea/modules.xml
new file mode 100644
index 0000000..f23d870
--- /dev/null
+++ b/src/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/modules/app/note.app.androidTest.iml b/src/.idea/modules/app/note.app.androidTest.iml
new file mode 100644
index 0000000..93a7ea4
--- /dev/null
+++ b/src/.idea/modules/app/note.app.androidTest.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/modules/app/note.app.iml b/src/.idea/modules/app/note.app.iml
new file mode 100644
index 0000000..9cfeb12
--- /dev/null
+++ b/src/.idea/modules/app/note.app.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/modules/app/note.app.main.iml b/src/.idea/modules/app/note.app.main.iml
new file mode 100644
index 0000000..3e642d4
--- /dev/null
+++ b/src/.idea/modules/app/note.app.main.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/modules/app/note.app.unitTest.iml b/src/.idea/modules/app/note.app.unitTest.iml
new file mode 100644
index 0000000..3d588c0
--- /dev/null
+++ b/src/.idea/modules/app/note.app.unitTest.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/modules/app/note1.app.androidTest.iml b/src/.idea/modules/app/note1.app.androidTest.iml
new file mode 100644
index 0000000..13731ac
--- /dev/null
+++ b/src/.idea/modules/app/note1.app.androidTest.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/modules/app/note1.app.iml b/src/.idea/modules/app/note1.app.iml
new file mode 100644
index 0000000..5bfe796
--- /dev/null
+++ b/src/.idea/modules/app/note1.app.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/modules/app/note1.app.main.iml b/src/.idea/modules/app/note1.app.main.iml
new file mode 100644
index 0000000..f0d4196
--- /dev/null
+++ b/src/.idea/modules/app/note1.app.main.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/modules/app/note1.app.unitTest.iml b/src/.idea/modules/app/note1.app.unitTest.iml
new file mode 100644
index 0000000..c1e129b
--- /dev/null
+++ b/src/.idea/modules/app/note1.app.unitTest.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/modules/note.iml b/src/.idea/modules/note.iml
new file mode 100644
index 0000000..a185a1a
--- /dev/null
+++ b/src/.idea/modules/note.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/note1.iml b/src/.idea/note1.iml
new file mode 100644
index 0000000..3fe0d9c
--- /dev/null
+++ b/src/.idea/note1.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/0/2/023468cfdd0b71d4098903b9070e364658e2fbcf b/src/.idea/sonarlint/issuestore/0/2/023468cfdd0b71d4098903b9070e364658e2fbcf
new file mode 100644
index 0000000..d867d1c
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/0/2/023468cfdd0b71d4098903b9070e364658e2fbcf
@@ -0,0 +1,10 @@
+
+F
+java:S1604"(Make this anonymous inner class a lambda(î81
+V java:S125"").(ə
+o
+java:S2293]"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+o
+java:S2293m"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ȫ
+J
+java:S1066U"/Merge this if statement with the enclosing one.(ڧ
+
+java:S1319\"mThe return type of this method should be an interface such as "Set" rather than the implementation "HashSet".(
+
+java:S1319l"mThe return type of this method should be an interface such as "Set" rather than the implementation "HashSet".(
+j
+java:S1104*"TMake widgetId a static final constant or non-public and provide accessors if needed.(ǎ
+q
+java:S1104+"VMake widgetType a static final constant or non-public and provide accessors if needed.(漬
+C
+java:S5411_"(Use a primitive boolean expression here.(ɯ
+C
+java:S5411o"(Use a primitive boolean expression here.(ɯ
+D
+java:S5411"(Use a primitive boolean expression here.(
+7
+java:S1116,"Remove this empty statement.(
+D
+java:S1874/".Remove this use of ""; it is deprecated.(
+J
+java:S2864^"4Iterate over the "entrySet" instead of the "keySet".(
+B
+java:S1125_"'Remove the unnecessary boolean literal.(ɯ
+J
+java:S2864n"4Iterate over the "entrySet" instead of the "keySet".(
+B
+java:S1125o"'Remove the unnecessary boolean literal.(ɯ
+A
+java:S1168|"+Return an empty collection instead of null.(
+C
+java:S1125"'Remove the unnecessary boolean literal.(
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/2/b/2bfc771e07e87c37d3a76a2c815bc8fb30649798 b/src/.idea/sonarlint/issuestore/2/b/2bfc771e07e87c37d3a76a2c815bc8fb30649798
new file mode 100644
index 0000000..99c727e
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/2/b/2bfc771e07e87c37d3a76a2c815bc8fb30649798
@@ -0,0 +1,10 @@
+
+E
+java:S1604/"(Make this anonymous inner class a lambda(˽81
+o java:S100("NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(81
+
+java:S3923Q"]This conditional operation returns the same value whether the condition is "true" or "false".(Ҏ81
+W
+java:S1874Q"5Remove this use of "FORMAT_24HOUR"; it is deprecated.(Ҏ81
+W
+java:S1874Q"5Remove this use of "FORMAT_24HOUR"; it is deprecated.(Ҏ81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/3/2/32360bf24febc78f20db52498c7576b3d8650d56 b/src/.idea/sonarlint/issuestore/3/2/32360bf24febc78f20db52498c7576b3d8650d56
new file mode 100644
index 0000000..c5812ef
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/3/2/32360bf24febc78f20db52498c7576b3d8650d56
@@ -0,0 +1,32 @@
+
+v
+java:S22934"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
+i
+java:S1192G"GDefine a constant instead of duplicating this literal "%s: %s" 4 times.(8ڝ1
+j
+java:S1192~"HDefine a constant instead of duplicating this literal "=? AND " 4 times.(8ڝ1
+R
+java:S1066"/Merge this if statement with the enclosing one.(䲜8ڝ1
+
+java:S1319"mThe return type of this method should be an interface such as "Set" rather than the implementation "HashSet".(8ڝ1
+\
+java:S1118&":Add a private constructor to hide the implicit public one.(81
+[
+java:S1155/">Use isEmpty() to check whether the collection is empty or not.(81
+a
+java:S2147H"DCombine this catch with the one at line 70, which has the same body.(暩81
+b
+java:S2147q"ECombine this catch with the one at line 111, which has the same body.(暩81
+Y java:S125"").(各81
+i
+java:S2184"FCast one of the operands of this multiplication operation to a "long".(⣛81
+[
+java:S1874T"9Remove this use of "DefaultHttpClient"; it is deprecated.(믥81
+O
+java:S1874"2Remove this use of "HttpParams"; it is deprecated.(ŋE81
+T
+java:S1874"7Remove this use of "BasicHttpParams"; it is deprecated.(ŋE81
+_
+java:S1874"").(81
+K
+java:S1604"(Make this anonymous inner class a lambda(81
+m
+java:S1301x"KReplace this "switch" statement by "if" statements to increase readability.(81
+T
+java:S1135p"2Complete the task associated to this TODO comment.(81
+C java:S131x""Add a default case to this switch.(81
+e
+java:S1126"BReplace this if-then-else statement by a single method invocation.(忥81
+W
+java:S2864"4Iterate over the "entrySet" instead of the "keySet".(Κ81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/5/7/577f30d26378ec8a2bd2e4a43f3c79b3f04c402c b/src/.idea/sonarlint/issuestore/5/7/577f30d26378ec8a2bd2e4a43f3c79b3f04c402c
new file mode 100644
index 0000000..309a800
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/5/7/577f30d26378ec8a2bd2e4a43f3c79b3f04c402c
@@ -0,0 +1,119 @@
+
+|
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(ӏ81
+|
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(81
+|
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(81
+w
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(81
+w
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(8❭1
+w
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(艥81
+f
+java:S1192"HDefine a constant instead of duplicating this literal "[local]" 3 times.(81
+j
+java:S1192"GDefine a constant instead of duplicating this literal "cancel" 3 times.(̺81
+g
+java:S1192"IDefine a constant instead of duplicating this literal "[/local]" 3 times.(81
+n java:S117"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ţ81
+n java:S117"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(81
+s java:S117"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(81
+n java:S117
+"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(81
+n java:S117
+"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(81
+F
+java:S1604"(Make this anonymous inner class a lambda(ȼ81
+F
+java:S1604"(Make this anonymous inner class a lambda(Ư81
+F
+java:S1604"(Make this anonymous inner class a lambda(81
+K
+java:S1604"(Make this anonymous inner class a lambda(̺81
+F
+java:S1604"(Make this anonymous inner class a lambda(У81
+K
+java:S1604"(Make this anonymous inner class a lambda(ö81
+K
+java:S1604"(Make this anonymous inner class a lambda(81
+F
+java:S1604"(Make this anonymous inner class a lambda(깔81
+F
+java:S1604"(Make this anonymous inner class a lambda(ά81
+F
+java:S1604"(Make this anonymous inner class a lambda(81
+K
+java:S1604"(Make this anonymous inner class a lambda(̺81
+F
+java:S1604"(Make this anonymous inner class a lambda(ά81
+K
+java:S1604"(Make this anonymous inner class a lambda(̺81
+F
+java:S1604"(Make this anonymous inner class a lambda(81
+F
+java:S1604"(Make this anonymous inner class a lambda(ߒ81
+n
+java:S1301 "KReplace this "switch" statement by "if" statements to increase readability.(81
+y
+java:S1104"VMake tvModified a static final constant or non-public and provide accessors if needed.(ԣ81
+z
+java:S1104"WMake ivAlertIcon a static final constant or non-public and provide accessors if needed.(න81
+z
+java:S1104"WMake tvAlertDate a static final constant or non-public and provide accessors if needed.(81
+{
+java:S1104"XMake ibSetBgColor a static final constant or non-public and provide accessors if needed.(81
+z java:S116"XRename this field "PHOTO_REQUEST" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(81
+D
+java:S1170"!Make this final field static too.(81
+t
+java:S1450i"WRemove the "editText" field and declare it as a local variable in the relevant methods.(81
+u
+java:S1450"WRemove the "mPattern" field and declare it as a local variable in the relevant methods.(81
+
+java:S1149"eReplace the synchronized class "Vector" by an unsynchronized one such as "ArrayList" or "LinkedList".(81
+X java:S125k"").(81
+] java:S125"").(81
+{
+java:S2293k"YReplace the type specification in this constructor call with the diamond operator ("<>").(81
+{
+java:S2293l"YReplace the type specification in this constructor call with the diamond operator ("<>").(81
+v
+java:S2293n"YReplace the type specification in this constructor call with the diamond operator ("<>").(81
+{
+java:S2293o"YReplace the type specification in this constructor call with the diamond operator ("<>").(81
+{
+java:S2293p"YReplace the type specification in this constructor call with the diamond operator ("<>").(81
+d
+java:S1192"FDefine a constant instead of duplicating this literal " DESC" 3 times.(Ա81
+R
+java:S1066"/Merge this if statement with the enclosing one.(ƣ81
+R
+java:S1066"/Merge this if statement with the enclosing one.(˼֓81
+p
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 29 to the 15 allowed.(þ81
+P
+java:S1905"-Remove this unnecessary cast to "JSONObject".(`81
+J
+java:S1905"-Remove this unnecessary cast to "JSONObject".(؛
81
+p
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 28 to the 15 allowed.(81
+u
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 41 to the 15 allowed.(˰81
+u
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 34 to the 15 allowed.(ɸ81
+<
+java:S2129"Remove this "Long" constructor(ϭ81
+u
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(ƶؠ81
+N
+java:S1172"+Remove this unused method parameter "node".(ƶؠ81
+E
+java:S1905"'Remove this unnecessary cast to "Node".(81
+J
+java:S1905"'Remove this unnecessary cast to "Node".(81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/a/d/ad72331a1bed265bb9c0fe838faa74dbf69fce32 b/src/.idea/sonarlint/issuestore/a/d/ad72331a1bed265bb9c0fe838faa74dbf69fce32
new file mode 100644
index 0000000..cbf4b9d
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/a/d/ad72331a1bed265bb9c0fe838faa74dbf69fce32
@@ -0,0 +1,76 @@
+
+w
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(艥81
+E
+java:S1604"(Make this anonymous inner class a lambda(̺V81
+F
+java:S1604"(Make this anonymous inner class a lambda(ά81
+F
+java:S1604"(Make this anonymous inner class a lambda(ܴ81
+K
+java:S1604"(Make this anonymous inner class a lambda(81
+F
+java:S1604"(Make this anonymous inner class a lambda(81
+F
+java:S1604"(Make this anonymous inner class a lambda(۱81
+F
+java:S1604"(Make this anonymous inner class a lambda(ά81
+
+java:S1862"This branch can not be reached because the condition duplicates a previous condition in the same sequence of "if/else if" statements(ɇ81
+>
+java:S1116`"Remove this empty statement.(81
+h
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(81
+b
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(Ѿk81
+u
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed.(81
+9
+java:S3626"Remove this redundant jump.(݅81
+9
+java:S3626"Remove this redundant jump.(݅81
+9
+java:S3626"Remove this redundant jump.(݅81
+U
+java:S1135"2Complete the task associated to this TODO comment.(̐81
+M
+java:S2093"*Change this "try" to a try-with-resources.(81
+v
+java:S1450"XRemove the "mMoveMenu" field and declare it as a local variable in the relevant methods.(8ӯ1
+u
+java:S3252"RUse static access with "android.widget.AbsListView" for "MultiChoiceModeListener".(8ԯ1
+U
+java:S1135"2Complete the task associated to this TODO comment.(8ۯ1
+U
+java:S1135"2Complete the task associated to this TODO comment.(8ۯ1
+T
+java:S1874"1Remove this use of "getHeight"; it is deprecated.(81
+?
+java:S1116"Remove this empty statement.(81
+p
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(81
+F java:S108")Either remove or fill this block of code.(ʥ81
+o
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed.(#81
+U
+java:S1135"2Complete the task associated to this TODO comment.(81
+e
+java:S1126"BReplace this if-then-else statement by a single method invocation.(玒81
+U
+java:S1135"2Complete the task associated to this TODO comment.(81
+p
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(81
+o
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.(b8Ű1
+R
+java:S3398"/Move this method into "BackgroundQueryHandler".(8ɰ1
+N
+java:S3398"0Move this method into "OnListItemClickListener".(8ɰ1
+H
+java:S3398"%Move this method into "ModeCallback".(8ɰ1
+C
+java:S3398"%Move this method into "ModeCallback".(8ɰ1
+J
+java:S1068S"(Remove this unused "mode" private field.(8ɰ1
+M
+java:S1068U"+Remove this unused "mButton" private field.(8ʰ1
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/c/1/c182d0c9c237ea8a46a92ccaae9bb5c751923a88 b/src/.idea/sonarlint/issuestore/c/1/c182d0c9c237ea8a46a92ccaae9bb5c751923a88
new file mode 100644
index 0000000..8281165
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/c/1/c182d0c9c237ea8a46a92ccaae9bb5c751923a88
@@ -0,0 +1,3 @@
+
+b
+java:S1124 "EReorder the modifiers to comply with the Java Language Specification.(81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/c/4/c42ad3cd6e664963fa1849c760a57d417d500ee7 b/src/.idea/sonarlint/issuestore/c/4/c42ad3cd6e664963fa1849c760a57d417d500ee7
new file mode 100644
index 0000000..4d77e1b
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/c/4/c42ad3cd6e664963fa1849c760a57d417d500ee7
@@ -0,0 +1,95 @@
+
+W
+java:S1118":Add a private constructor to hide the implicit public one.(81
+`
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(棍
+[
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(۪
+[
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(ρ
+`
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(Ɖ
+[
+java:S1124 "EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124""EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124$"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124&"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124("EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124*"EReorder the modifiers to comply with the Java Language Specification.(۲
+`
+java:S1124,"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124."EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S11240"EReorder the modifiers to comply with the Java Language Specification.(Ӎ
+[
+java:S11242"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S11244"EReorder the modifiers to comply with the Java Language Specification.(̥
+[
+java:S11246"EReorder the modifiers to comply with the Java Language Specification.(Ƒ
+Z
+java:S11248"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124:"EReorder the modifiers to comply with the Java Language Specification.(
+Z
+java:S1124<"EReorder the modifiers to comply with the Java Language Specification.(K
+`
+java:S1124>"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124@"EReorder the modifiers to comply with the Java Language Specification.(֫
+Z
+java:S1124B"EReorder the modifiers to comply with the Java Language Specification.($
+[
+java:S1124D"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124F"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124H"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124J"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124L"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124N"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124P"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124R"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124T"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124V"EReorder the modifiers to comply with the Java Language Specification.(ʹ
+`
+java:S1124X"EReorder the modifiers to comply with the Java Language Specification.(ԣ
+[
+java:S1124Z"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124\"EReorder the modifiers to comply with the Java Language Specification.(Ō
+`
+java:S1124^"EReorder the modifiers to comply with the Java Language Specification.(Ȩ
+[
+java:S1124`"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124b"EReorder the modifiers to comply with the Java Language Specification.(̀
+`
+java:S1124d"EReorder the modifiers to comply with the Java Language Specification.(â
+`
+java:S1124f"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124h"EReorder the modifiers to comply with the Java Language Specification.(ƒ
+`
+java:S1124j"EReorder the modifiers to comply with the Java Language Specification.(
+g
+java:S1124l"EReorder the modifiers to comply with the Java Language Specification.(81
+a
+java:S1124n"EReorder the modifiers to comply with the Java Language Specification.(-81
+g
+java:S1124p"EReorder the modifiers to comply with the Java Language Specification.(81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/c/6/c65f5dc8218ef1da6f6bfb5d1b14aea855a54d7f b/src/.idea/sonarlint/issuestore/c/6/c65f5dc8218ef1da6f6bfb5d1b14aea855a54d7f
new file mode 100644
index 0000000..a307337
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/c/6/c65f5dc8218ef1da6f6bfb5d1b14aea855a54d7f
@@ -0,0 +1,31 @@
+
+W
+java:S1118)":Add a private constructor to hide the implicit public one.(ڦ81
+W
+java:S1118:":Add a private constructor to hide the implicit public one.(81
+b
+java:S1124<"EReorder the modifiers to comply with the Java Language Specification.(Ɠ81
+g
+java:S1124D"EReorder the modifiers to comply with the Java Language Specification.(81
+K
+java:S2140Z")Use "java.util.Random.nextInt()" instead.(81
+\
+java:S1118a":Add a private constructor to hide the implicit public one.(Ū81
+g
+java:S1124b"EReorder the modifiers to comply with the Java Language Specification.(81
+g
+java:S1124j"EReorder the modifiers to comply with the Java Language Specification.(81
+g
+java:S1124r"EReorder the modifiers to comply with the Java Language Specification.(81
+b
+java:S1124z"EReorder the modifiers to comply with the Java Language Specification.(ɜ81
+X
+java:S1118":Add a private constructor to hide the implicit public one.(ֹ81
+h
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(81
+h
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(81
+]
+java:S1118":Add a private constructor to hide the implicit public one.(81
+c
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a b/src/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a
new file mode 100644
index 0000000..e815cc6
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a
@@ -0,0 +1,5 @@
+
+c
+java:S2259"@A "NullPointerException" could be thrown; "js" is nullable here.(81
+p
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(ǎ81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/d/1/d1cc822fa9d783a8d4563bf6e139b7ae10de2fb1 b/src/.idea/sonarlint/issuestore/d/1/d1cc822fa9d783a8d4563bf6e139b7ae10de2fb1
new file mode 100644
index 0000000..efd47b4
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/d/1/d1cc822fa9d783a8d4563bf6e139b7ae10de2fb1
@@ -0,0 +1,3 @@
+
+E
+java:S1604)"(Make this anonymous inner class a lambda(ʩ81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/d/a/da57ce446af85bbd9aefee65e969869f0cff78b0 b/src/.idea/sonarlint/issuestore/d/a/da57ce446af85bbd9aefee65e969869f0cff78b0
new file mode 100644
index 0000000..4bd201c
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/d/a/da57ce446af85bbd9aefee65e969869f0cff78b0
@@ -0,0 +1,25 @@
+
+?
+java:S1604"(Make this anonymous inner class a lambda(
+?
+java:S1604"(Make this anonymous inner class a lambda(ܨ
+?
+java:S1604"(Make this anonymous inner class a lambda(ܨ
+?
+java:S1604"(Make this anonymous inner class a lambda(ά
+?
+java:S1604"(Make this anonymous inner class a lambda(څ
+?
+java:S1604"(Make this anonymous inner class a lambda(
+?
+java:S1604"(Make this anonymous inner class a lambda(î
+?
+java:S1604"(Make this anonymous inner class a lambda(î
+g
+java:S1301"KReplace this "switch" statement by "if" statements to increase readability.(崡
+L
+java:S1874P"6Remove this use of "findPreference"; it is deprecated.(
+h
+java:S3776\"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(٫
+Q
+java:S1161":Add the "@Override" annotation above this method signature(
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/d/d/dd970bd8ce083850fca1d4d159647ccd110e57cb b/src/.idea/sonarlint/issuestore/d/d/dd970bd8ce083850fca1d4d159647ccd110e57cb
new file mode 100644
index 0000000..da28914
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/d/d/dd970bd8ce083850fca1d4d159647ccd110e57cb
@@ -0,0 +1,13 @@
+
+|
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(л8۾1
+q
+java:S1192D"ODefine a constant instead of duplicating this literal "Wrong note id:" 3 times.(8ྕ1
+d
+java:S1126"AReplace this if-then-else statement by a single return statement.(Ʒ81
+p
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 23 to the 15 allowed.(81
+a
+java:S1155">Use isEmpty() to check whether the collection is empty or not.(81
+c
+java:S2147"ECombine this catch with the one at line 258, which has the same body.(暩81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/e/0/e094aec5c3e1b6f44539adff3114f5a1ad603ddc b/src/.idea/sonarlint/issuestore/e/0/e094aec5c3e1b6f44539adff3114f5a1ad603ddc
new file mode 100644
index 0000000..ad65062
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/e/0/e094aec5c3e1b6f44539adff3114f5a1ad603ddc
@@ -0,0 +1,9 @@
+
+{
+java:S22930"YReplace the type specification in this constructor call with the diamond operator ("<>").(ʩ81
+
+java:S1319"pThe return type of this method should be an interface such as "List" rather than the implementation "ArrayList".(ﷺ81
+c
+java:S2259"@A "NullPointerException" could be thrown; "js" is nullable here.(81
+y
+java:S3923"[Remove this conditional structure or edit its code blocks so that they're not all the same.(ԡ81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/f/0/f087b1ba1b9c91b7293fea0fb071eaed62a42137 b/src/.idea/sonarlint/issuestore/f/0/f087b1ba1b9c91b7293fea0fb071eaed62a42137
new file mode 100644
index 0000000..8062a38
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/f/0/f087b1ba1b9c91b7293fea0fb071eaed62a42137
@@ -0,0 +1,25 @@
+
+E
+java:S16049"(Make this anonymous inner class a lambda(ю81
+g
+java:S1124""EReorder the modifiers to comply with the Java Language Specification.(֖81
+g
+java:S1124%"EReorder the modifiers to comply with the Java Language Specification.(Ų81
+g
+java:S1124&"EReorder the modifiers to comply with the Java Language Specification.(ز81
+g
+java:S1124'"EReorder the modifiers to comply with the Java Language Specification.(81
+b
+java:S1124*"EReorder the modifiers to comply with the Java Language Specification.(ճ81
+b
+java:S1124-"EReorder the modifiers to comply with the Java Language Specification.(ߪ81
+b
+java:S1124."EReorder the modifiers to comply with the Java Language Specification.(81
+S
+java:S26969"6Make the enclosing method "static" or remove this set.(ю81
+S
+java:S2696;"6Make the enclosing method "static" or remove this set.(81
+S
+java:S2696N"6Make the enclosing method "static" or remove this set.(81
+R
+java:S2696t"6Make the enclosing method "static" or remove this set.(81
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/f/1/f1226eeacd46c914d51f3d1a6d6f27377490d2a4 b/src/.idea/sonarlint/issuestore/f/1/f1226eeacd46c914d51f3d1a6d6f27377490d2a4
new file mode 100644
index 0000000..863e5f6
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/f/1/f1226eeacd46c914d51f3d1a6d6f27377490d2a4
@@ -0,0 +1,13 @@
+
+{
+java:S2293z"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:S23860"Make this member "protected".(u8ަ1
+u
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 25 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
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/f/4/f4a01d6a4fcb971362ec00a83903fd3902f52164 b/src/.idea/sonarlint/issuestore/f/4/f4a01d6a4fcb971362ec00a83903fd3902f52164
new file mode 100644
index 0000000..e69de29
diff --git a/src/.idea/sonarlint/issuestore/f/9/f9f49497f95afd327db7a7a512612aa1089003d4 b/src/.idea/sonarlint/issuestore/f/9/f9f49497f95afd327db7a7a512612aa1089003d4
new file mode 100644
index 0000000..23fec40
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/f/9/f9f49497f95afd327db7a7a512612aa1089003d4
@@ -0,0 +1,7 @@
+
+:
+java:S2386"Make this member "protected".(Ꙗ8Ę1
+K
+java:S1874".Remove this use of ""; it is deprecated.(ж8Ƙ1
+T
+java:S1135"2Complete the task associated to this TODO comment.(8ǘ1
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/f/b/fbe448ebfc3eb2d4e308f6b8b043666f5b57235e b/src/.idea/sonarlint/issuestore/f/b/fbe448ebfc3eb2d4e308f6b8b043666f5b57235e
new file mode 100644
index 0000000..e69de29
diff --git a/src/.idea/sonarlint/issuestore/index.pb b/src/.idea/sonarlint/issuestore/index.pb
new file mode 100644
index 0000000..716eef3
--- /dev/null
+++ b/src/.idea/sonarlint/issuestore/index.pb
@@ -0,0 +1,87 @@
+
+p
+@app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java,4\5\4529b3a97b0f3b19b895aa06f23bed63ff38a312
+X
+(gradle/wrapper/gradle-wrapper.properties,f\b\fbe448ebfc3eb2d4e308f6b8b043666f5b57235e
+@
+local.properties,0\7\0712df971a99ac4d2fccb8e0fb19f377f3374cca
+?
+settings.gradle,0\5\05efc8b1657769a27696d478ded1e95f38737233
+@
+app/build.gradle,f\4\f4a01d6a4fcb971362ec00a83903fd3902f52164
+k
+;app/src/main/java/net/micode/notes/ui/NoteEditActivity.java,5\7\577f30d26378ec8a2bd2e4a43f3c79b3f04c402c
+l
+
-
+
\ No newline at end of file
diff --git a/src/Notes-master/.gitignore b/src/Notes-master/.gitignore
deleted file mode 100644
index 7df8dff..0000000
--- a/src/Notes-master/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-# generated files
-bin/
-gen/
-
-# Local configuration file (sdk path, etc)
-project.properties
-.settings/
-.classpath
-.project
diff --git a/src/Notes-master/.idea/misc.xml b/src/Notes-master/.idea/misc.xml
deleted file mode 100644
index e69915f..0000000
--- a/src/Notes-master/.idea/misc.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Notes-master/.idea/modules.xml b/src/Notes-master/.idea/modules.xml
deleted file mode 100644
index 7800270..0000000
--- a/src/Notes-master/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Notes-master/NOTICE b/src/Notes-master/NOTICE
deleted file mode 100644
index 9a54521..0000000
--- a/src/Notes-master/NOTICE
+++ /dev/null
@@ -1,190 +0,0 @@
-
- Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
diff --git a/src/Notes-master/Notes-master.iml b/src/Notes-master/Notes-master.iml
deleted file mode 100644
index c90834f..0000000
--- a/src/Notes-master/Notes-master.iml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Notes-master/README b/src/Notes-master/README
deleted file mode 100644
index fc0d824..0000000
--- a/src/Notes-master/README
+++ /dev/null
@@ -1,23 +0,0 @@
-[中文]
-
-1. MiCode便签是小米便签的社区开源版,由MIUI团队(www.miui.com) 发起并贡献第一批代码,遵循NOTICE文件所描述的开源协议,
- 今后为MiCode社区(www.micode.net) 拥有,并由社区发布和维护。
-
-2. Bug反馈和跟踪,请访问Github,
- https://github.com/MiCode/Notes/issues?sort=created&direction=desc&state=open
-
-3. 功能建议和综合讨论,请访问MiCode,
- http://micode.net/forum.php?mod=forumdisplay&fid=38
-
-
-[English]
-
-1. MiCode Notes is open source edition of XM notepad, it's first initiated and sponsored by MIUI team (www.miui.com).
- It's opened under license described by NOTICE file. It's owned by the MiCode community (www.micode.net). In future,
- the MiCode community will release and maintain this project.
-
-2. Regarding issue tracking, please visit Github,
- https://github.com/MiCode/Notes/issues?sort=created&direction=desc&state=open
-
-3. Regarding feature request and general discussion, please visit Micode forum,
- http://micode.net/forum.php?mod=forumdisplay&fid=38
diff --git a/src/Notes-master/src/net/micode/notes/data/NotesDatabaseHelper.java b/src/Notes-master/src/net/micode/notes/data/NotesDatabaseHelper.java
deleted file mode 100644
index ffe5d57..0000000
--- a/src/Notes-master/src/net/micode/notes/data/NotesDatabaseHelper.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.data;
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-import android.util.Log;
-
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.DataConstants;
-import net.micode.notes.data.Notes.NoteColumns;
-
-
-public class NotesDatabaseHelper extends SQLiteOpenHelper {
- private static final String DB_NAME = "note.db";
-
- private static final int DB_VERSION = 4;
-
- public interface TABLE {
- public static final String NOTE = "note";
-
- public static final String DATA = "data";
- }
-
- private static final String TAG = "NotesDatabaseHelper";
-
- private static NotesDatabaseHelper mInstance;
-
- private static final String CREATE_NOTE_TABLE_SQL =
- "CREATE TABLE " + TABLE.NOTE + "(" +
- NoteColumns.ID + " INTEGER PRIMARY KEY," +
- NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
- NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
- NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," +
- NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," +
- NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," +
- NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" +
- ")";
-
- private static final String CREATE_DATA_TABLE_SQL =
- "CREATE TABLE " + TABLE.DATA + "(" +
- DataColumns.ID + " INTEGER PRIMARY KEY," +
- DataColumns.MIME_TYPE + " TEXT NOT NULL," +
- DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," +
- NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
- NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
- DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," +
- DataColumns.DATA1 + " INTEGER," +
- DataColumns.DATA2 + " INTEGER," +
- DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," +
- DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," +
- DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" +
- ")";
-
- private static final String CREATE_DATA_NOTE_ID_INDEX_SQL =
- "CREATE INDEX IF NOT EXISTS note_id_index ON " +
- TABLE.DATA + "(" + DataColumns.NOTE_ID + ");";
-
- /**
- * Increase folder's note count when move note to the folder
- */
- private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER =
- "CREATE TRIGGER increase_folder_count_on_update "+
- " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE +
- " BEGIN " +
- " UPDATE " + TABLE.NOTE +
- " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" +
- " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" +
- " END";
-
- /**
- * Decrease folder's note count when move note from folder
- */
- private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER =
- "CREATE TRIGGER decrease_folder_count_on_update " +
- " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE +
- " BEGIN " +
- " UPDATE " + TABLE.NOTE +
- " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" +
- " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID +
- " AND " + NoteColumns.NOTES_COUNT + ">0" + ";" +
- " END";
-
- /**
- * Increase folder's note count when insert new note to the folder
- */
- private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER =
- "CREATE TRIGGER increase_folder_count_on_insert " +
- " AFTER INSERT ON " + TABLE.NOTE +
- " BEGIN " +
- " UPDATE " + TABLE.NOTE +
- " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" +
- " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" +
- " END";
-
- /**
- * Decrease folder's note count when delete note from the folder
- */
- private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER =
- "CREATE TRIGGER decrease_folder_count_on_delete " +
- " AFTER DELETE ON " + TABLE.NOTE +
- " BEGIN " +
- " UPDATE " + TABLE.NOTE +
- " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" +
- " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID +
- " AND " + NoteColumns.NOTES_COUNT + ">0;" +
- " END";
-
- /**
- * Update note's content when insert data with type {@link DataConstants#NOTE}
- */
- private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER =
- "CREATE TRIGGER update_note_content_on_insert " +
- " AFTER INSERT ON " + TABLE.DATA +
- " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" +
- " BEGIN" +
- " UPDATE " + TABLE.NOTE +
- " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT +
- " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" +
- " END";
-
- /**
- * Update note's content when data with {@link DataConstants#NOTE} type has changed
- */
- private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER =
- "CREATE TRIGGER update_note_content_on_update " +
- " AFTER UPDATE ON " + TABLE.DATA +
- " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" +
- " BEGIN" +
- " UPDATE " + TABLE.NOTE +
- " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT +
- " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" +
- " END";
-
- /**
- * Update note's content when data with {@link DataConstants#NOTE} type has deleted
- */
- private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER =
- "CREATE TRIGGER update_note_content_on_delete " +
- " AFTER delete ON " + TABLE.DATA +
- " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" +
- " BEGIN" +
- " UPDATE " + TABLE.NOTE +
- " SET " + NoteColumns.SNIPPET + "=''" +
- " WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" +
- " END";
-
- /**
- * Delete datas belong to note which has been deleted
- */
- private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER =
- "CREATE TRIGGER delete_data_on_delete " +
- " AFTER DELETE ON " + TABLE.NOTE +
- " BEGIN" +
- " DELETE FROM " + TABLE.DATA +
- " WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" +
- " END";
-
- /**
- * Delete notes belong to folder which has been deleted
- */
- private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER =
- "CREATE TRIGGER folder_delete_notes_on_delete " +
- " AFTER DELETE ON " + TABLE.NOTE +
- " BEGIN" +
- " DELETE FROM " + TABLE.NOTE +
- " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" +
- " END";
-
- /**
- * Move notes belong to folder which has been moved to trash folder
- */
- private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER =
- "CREATE TRIGGER folder_move_notes_on_trash " +
- " AFTER UPDATE ON " + TABLE.NOTE +
- " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER +
- " BEGIN" +
- " UPDATE " + TABLE.NOTE +
- " SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER +
- " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" +
- " END";
-
- public NotesDatabaseHelper(Context context) {
- super(context, DB_NAME, null, DB_VERSION);
- }
-
- public void createNoteTable(SQLiteDatabase db) {
- db.execSQL(CREATE_NOTE_TABLE_SQL);
- reCreateNoteTableTriggers(db);
- createSystemFolder(db);
- Log.d(TAG, "note table has been created");
- }
-
- private void reCreateNoteTableTriggers(SQLiteDatabase db) {
- db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_update");
- db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_update");
- db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_delete");
- db.execSQL("DROP TRIGGER IF EXISTS delete_data_on_delete");
- db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_insert");
- db.execSQL("DROP TRIGGER IF EXISTS folder_delete_notes_on_delete");
- db.execSQL("DROP TRIGGER IF EXISTS folder_move_notes_on_trash");
-
- db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER);
- db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER);
- db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER);
- db.execSQL(NOTE_DELETE_DATA_ON_DELETE_TRIGGER);
- db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER);
- db.execSQL(FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER);
- db.execSQL(FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER);
- }
-
- private void createSystemFolder(SQLiteDatabase db) {
- ContentValues values = new ContentValues();
-
- /**
- * call record foler for call notes
- */
- values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER);
- values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
- db.insert(TABLE.NOTE, null, values);
-
- /**
- * root folder which is default folder
- */
- values.clear();
- values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER);
- values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
- db.insert(TABLE.NOTE, null, values);
-
- /**
- * temporary folder which is used for moving note
- */
- values.clear();
- values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER);
- values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
- db.insert(TABLE.NOTE, null, values);
-
- /**
- * create trash folder
- */
- values.clear();
- values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER);
- values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
- db.insert(TABLE.NOTE, null, values);
- }
-
- public void createDataTable(SQLiteDatabase db) {
- db.execSQL(CREATE_DATA_TABLE_SQL);
- reCreateDataTableTriggers(db);
- db.execSQL(CREATE_DATA_NOTE_ID_INDEX_SQL);
- Log.d(TAG, "data table has been created");
- }
-
- private void reCreateDataTableTriggers(SQLiteDatabase db) {
- db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_insert");
- db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_update");
- db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_delete");
-
- db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER);
- db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER);
- db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER);
- }
-
- static synchronized NotesDatabaseHelper getInstance(Context context) {
- if (mInstance == null) {
- mInstance = new NotesDatabaseHelper(context);
- }
- return mInstance;
- }
-
- @Override
- public void onCreate(SQLiteDatabase db) {
- createNoteTable(db);
- createDataTable(db);
- }
-
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- boolean reCreateTriggers = false;
- boolean skipV2 = false;
-
- if (oldVersion == 1) {
- upgradeToV2(db);
- skipV2 = true; // this upgrade including the upgrade from v2 to v3
- oldVersion++;
- }
-
- if (oldVersion == 2 && !skipV2) {
- upgradeToV3(db);
- reCreateTriggers = true;
- oldVersion++;
- }
-
- if (oldVersion == 3) {
- upgradeToV4(db);
- oldVersion++;
- }
-
- if (reCreateTriggers) {
- reCreateNoteTableTriggers(db);
- reCreateDataTableTriggers(db);
- }
-
- if (oldVersion != newVersion) {
- throw new IllegalStateException("Upgrade notes database to version " + newVersion
- + "fails");
- }
- }
-
- private void upgradeToV2(SQLiteDatabase db) {
- db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE);
- db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA);
- createNoteTable(db);
- createDataTable(db);
- }
-
- private void upgradeToV3(SQLiteDatabase db) {
- // drop unused triggers
- db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert");
- db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_delete");
- db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_update");
- // add a column for gtask id
- db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.GTASK_ID
- + " TEXT NOT NULL DEFAULT ''");
- // add a trash system folder
- ContentValues values = new ContentValues();
- values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER);
- values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
- db.insert(TABLE.NOTE, null, values);
- }
-
- private void upgradeToV4(SQLiteDatabase db) {
- db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION
- + " INTEGER NOT NULL DEFAULT 0");
- }
-}
diff --git a/src/Notes-master/src/net/micode/notes/gtask/data/Node.java b/src/Notes-master/src/net/micode/notes/gtask/data/Node.java
deleted file mode 100644
index 63950e0..0000000
--- a/src/Notes-master/src/net/micode/notes/gtask/data/Node.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.data;
-
-import android.database.Cursor;
-
-import org.json.JSONObject;
-
-public abstract class Node {
- public static final int SYNC_ACTION_NONE = 0;
-
- public static final int SYNC_ACTION_ADD_REMOTE = 1;
-
- public static final int SYNC_ACTION_ADD_LOCAL = 2;
-
- public static final int SYNC_ACTION_DEL_REMOTE = 3;
-
- public static final int SYNC_ACTION_DEL_LOCAL = 4;
-
- public static final int SYNC_ACTION_UPDATE_REMOTE = 5;
-
- public static final int SYNC_ACTION_UPDATE_LOCAL = 6;
-
- public static final int SYNC_ACTION_UPDATE_CONFLICT = 7;
-
- public static final int SYNC_ACTION_ERROR = 8;
-
- private String mGid;
-
- private String mName;
-
- private long mLastModified;
-
- private boolean mDeleted;
-
- public Node() {
- mGid = null;
- mName = "";
- mLastModified = 0;
- mDeleted = false;
- }
-
- public abstract JSONObject getCreateAction(int actionId);
-
- public abstract JSONObject getUpdateAction(int actionId);
-
- public abstract void setContentByRemoteJSON(JSONObject js);
-
- public abstract void setContentByLocalJSON(JSONObject js);
-
- public abstract JSONObject getLocalJSONFromContent();
-
- public abstract int getSyncAction(Cursor c);
-
- public void setGid(String gid) {
- this.mGid = gid;
- }
-
- public void setName(String name) {
- this.mName = name;
- }
-
- public void setLastModified(long lastModified) {
- this.mLastModified = lastModified;
- }
-
- public void setDeleted(boolean deleted) {
- this.mDeleted = deleted;
- }
-
- public String getGid() {
- return this.mGid;
- }
-
- public String getName() {
- return this.mName;
- }
-
- public long getLastModified() {
- return this.mLastModified;
- }
-
- public boolean getDeleted() {
- return this.mDeleted;
- }
-
-}
diff --git a/src/Notes-master/src/net/micode/notes/gtask/data/SqlNote.java b/src/Notes-master/src/net/micode/notes/gtask/data/SqlNote.java
deleted file mode 100644
index 79a4095..0000000
--- a/src/Notes-master/src/net/micode/notes/gtask/data/SqlNote.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.data;
-
-import android.appwidget.AppWidgetManager;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.util.Log;
-
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.gtask.exception.ActionFailureException;
-import net.micode.notes.tool.GTaskStringUtils;
-import net.micode.notes.tool.ResourceParser;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.ArrayList;
-
-
-public class SqlNote {
- private static final String TAG = SqlNote.class.getSimpleName();
-
- private static final int INVALID_ID = -99999;
-
- public static final String[] PROJECTION_NOTE = new String[] {
- NoteColumns.ID, NoteColumns.ALERTED_DATE, NoteColumns.BG_COLOR_ID,
- NoteColumns.CREATED_DATE, NoteColumns.HAS_ATTACHMENT, NoteColumns.MODIFIED_DATE,
- NoteColumns.NOTES_COUNT, NoteColumns.PARENT_ID, NoteColumns.SNIPPET, NoteColumns.TYPE,
- NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, NoteColumns.SYNC_ID,
- NoteColumns.LOCAL_MODIFIED, NoteColumns.ORIGIN_PARENT_ID, NoteColumns.GTASK_ID,
- NoteColumns.VERSION
- };
-
- public static final int ID_COLUMN = 0;
-
- public static final int ALERTED_DATE_COLUMN = 1;
-
- public static final int BG_COLOR_ID_COLUMN = 2;
-
- public static final int CREATED_DATE_COLUMN = 3;
-
- public static final int HAS_ATTACHMENT_COLUMN = 4;
-
- public static final int MODIFIED_DATE_COLUMN = 5;
-
- public static final int NOTES_COUNT_COLUMN = 6;
-
- public static final int PARENT_ID_COLUMN = 7;
-
- public static final int SNIPPET_COLUMN = 8;
-
- public static final int TYPE_COLUMN = 9;
-
- public static final int WIDGET_ID_COLUMN = 10;
-
- public static final int WIDGET_TYPE_COLUMN = 11;
-
- public static final int SYNC_ID_COLUMN = 12;
-
- public static final int LOCAL_MODIFIED_COLUMN = 13;
-
- public static final int ORIGIN_PARENT_ID_COLUMN = 14;
-
- public static final int GTASK_ID_COLUMN = 15;
-
- public static final int VERSION_COLUMN = 16;
-
- private Context mContext;
-
- private ContentResolver mContentResolver;
-
- private boolean mIsCreate;
-
- private long mId;
-
- private long mAlertDate;
-
- private int mBgColorId;
-
- private long mCreatedDate;
-
- private int mHasAttachment;
-
- private long mModifiedDate;
-
- private long mParentId;
-
- private String mSnippet;
-
- private int mType;
-
- private int mWidgetId;
-
- private int mWidgetType;
-
- private long mOriginParent;
-
- private long mVersion;
-
- private ContentValues mDiffNoteValues;
-
- private ArrayList mDataList;
-
- public SqlNote(Context context) {
- mContext = context;
- mContentResolver = context.getContentResolver();
- mIsCreate = true;
- mId = INVALID_ID;
- mAlertDate = 0;
- mBgColorId = ResourceParser.getDefaultBgId(context);
- mCreatedDate = System.currentTimeMillis();
- mHasAttachment = 0;
- mModifiedDate = System.currentTimeMillis();
- mParentId = 0;
- mSnippet = "";
- mType = Notes.TYPE_NOTE;
- mWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
- mWidgetType = Notes.TYPE_WIDGET_INVALIDE;
- mOriginParent = 0;
- mVersion = 0;
- mDiffNoteValues = new ContentValues();
- mDataList = new ArrayList();
- }
-
- public SqlNote(Context context, Cursor c) {
- mContext = context;
- mContentResolver = context.getContentResolver();
- mIsCreate = false;
- loadFromCursor(c);
- mDataList = new ArrayList();
- if (mType == Notes.TYPE_NOTE)
- loadDataContent();
- mDiffNoteValues = new ContentValues();
- }
-
- public SqlNote(Context context, long id) {
- mContext = context;
- mContentResolver = context.getContentResolver();
- mIsCreate = false;
- loadFromCursor(id);
- mDataList = new ArrayList();
- if (mType == Notes.TYPE_NOTE)
- loadDataContent();
- mDiffNoteValues = new ContentValues();
-
- }
-
- private void loadFromCursor(long id) {
- Cursor c = null;
- try {
- c = mContentResolver.query(Notes.CONTENT_NOTE_URI, PROJECTION_NOTE, "(_id=?)",
- new String[] {
- String.valueOf(id)
- }, null);
- if (c != null) {
- c.moveToNext();
- loadFromCursor(c);
- } else {
- Log.w(TAG, "loadFromCursor: cursor = null");
- }
- } finally {
- if (c != null)
- c.close();
- }
- }
-
- private void loadFromCursor(Cursor c) {
- mId = c.getLong(ID_COLUMN);
- mAlertDate = c.getLong(ALERTED_DATE_COLUMN);
- mBgColorId = c.getInt(BG_COLOR_ID_COLUMN);
- mCreatedDate = c.getLong(CREATED_DATE_COLUMN);
- mHasAttachment = c.getInt(HAS_ATTACHMENT_COLUMN);
- mModifiedDate = c.getLong(MODIFIED_DATE_COLUMN);
- mParentId = c.getLong(PARENT_ID_COLUMN);
- mSnippet = c.getString(SNIPPET_COLUMN);
- mType = c.getInt(TYPE_COLUMN);
- mWidgetId = c.getInt(WIDGET_ID_COLUMN);
- mWidgetType = c.getInt(WIDGET_TYPE_COLUMN);
- mVersion = c.getLong(VERSION_COLUMN);
- }
-
- private void loadDataContent() {
- Cursor c = null;
- mDataList.clear();
- try {
- c = mContentResolver.query(Notes.CONTENT_DATA_URI, SqlData.PROJECTION_DATA,
- "(note_id=?)", new String[] {
- String.valueOf(mId)
- }, null);
- if (c != null) {
- if (c.getCount() == 0) {
- Log.w(TAG, "it seems that the note has not data");
- return;
- }
- while (c.moveToNext()) {
- SqlData data = new SqlData(mContext, c);
- mDataList.add(data);
- }
- } else {
- Log.w(TAG, "loadDataContent: cursor = null");
- }
- } finally {
- if (c != null)
- c.close();
- }
- }
-
- public boolean setContent(JSONObject js) {
- try {
- JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
- if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) {
- Log.w(TAG, "cannot set system folder");
- } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) {
- // for folder we can only update the snnipet and type
- String snippet = note.has(NoteColumns.SNIPPET) ? note
- .getString(NoteColumns.SNIPPET) : "";
- if (mIsCreate || !mSnippet.equals(snippet)) {
- mDiffNoteValues.put(NoteColumns.SNIPPET, snippet);
- }
- mSnippet = snippet;
-
- int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE)
- : Notes.TYPE_NOTE;
- if (mIsCreate || mType != type) {
- mDiffNoteValues.put(NoteColumns.TYPE, type);
- }
- mType = type;
- } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_NOTE) {
- JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA);
- long id = note.has(NoteColumns.ID) ? note.getLong(NoteColumns.ID) : INVALID_ID;
- if (mIsCreate || mId != id) {
- mDiffNoteValues.put(NoteColumns.ID, id);
- }
- mId = id;
-
- long alertDate = note.has(NoteColumns.ALERTED_DATE) ? note
- .getLong(NoteColumns.ALERTED_DATE) : 0;
- if (mIsCreate || mAlertDate != alertDate) {
- mDiffNoteValues.put(NoteColumns.ALERTED_DATE, alertDate);
- }
- mAlertDate = alertDate;
-
- int bgColorId = note.has(NoteColumns.BG_COLOR_ID) ? note
- .getInt(NoteColumns.BG_COLOR_ID) : ResourceParser.getDefaultBgId(mContext);
- if (mIsCreate || mBgColorId != bgColorId) {
- mDiffNoteValues.put(NoteColumns.BG_COLOR_ID, bgColorId);
- }
- mBgColorId = bgColorId;
-
- long createDate = note.has(NoteColumns.CREATED_DATE) ? note
- .getLong(NoteColumns.CREATED_DATE) : System.currentTimeMillis();
- if (mIsCreate || mCreatedDate != createDate) {
- mDiffNoteValues.put(NoteColumns.CREATED_DATE, createDate);
- }
- mCreatedDate = createDate;
-
- int hasAttachment = note.has(NoteColumns.HAS_ATTACHMENT) ? note
- .getInt(NoteColumns.HAS_ATTACHMENT) : 0;
- if (mIsCreate || mHasAttachment != hasAttachment) {
- mDiffNoteValues.put(NoteColumns.HAS_ATTACHMENT, hasAttachment);
- }
- mHasAttachment = hasAttachment;
-
- long modifiedDate = note.has(NoteColumns.MODIFIED_DATE) ? note
- .getLong(NoteColumns.MODIFIED_DATE) : System.currentTimeMillis();
- if (mIsCreate || mModifiedDate != modifiedDate) {
- mDiffNoteValues.put(NoteColumns.MODIFIED_DATE, modifiedDate);
- }
- mModifiedDate = modifiedDate;
-
- long parentId = note.has(NoteColumns.PARENT_ID) ? note
- .getLong(NoteColumns.PARENT_ID) : 0;
- if (mIsCreate || mParentId != parentId) {
- mDiffNoteValues.put(NoteColumns.PARENT_ID, parentId);
- }
- mParentId = parentId;
-
- String snippet = note.has(NoteColumns.SNIPPET) ? note
- .getString(NoteColumns.SNIPPET) : "";
- if (mIsCreate || !mSnippet.equals(snippet)) {
- mDiffNoteValues.put(NoteColumns.SNIPPET, snippet);
- }
- mSnippet = snippet;
-
- int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE)
- : Notes.TYPE_NOTE;
- if (mIsCreate || mType != type) {
- mDiffNoteValues.put(NoteColumns.TYPE, type);
- }
- mType = type;
-
- int widgetId = note.has(NoteColumns.WIDGET_ID) ? note.getInt(NoteColumns.WIDGET_ID)
- : AppWidgetManager.INVALID_APPWIDGET_ID;
- if (mIsCreate || mWidgetId != widgetId) {
- mDiffNoteValues.put(NoteColumns.WIDGET_ID, widgetId);
- }
- mWidgetId = widgetId;
-
- int widgetType = note.has(NoteColumns.WIDGET_TYPE) ? note
- .getInt(NoteColumns.WIDGET_TYPE) : Notes.TYPE_WIDGET_INVALIDE;
- if (mIsCreate || mWidgetType != widgetType) {
- mDiffNoteValues.put(NoteColumns.WIDGET_TYPE, widgetType);
- }
- mWidgetType = widgetType;
-
- long originParent = note.has(NoteColumns.ORIGIN_PARENT_ID) ? note
- .getLong(NoteColumns.ORIGIN_PARENT_ID) : 0;
- if (mIsCreate || mOriginParent != originParent) {
- mDiffNoteValues.put(NoteColumns.ORIGIN_PARENT_ID, originParent);
- }
- mOriginParent = originParent;
-
- for (int i = 0; i < dataArray.length(); i++) {
- JSONObject data = dataArray.getJSONObject(i);
- SqlData sqlData = null;
- if (data.has(DataColumns.ID)) {
- long dataId = data.getLong(DataColumns.ID);
- for (SqlData temp : mDataList) {
- if (dataId == temp.getId()) {
- sqlData = temp;
- }
- }
- }
-
- if (sqlData == null) {
- sqlData = new SqlData(mContext);
- mDataList.add(sqlData);
- }
-
- sqlData.setContent(data);
- }
- }
- } catch (JSONException e) {
- Log.e(TAG, e.toString());
- e.printStackTrace();
- return false;
- }
- return true;
- }
-
- public JSONObject getContent() {
- try {
- JSONObject js = new JSONObject();
-
- if (mIsCreate) {
- Log.e(TAG, "it seems that we haven't created this in database yet");
- return null;
- }
-
- JSONObject note = new JSONObject();
- if (mType == Notes.TYPE_NOTE) {
- note.put(NoteColumns.ID, mId);
- note.put(NoteColumns.ALERTED_DATE, mAlertDate);
- note.put(NoteColumns.BG_COLOR_ID, mBgColorId);
- note.put(NoteColumns.CREATED_DATE, mCreatedDate);
- note.put(NoteColumns.HAS_ATTACHMENT, mHasAttachment);
- note.put(NoteColumns.MODIFIED_DATE, mModifiedDate);
- note.put(NoteColumns.PARENT_ID, mParentId);
- note.put(NoteColumns.SNIPPET, mSnippet);
- note.put(NoteColumns.TYPE, mType);
- note.put(NoteColumns.WIDGET_ID, mWidgetId);
- note.put(NoteColumns.WIDGET_TYPE, mWidgetType);
- note.put(NoteColumns.ORIGIN_PARENT_ID, mOriginParent);
- js.put(GTaskStringUtils.META_HEAD_NOTE, note);
-
- JSONArray dataArray = new JSONArray();
- for (SqlData sqlData : mDataList) {
- JSONObject data = sqlData.getContent();
- if (data != null) {
- dataArray.put(data);
- }
- }
- js.put(GTaskStringUtils.META_HEAD_DATA, dataArray);
- } else if (mType == Notes.TYPE_FOLDER || mType == Notes.TYPE_SYSTEM) {
- note.put(NoteColumns.ID, mId);
- note.put(NoteColumns.TYPE, mType);
- note.put(NoteColumns.SNIPPET, mSnippet);
- js.put(GTaskStringUtils.META_HEAD_NOTE, note);
- }
-
- return js;
- } catch (JSONException e) {
- Log.e(TAG, e.toString());
- e.printStackTrace();
- }
- return null;
- }
-
- public void setParentId(long id) {
- mParentId = id;
- mDiffNoteValues.put(NoteColumns.PARENT_ID, id);
- }
-
- public void setGtaskId(String gid) {
- mDiffNoteValues.put(NoteColumns.GTASK_ID, gid);
- }
-
- public void setSyncId(long syncId) {
- mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId);
- }
-
- public void resetLocalModified() {
- mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0);
- }
-
- public long getId() {
- return mId;
- }
-
- public long getParentId() {
- return mParentId;
- }
-
- public String getSnippet() {
- return mSnippet;
- }
-
- public boolean isNoteType() {
- return mType == Notes.TYPE_NOTE;
- }
-
- public void commit(boolean validateVersion) {
- if (mIsCreate) {
- if (mId == INVALID_ID && mDiffNoteValues.containsKey(NoteColumns.ID)) {
- mDiffNoteValues.remove(NoteColumns.ID);
- }
-
- Uri uri = mContentResolver.insert(Notes.CONTENT_NOTE_URI, mDiffNoteValues);
- try {
- mId = Long.valueOf(uri.getPathSegments().get(1));
- } catch (NumberFormatException e) {
- Log.e(TAG, "Get note id error :" + e.toString());
- throw new ActionFailureException("create note failed");
- }
- if (mId == 0) {
- throw new IllegalStateException("Create thread id failed");
- }
-
- if (mType == Notes.TYPE_NOTE) {
- for (SqlData sqlData : mDataList) {
- sqlData.commit(mId, false, -1);
- }
- }
- } else {
- if (mId <= 0 && mId != Notes.ID_ROOT_FOLDER && mId != Notes.ID_CALL_RECORD_FOLDER) {
- Log.e(TAG, "No such note");
- throw new IllegalStateException("Try to update note with invalid id");
- }
- if (mDiffNoteValues.size() > 0) {
- mVersion ++;
- int result = 0;
- if (!validateVersion) {
- result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "("
- + NoteColumns.ID + "=?)", new String[] {
- String.valueOf(mId)
- });
- } else {
- result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "("
- + NoteColumns.ID + "=?) AND (" + NoteColumns.VERSION + "<=?)",
- new String[] {
- String.valueOf(mId), String.valueOf(mVersion)
- });
- }
- if (result == 0) {
- Log.w(TAG, "there is no update. maybe user updates note when syncing");
- }
- }
-
- if (mType == Notes.TYPE_NOTE) {
- for (SqlData sqlData : mDataList) {
- sqlData.commit(mId, validateVersion, mVersion);
- }
- }
- }
-
- // refresh local info
- loadFromCursor(mId);
- if (mType == Notes.TYPE_NOTE)
- loadDataContent();
-
- mDiffNoteValues.clear();
- mIsCreate = false;
- }
-}
diff --git a/src/Notes-master/src/net/micode/notes/gtask/data/Task.java b/src/Notes-master/src/net/micode/notes/gtask/data/Task.java
deleted file mode 100644
index 6a19454..0000000
--- a/src/Notes-master/src/net/micode/notes/gtask/data/Task.java
+++ /dev/null
@@ -1,351 +0,0 @@
-/*
- * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.micode.notes.gtask.data;
-
-import android.database.Cursor;
-import android.text.TextUtils;
-import android.util.Log;
-
-import net.micode.notes.data.Notes;
-import net.micode.notes.data.Notes.DataColumns;
-import net.micode.notes.data.Notes.DataConstants;
-import net.micode.notes.data.Notes.NoteColumns;
-import net.micode.notes.gtask.exception.ActionFailureException;
-import net.micode.notes.tool.GTaskStringUtils;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-
-public class Task extends Node {
- private static final String TAG = Task.class.getSimpleName();
-
- private boolean mCompleted;
-
- private String mNotes;
-
- private JSONObject mMetaInfo;
-
- private Task mPriorSibling;
-
- private TaskList mParent;
-
- public Task() {
- super();
- mCompleted = false;
- mNotes = null;
- mPriorSibling = null;
- mParent = null;
- mMetaInfo = null;
- }
-
- public JSONObject getCreateAction(int actionId) {
- JSONObject js = new JSONObject();
-
- try {
- // action_type
- js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE,
- GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE);
-
- // action_id
- js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId);
-
- // index
- js.put(GTaskStringUtils.GTASK_JSON_INDEX, mParent.getChildTaskIndex(this));
-
- // entity_delta
- JSONObject entity = new JSONObject();
- entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName());
- entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null");
- entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE,
- GTaskStringUtils.GTASK_JSON_TYPE_TASK);
- if (getNotes() != null) {
- entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes());
- }
- js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity);
-
- // parent_id
- js.put(GTaskStringUtils.GTASK_JSON_PARENT_ID, mParent.getGid());
-
- // dest_parent_type
- js.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT_TYPE,
- GTaskStringUtils.GTASK_JSON_TYPE_GROUP);
-
- // list_id
- js.put(GTaskStringUtils.GTASK_JSON_LIST_ID, mParent.getGid());
-
- // prior_sibling_id
- if (mPriorSibling != null) {
- js.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, mPriorSibling.getGid());
- }
-
- } catch (JSONException e) {
- Log.e(TAG, e.toString());
- e.printStackTrace();
- throw new ActionFailureException("fail to generate task-create jsonobject");
- }
-
- return js;
- }
-
- public JSONObject getUpdateAction(int actionId) {
- JSONObject js = new JSONObject();
-
- try {
- // action_type
- js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE,
- GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE);
-
- // action_id
- js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId);
-
- // id
- js.put(GTaskStringUtils.GTASK_JSON_ID, getGid());
-
- // entity_delta
- JSONObject entity = new JSONObject();
- entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName());
- if (getNotes() != null) {
- entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes());
- }
- entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted());
- js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity);
-
- } catch (JSONException e) {
- Log.e(TAG, e.toString());
- e.printStackTrace();
- throw new ActionFailureException("fail to generate task-update jsonobject");
- }
-
- return js;
- }
-
- public void setContentByRemoteJSON(JSONObject js) {
- if (js != null) {
- try {
- // id
- if (js.has(GTaskStringUtils.GTASK_JSON_ID)) {
- setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID));
- }
-
- // last_modified
- if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) {
- setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED));
- }
-
- // name
- if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) {
- setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME));
- }
-
- // notes
- if (js.has(GTaskStringUtils.GTASK_JSON_NOTES)) {
- setNotes(js.getString(GTaskStringUtils.GTASK_JSON_NOTES));
- }
-
- // deleted
- if (js.has(GTaskStringUtils.GTASK_JSON_DELETED)) {
- setDeleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_DELETED));
- }
-
- // completed
- if (js.has(GTaskStringUtils.GTASK_JSON_COMPLETED)) {
- setCompleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_COMPLETED));
- }
- } catch (JSONException e) {
- Log.e(TAG, e.toString());
- e.printStackTrace();
- throw new ActionFailureException("fail to get task content from jsonobject");
- }
- }
- }
-
- public void setContentByLocalJSON(JSONObject js) {
- if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)
- || !js.has(GTaskStringUtils.META_HEAD_DATA)) {
- Log.w(TAG, "setContentByLocalJSON: nothing is avaiable");
- }
-
- try {
- JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
- JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA);
-
- if (note.getInt(NoteColumns.TYPE) != Notes.TYPE_NOTE) {
- Log.e(TAG, "invalid type");
- return;
- }
-
- for (int i = 0; i < dataArray.length(); i++) {
- JSONObject data = dataArray.getJSONObject(i);
- if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) {
- setName(data.getString(DataColumns.CONTENT));
- break;
- }
- }
-
- } catch (JSONException e) {
- Log.e(TAG, e.toString());
- e.printStackTrace();
- }
- }
-
- public JSONObject getLocalJSONFromContent() {
- String name = getName();
- try {
- if (mMetaInfo == null) {
- // new task created from web
- if (name == null) {
- Log.w(TAG, "the note seems to be an empty one");
- return null;
- }
-
- JSONObject js = new JSONObject();
- JSONObject note = new JSONObject();
- JSONArray dataArray = new JSONArray();
- JSONObject data = new JSONObject();
- data.put(DataColumns.CONTENT, name);
- dataArray.put(data);
- js.put(GTaskStringUtils.META_HEAD_DATA, dataArray);
- note.put(NoteColumns.TYPE, Notes.TYPE_NOTE);
- js.put(GTaskStringUtils.META_HEAD_NOTE, note);
- return js;
- } else {
- // synced task
- JSONObject note = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
- JSONArray dataArray = mMetaInfo.getJSONArray(GTaskStringUtils.META_HEAD_DATA);
-
- for (int i = 0; i < dataArray.length(); i++) {
- JSONObject data = dataArray.getJSONObject(i);
- if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) {
- data.put(DataColumns.CONTENT, getName());
- break;
- }
- }
-
- note.put(NoteColumns.TYPE, Notes.TYPE_NOTE);
- return mMetaInfo;
- }
- } catch (JSONException e) {
- Log.e(TAG, e.toString());
- e.printStackTrace();
- return null;
- }
- }
-
- public void setMetaInfo(MetaData metaData) {
- if (metaData != null && metaData.getNotes() != null) {
- try {
- mMetaInfo = new JSONObject(metaData.getNotes());
- } catch (JSONException e) {
- Log.w(TAG, e.toString());
- mMetaInfo = null;
- }
- }
- }
-
- public int getSyncAction(Cursor c) {
- try {
- JSONObject noteInfo = null;
- if (mMetaInfo != null && mMetaInfo.has(GTaskStringUtils.META_HEAD_NOTE)) {
- noteInfo = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
- }
-
- if (noteInfo == null) {
- Log.w(TAG, "it seems that note meta has been deleted");
- return SYNC_ACTION_UPDATE_REMOTE;
- }
-
- if (!noteInfo.has(NoteColumns.ID)) {
- Log.w(TAG, "remote note id seems to be deleted");
- return SYNC_ACTION_UPDATE_LOCAL;
- }
-
- // validate the note id now
- if (c.getLong(SqlNote.ID_COLUMN) != noteInfo.getLong(NoteColumns.ID)) {
- Log.w(TAG, "note id doesn't match");
- return SYNC_ACTION_UPDATE_LOCAL;
- }
-
- if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) {
- // there is no local update
- if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) {
- // no update both side
- return SYNC_ACTION_NONE;
- } else {
- // apply remote to local
- return SYNC_ACTION_UPDATE_LOCAL;
- }
- } else {
- // validate gtask id
- if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) {
- Log.e(TAG, "gtask id doesn't match");
- return SYNC_ACTION_ERROR;
- }
- if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) {
- // local modification only
- return SYNC_ACTION_UPDATE_REMOTE;
- } else {
- return SYNC_ACTION_UPDATE_CONFLICT;
- }
- }
- } catch (Exception e) {
- Log.e(TAG, e.toString());
- e.printStackTrace();
- }
-
- return SYNC_ACTION_ERROR;
- }
-
- public boolean isWorthSaving() {
- return mMetaInfo != null || (getName() != null && getName().trim().length() > 0)
- || (getNotes() != null && getNotes().trim().length() > 0);
- }
-
- public void setCompleted(boolean completed) {
- this.mCompleted = completed;
- }
-
- public void setNotes(String notes) {
- this.mNotes = notes;
- }
-
- public void setPriorSibling(Task priorSibling) {
- this.mPriorSibling = priorSibling;
- }
-
- public void setParent(TaskList parent) {
- this.mParent = parent;
- }
-
- public boolean getCompleted() {
- return this.mCompleted;
- }
-
- public String getNotes() {
- return this.mNotes;
- }
-
- public Task getPriorSibling() {
- return this.mPriorSibling;
- }
-
- public TaskList getParent() {
- return this.mParent;
- }
-
-}
diff --git a/src/README.md b/src/README.md
new file mode 100644
index 0000000..8351c7d
--- /dev/null
+++ b/src/README.md
@@ -0,0 +1,2 @@
+# zsy
+
diff --git a/src/app.zip b/src/app.zip
new file mode 100644
index 0000000..7a902aa
Binary files /dev/null and b/src/app.zip differ
diff --git a/src/app/build.gradle b/src/app/build.gradle
new file mode 100644
index 0000000..67bb31a
--- /dev/null
+++ b/src/app/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'com.android.application'
+
+android {
+ namespace "net.micode.notes"
+ compileSdkVersion 22
+ buildToolsVersion "34.0.0"
+
+ android {
+ useLibrary 'org.apache.http.legacy'
+ }
+
+ defaultConfig {
+ applicationId "net.micode.notes"
+ targetSdkVersion 16
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+ }
+ }
+}
+tasks.withType(JavaCompile) {
+ options.encoding = "UTF-8"
+}
\ No newline at end of file
diff --git a/src/app/build/intermediates/annotation_processor_list/debug/annotationProcessors.json b/src/app/build/intermediates/annotation_processor_list/debug/annotationProcessors.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/src/app/build/intermediates/annotation_processor_list/debug/annotationProcessors.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/src/app/build/intermediates/apk/debug/app-debug.apk b/src/app/build/intermediates/apk/debug/app-debug.apk
new file mode 100644
index 0000000..fcdfdce
Binary files /dev/null and b/src/app/build/intermediates/apk/debug/app-debug.apk differ
diff --git a/src/app/build/intermediates/apk/debug/output-metadata.json b/src/app/build/intermediates/apk/debug/output-metadata.json
new file mode 100644
index 0000000..b2231b9
--- /dev/null
+++ b/src/app/build/intermediates/apk/debug/output-metadata.json
@@ -0,0 +1,20 @@
+{
+ "version": 3,
+ "artifactType": {
+ "type": "APK",
+ "kind": "Directory"
+ },
+ "applicationId": "net.micode.notes",
+ "variantName": "debug",
+ "elements": [
+ {
+ "type": "SINGLE",
+ "filters": [],
+ "attributes": [],
+ "versionCode": 1,
+ "versionName": "0.1",
+ "outputFile": "app-debug.apk"
+ }
+ ],
+ "elementType": "File"
+}
\ No newline at end of file
diff --git a/src/app/build/intermediates/apk_ide_redirect_file/debug/redirect.txt b/src/app/build/intermediates/apk_ide_redirect_file/debug/redirect.txt
new file mode 100644
index 0000000..46dacc6
--- /dev/null
+++ b/src/app/build/intermediates/apk_ide_redirect_file/debug/redirect.txt
@@ -0,0 +1,2 @@
+#- File Locator -
+listingFile=../../apk/debug/output-metadata.json
diff --git a/src/app/build/intermediates/app_metadata/debug/app-metadata.properties b/src/app/build/intermediates/app_metadata/debug/app-metadata.properties
new file mode 100644
index 0000000..59d2906
--- /dev/null
+++ b/src/app/build/intermediates/app_metadata/debug/app-metadata.properties
@@ -0,0 +1,2 @@
+appMetadataVersion=1.1
+androidGradlePluginVersion=8.1.2
diff --git a/src/app/build/intermediates/assets/debug/font/FZSTK.TTF b/src/app/build/intermediates/assets/debug/font/FZSTK.TTF
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/build/intermediates/assets/debug/font/STXINGKA.TTF b/src/app/build/intermediates/assets/debug/font/STXINGKA.TTF
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/build/intermediates/assets/debug/font/mingliub.ttc b/src/app/build/intermediates/assets/debug/font/mingliub.ttc
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/build/intermediates/assets/debug/font/simhei.ttf b/src/app/build/intermediates/assets/debug/font/simhei.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/build/intermediates/compatible_screen_manifest/debug/output-metadata.json b/src/app/build/intermediates/compatible_screen_manifest/debug/output-metadata.json
new file mode 100644
index 0000000..714f651
--- /dev/null
+++ b/src/app/build/intermediates/compatible_screen_manifest/debug/output-metadata.json
@@ -0,0 +1,10 @@
+{
+ "version": 3,
+ "artifactType": {
+ "type": "COMPATIBLE_SCREEN_MANIFEST",
+ "kind": "Directory"
+ },
+ "applicationId": "net.micode.notes",
+ "variantName": "debug",
+ "elements": []
+}
\ No newline at end of file
diff --git a/src/app/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar b/src/app/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar
new file mode 100644
index 0000000..8c60b2e
Binary files /dev/null and b/src/app/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar differ
diff --git a/src/app/build/intermediates/compressed_assets/debug/out/assets/font/FZSTK.TTF.jar b/src/app/build/intermediates/compressed_assets/debug/out/assets/font/FZSTK.TTF.jar
new file mode 100644
index 0000000..f9dc560
Binary files /dev/null and b/src/app/build/intermediates/compressed_assets/debug/out/assets/font/FZSTK.TTF.jar differ
diff --git a/src/app/build/intermediates/compressed_assets/debug/out/assets/font/STXINGKA.TTF.jar b/src/app/build/intermediates/compressed_assets/debug/out/assets/font/STXINGKA.TTF.jar
new file mode 100644
index 0000000..6c83fc3
Binary files /dev/null and b/src/app/build/intermediates/compressed_assets/debug/out/assets/font/STXINGKA.TTF.jar differ
diff --git a/src/app/build/intermediates/compressed_assets/debug/out/assets/font/mingliub.ttc.jar b/src/app/build/intermediates/compressed_assets/debug/out/assets/font/mingliub.ttc.jar
new file mode 100644
index 0000000..8f03afd
Binary files /dev/null and b/src/app/build/intermediates/compressed_assets/debug/out/assets/font/mingliub.ttc.jar differ
diff --git a/src/app/build/intermediates/compressed_assets/debug/out/assets/font/simhei.ttf.jar b/src/app/build/intermediates/compressed_assets/debug/out/assets/font/simhei.ttf.jar
new file mode 100644
index 0000000..d8b9072
Binary files /dev/null and b/src/app/build/intermediates/compressed_assets/debug/out/assets/font/simhei.ttf.jar differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_0/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_0/graph.bin
new file mode 100644
index 0000000..d34c164
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_0/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_1/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_1/graph.bin
new file mode 100644
index 0000000..413449c
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_1/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_2/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_2/graph.bin
new file mode 100644
index 0000000..601f245
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_2/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_3/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_3/graph.bin
new file mode 100644
index 0000000..0c309fb
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_3/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_4/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_4/graph.bin
new file mode 100644
index 0000000..c813ad7
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_4/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_5/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_5/graph.bin
new file mode 100644
index 0000000..b25dd74
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_5/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_6/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_6/graph.bin
new file mode 100644
index 0000000..339fbef
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_6/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_7/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_7/graph.bin
new file mode 100644
index 0000000..9caff22
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_7/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_0/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_0/graph.bin
new file mode 100644
index 0000000..601f245
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_0/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_1/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_1/graph.bin
new file mode 100644
index 0000000..601f245
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_1/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_2/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_2/graph.bin
new file mode 100644
index 0000000..601f245
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_2/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_3/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_3/graph.bin
new file mode 100644
index 0000000..601f245
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_3/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_4/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_4/graph.bin
new file mode 100644
index 0000000..601f245
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_4/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_5/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_5/graph.bin
new file mode 100644
index 0000000..601f245
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_5/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_6/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_6/graph.bin
new file mode 100644
index 0000000..601f245
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_6/graph.bin differ
diff --git a/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_7/graph.bin b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_7/graph.bin
new file mode 100644
index 0000000..601f245
Binary files /dev/null and b/src/app/build/intermediates/desugar_graph/debug/out/currentProject/jar_ae858c6b409adaf880ea9fe9e269dcf51641a95740cfd48c552341712f6460dd_bucket_7/graph.bin differ
diff --git a/src/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex b/src/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex
new file mode 100644
index 0000000..5884480
Binary files /dev/null and b/src/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex differ
diff --git a/src/app/build/intermediates/dex_archive_input_jar_hashes/debug/out b/src/app/build/intermediates/dex_archive_input_jar_hashes/debug/out
new file mode 100644
index 0000000..d6d6813
Binary files /dev/null and b/src/app/build/intermediates/dex_archive_input_jar_hashes/debug/out differ
diff --git a/src/app/build/intermediates/dex_number_of_buckets_file/debug/out b/src/app/build/intermediates/dex_number_of_buckets_file/debug/out
new file mode 100644
index 0000000..301160a
--- /dev/null
+++ b/src/app/build/intermediates/dex_number_of_buckets_file/debug/out
@@ -0,0 +1 @@
+8
\ No newline at end of file
diff --git a/src/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state b/src/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state
new file mode 100644
index 0000000..1c983fc
Binary files /dev/null and b/src/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state differ
diff --git a/src/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties b/src/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties
new file mode 100644
index 0000000..c4eee49
--- /dev/null
+++ b/src/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties
@@ -0,0 +1,101 @@
+#Fri Jan 19 00:53:09 GMT+08:00 2024
+net.micode.notes.app-main-6\:/color/primary_text_dark.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\color_primary_text_dark.xml.flat
+net.micode.notes.app-main-6\:/color/secondary_text_dark.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\color_secondary_text_dark.xml.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/a1.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_a1.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/a2.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_a2.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/a3.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_a3.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/a4.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_a4.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/bg_btn_set_color.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_bg_btn_set_color.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/bg_color_btn_mask.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_bg_color_btn_mask.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/call_record.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_call_record.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/clock.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_clock.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/delete.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_delete.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/dropdown_icon.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_dropdown_icon.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/edit_blue.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_blue.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/edit_green.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_green.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/edit_red.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_red.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/edit_title_blue.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_blue.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/edit_title_green.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_green.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/edit_title_red.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_red.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/edit_title_white.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_white.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/edit_title_yellow.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_yellow.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/edit_white.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_white.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/edit_yellow.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_yellow.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/font_large.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_large.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/font_normal.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_normal.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/font_size_selector_bg.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_size_selector_bg.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/font_small.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_small.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/font_super.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_super.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/g780.jpg=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_g780.jpg.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/gao.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_gao.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/icon_app.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_icon_app.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_background.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_background.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_blue_down.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_down.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_blue_middle.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_middle.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_blue_single.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_single.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_blue_up.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_up.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_folder.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_folder.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_footer_bg.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_footer_bg.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_green_down.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_down.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_green_middle.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_middle.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_green_single.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_single.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_green_up.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_up.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_red_down.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_down.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_red_middle.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_middle.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_red_single.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_single.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_red_up.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_up.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_white_down.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_down.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_white_middle.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_middle.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_white_single.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_single.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_white_up.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_up.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_yellow_down.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_down.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_yellow_middle.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_middle.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_yellow_single.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_single.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/list_yellow_up.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_up.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/menu_delete.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_menu_delete.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/menu_move.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_menu_move.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/new_note_normal.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_new_note_normal.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/new_note_pressed.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_new_note_pressed.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/note_edit_color_selector_panel.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_note_edit_color_selector_panel.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/search_result.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_search_result.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/selected.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_selected.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/title_alert.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_title_alert.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/title_bar_bg.9.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_title_bar_bg.9.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/widget_2x_blue.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_blue.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/widget_2x_green.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_green.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/widget_2x_red.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_red.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/widget_2x_white.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_white.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/widget_2x_yellow.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_yellow.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/widget_4x_blue.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_blue.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/widget_4x_green.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_green.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/widget_4x_red.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_red.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/widget_4x_white.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_white.png.flat
+net.micode.notes.app-main-6\:/drawable-hdpi/widget_4x_yellow.png=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_yellow.png.flat
+net.micode.notes.app-main-6\:/drawable/new_note.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\drawable_new_note.xml.flat
+net.micode.notes.app-main-6\:/layout/account_dialog_title.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_account_dialog_title.xml.flat
+net.micode.notes.app-main-6\:/layout/add_account_text.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_add_account_text.xml.flat
+net.micode.notes.app-main-6\:/layout/datetime_picker.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_datetime_picker.xml.flat
+net.micode.notes.app-main-6\:/layout/dialog_edit_text.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_dialog_edit_text.xml.flat
+net.micode.notes.app-main-6\:/layout/folder_list_item.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_folder_list_item.xml.flat
+net.micode.notes.app-main-6\:/layout/note_edit.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_note_edit.xml.flat
+net.micode.notes.app-main-6\:/layout/note_edit_list_item.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_note_edit_list_item.xml.flat
+net.micode.notes.app-main-6\:/layout/note_item.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_note_item.xml.flat
+net.micode.notes.app-main-6\:/layout/note_list.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_note_list.xml.flat
+net.micode.notes.app-main-6\:/layout/note_list_dropdown_menu.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_note_list_dropdown_menu.xml.flat
+net.micode.notes.app-main-6\:/layout/note_list_footer.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_note_list_footer.xml.flat
+net.micode.notes.app-main-6\:/layout/settings_header.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_settings_header.xml.flat
+net.micode.notes.app-main-6\:/layout/widget_2x.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_widget_2x.xml.flat
+net.micode.notes.app-main-6\:/layout/widget_4x.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\layout_widget_4x.xml.flat
+net.micode.notes.app-main-6\:/menu/call_note_edit.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\menu_call_note_edit.xml.flat
+net.micode.notes.app-main-6\:/menu/call_record_folder.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\menu_call_record_folder.xml.flat
+net.micode.notes.app-main-6\:/menu/note_edit.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\menu_note_edit.xml.flat
+net.micode.notes.app-main-6\:/menu/note_list.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\menu_note_list.xml.flat
+net.micode.notes.app-main-6\:/menu/note_list_dropdown.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\menu_note_list_dropdown.xml.flat
+net.micode.notes.app-main-6\:/menu/note_list_options.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\menu_note_list_options.xml.flat
+net.micode.notes.app-main-6\:/menu/sub_folder.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\menu_sub_folder.xml.flat
+net.micode.notes.app-main-6\:/raw-zh-rCN/introduction=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\raw-zh-rCN_introduction.flat
+net.micode.notes.app-main-6\:/raw/introduction=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\raw_introduction.flat
+net.micode.notes.app-main-6\:/xml/preferences.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\xml_preferences.xml.flat
+net.micode.notes.app-main-6\:/xml/searchable.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\xml_searchable.xml.flat
+net.micode.notes.app-main-6\:/xml/widget_2x_info.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\xml_widget_2x_info.xml.flat
+net.micode.notes.app-main-6\:/xml/widget_4x_info.xml=D\:\\note1\\app\\build\\intermediates\\merged_res\\debug\\xml_widget_4x_info.xml.flat
diff --git a/src/app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml b/src/app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml
new file mode 100644
index 0000000..e4425b2
--- /dev/null
+++ b/src/app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml
@@ -0,0 +1,56 @@
+
+
+ -%s
+ --%s
+ --%s
+ --%s
+
+ Messaging
+ Email
+ #335b5b5b33sp26sp20sp17sp14spNotesNotes 2x2Notes 4x4No associated note found, click to create associated note.Privacy mode,can not see note content...Add noteDelete reminder successfullySet reminderExpiredyyyyMMddMMMd kk:mmGot itTake a lookCallSend emailBrowse webOpen map/MIUI/notes/notes_%s.txt(%d)New FolderExport textg780gaoset_passcodedelete_passcodeSyncCancel syncingSettingsSearchDeleteMove to folder%d selectedNothing selected, the operation is invalidSelect allDeselect allFont sizeSmallMediumLargeSuperEnter check listLeave check listView folderDelete folderChange folder nameThe folder %1$s exist, please renameShareSend to homeRemind meDelete reminderSelect folderParent folderNote added to homeConfirm to delete folder and its notes?Delete selected notesConfirm to delete the selected %d notes?Confirm to delete this note?Have moved selected %1$d notes to %2$s folderSD card busy, not available nowExport failed, please check SD cardThe note is not existSorry, can not set clock on empty noteSorry, can not send and empty note to homeExport successfulExport failExport text file (%1$s) to SD (%2$s) directorySyncing notes...Sync is successfulSync is failedSync is canceledSync is successful with account %1$sSync failed, please check network and account settingsSync failed, internal error occursSync is canceledLogging into %1$s...Getting remote note list...Synchronize local notes with Google Task...SettingsSync accountSync notes with google taskLast sync time %1$syyyy-MM-dd hh:mm:ssAdd accountChange sync accountRemove sync accountCancelSync immediatelyCancel syncingCurrent account %1$sAll sync related information will be deleted, which may result in duplicated items sometimeSync notesPlease select a google account. Local notes will be synced with google task.Cannot change the account because sync is in progress%1$s has been set as the sync accountNew note background color randomDeleteCall notesInput nameSearching NotesSearch notesText in your notesNotessetcancel
+ %1$s result for \"%2$s\"
+
+ %1$s results for \"%2$s\"
+ Read notesfont_selectRevokeTipsYou can not revokeYou have not input anything
+ 短信
+ 邮件
+ 便签便签2x2便签4x4没有关联内容,点击新建便签。访客模式下,便签内容不可见...新建便签成功删除提醒创建提醒已过期yyyyMMddMM月dd日 kk:mm知道了查看呼叫电话发送邮件浏览网页打开地图新建文件夹导出文本同步取消同步设置搜索删除移动到文件夹选中了 %d 项没有选中项,操作无效全选取消全选文字大小小正常大超大进入清单模式set_passcodedelete_passcode退出清单模式查看文件夹刪除文件夹修改文件夹名称文件夹 %1$s 已存在,请重新命名分享发送到桌面提醒我删除提醒选择文件夹上一级文件夹已添加到桌面删除确认要删除所选的 %d 条便签吗?确认要删除该条便签吗?确认删除文件夹及所包含的便签吗?已将所选 %1$d 条便签移到 %2$s 文件夹SD卡被占用,不能操作导出文本时发生错误,请检查SD卡要查看的便签不存在不能为空便签设置闹钟提醒不能将空便签发送到桌面导出成功导出失败已将文本文件(%1$s)输出至SD卡(%2$s)目录同步便签...同步成功同步失败同步已取消与%1$s同步成功同步失败,请检查网络和帐号设置同步失败,发生内部错误同步已取消登录%1$s...正在获取服务器便签列表...正在同步本地便签...设置同步账号与google task同步便签记录上次同步于 %1$s添加账号更换账号删除账号取消立即同步取消同步当前帐号 %1$s如更换同步帐号,过去的帐号同步信息将被清空,再次切换的同时可能会造成数据重复同步便签请选择google帐号,便签将与该帐号的google task内容同步。正在同步中,不能修改同步帐号同步帐号已设置为%1$s新建便签背景颜色随机删除通话便签请输入名称正在搜索便签搜索便签便签中的文字便签设置取消
+ %1$s 条符合“%2$s”的搜索结果
+ 读便签选择字体撤销提示你不能撤销了您还没有输入任何内容
+ 短信
+ 郵件
+ 便簽便簽2x2便簽4x4沒有關聯內容,點擊新建便簽。訪客模式下,便籤內容不可見...新建便簽成功刪除提醒創建提醒已過期yyyyMMddMM月dd日 kk:mm知道了查看呼叫電話發送郵件浏覽網頁打開地圖已將所選 %1$d 便籤移到 %2$s 文件夾新建文件夾導出文本同步取消同步設置搜尋刪除移動到文件夾選中了 %d 項沒有選中項,操作無效全選取消全選文字大小小正常大超大進入清單模式退出清單模式查看文件夾刪除文件夾修改文件夾名稱文件夾 %1$s 已存在,請重新命名分享發送到桌面提醒我刪除提醒選擇文件夾上一級文件夾已添加到桌面刪除确认要刪除所選的 %d 條便籤嗎?确认要删除該條便籤嗎?確認刪除檔夾及所包含的便簽嗎?SD卡被佔用,不能操作導出TXT時發生錯誤,請檢查SD卡要查看的便籤不存在不能爲空便籤設置鬧鐘提醒不能將空便籤發送到桌面導出成功導出失敗已將文本文件(%1$s)導出至SD(%2$s)目錄同步便簽...同步成功同步失敗同步已取消與%1$s同步成功同步失敗,請檢查網絡和帳號設置同步失敗,發生內部錯誤同步已取消登陸%1$s...正在獲取服務器便籤列表...正在同步本地便籤...設置同步賬號与google task同步便簽記錄上次同步于 %1$s添加賬號更換賬號刪除賬號取消立即同步取消同步當前帳號 %1$s如更換同步帳號,過去的帳號同步信息將被清空,再次切換的同時可能會造成數據重復同步便簽請選擇google帳號,便簽將與該帳號的google task內容同步。正在同步中,不能修改同步帳號同步帳號已設置為%1$s新建便籤背景顏色隨機刪除通話便籤請輸入名稱正在搜索便籤搜索便籤便籤中的文字便籤設置取消set_passcodedelete_passcode
+ %1$s 條符合”%2$s“的搜尋結果
+
\ No newline at end of file
diff --git a/src/app/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/src/app/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties
new file mode 100644
index 0000000..05301d4
--- /dev/null
+++ b/src/app/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties
@@ -0,0 +1,101 @@
+#Fri Jan 19 00:53:10 GMT+08:00 2024
+net.micode.notes.app-main-5\:/color/primary_text_dark.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\color\\primary_text_dark.xml
+net.micode.notes.app-main-5\:/color/secondary_text_dark.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\color\\secondary_text_dark.xml
+net.micode.notes.app-main-5\:/drawable-hdpi/a1.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\a1.png
+net.micode.notes.app-main-5\:/drawable-hdpi/a2.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\a2.png
+net.micode.notes.app-main-5\:/drawable-hdpi/a3.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\a3.png
+net.micode.notes.app-main-5\:/drawable-hdpi/a4.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\a4.png
+net.micode.notes.app-main-5\:/drawable-hdpi/bg_btn_set_color.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\bg_btn_set_color.png
+net.micode.notes.app-main-5\:/drawable-hdpi/bg_color_btn_mask.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\bg_color_btn_mask.png
+net.micode.notes.app-main-5\:/drawable-hdpi/call_record.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\call_record.png
+net.micode.notes.app-main-5\:/drawable-hdpi/clock.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\clock.png
+net.micode.notes.app-main-5\:/drawable-hdpi/delete.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\delete.png
+net.micode.notes.app-main-5\:/drawable-hdpi/dropdown_icon.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\dropdown_icon.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/edit_blue.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_blue.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/edit_green.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_green.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/edit_red.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_red.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_blue.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_title_blue.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_green.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_title_green.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_red.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_title_red.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_white.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_title_white.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_yellow.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_title_yellow.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/edit_white.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_white.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/edit_yellow.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_yellow.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/font_large.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\font_large.png
+net.micode.notes.app-main-5\:/drawable-hdpi/font_normal.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\font_normal.png
+net.micode.notes.app-main-5\:/drawable-hdpi/font_size_selector_bg.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\font_size_selector_bg.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/font_small.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\font_small.png
+net.micode.notes.app-main-5\:/drawable-hdpi/font_super.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\font_super.png
+net.micode.notes.app-main-5\:/drawable-hdpi/g780.jpg=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\g780.jpg
+net.micode.notes.app-main-5\:/drawable-hdpi/gao.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\gao.png
+net.micode.notes.app-main-5\:/drawable-hdpi/icon_app.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\icon_app.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_background.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_background.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_down.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_blue_down.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_middle.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_blue_middle.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_single.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_blue_single.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_up.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_blue_up.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_folder.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_folder.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_footer_bg.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_footer_bg.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_green_down.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_green_down.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_green_middle.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_green_middle.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_green_single.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_green_single.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_green_up.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_green_up.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_red_down.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_red_down.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_red_middle.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_red_middle.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_red_single.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_red_single.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_red_up.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_red_up.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_white_down.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_white_down.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_white_middle.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_white_middle.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_white_single.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_white_single.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_white_up.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_white_up.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_down.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_yellow_down.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_middle.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_yellow_middle.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_single.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_yellow_single.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_up.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_yellow_up.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/menu_delete.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\menu_delete.png
+net.micode.notes.app-main-5\:/drawable-hdpi/menu_move.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\menu_move.png
+net.micode.notes.app-main-5\:/drawable-hdpi/new_note_normal.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\new_note_normal.png
+net.micode.notes.app-main-5\:/drawable-hdpi/new_note_pressed.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\new_note_pressed.png
+net.micode.notes.app-main-5\:/drawable-hdpi/note_edit_color_selector_panel.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\note_edit_color_selector_panel.png
+net.micode.notes.app-main-5\:/drawable-hdpi/search_result.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\search_result.png
+net.micode.notes.app-main-5\:/drawable-hdpi/selected.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\selected.png
+net.micode.notes.app-main-5\:/drawable-hdpi/title_alert.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\title_alert.png
+net.micode.notes.app-main-5\:/drawable-hdpi/title_bar_bg.9.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\title_bar_bg.9.png
+net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_blue.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_2x_blue.png
+net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_green.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_2x_green.png
+net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_red.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_2x_red.png
+net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_white.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_2x_white.png
+net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_yellow.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_2x_yellow.png
+net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_blue.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_4x_blue.png
+net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_green.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_4x_green.png
+net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_red.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_4x_red.png
+net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_white.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_4x_white.png
+net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_yellow.png=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_4x_yellow.png
+net.micode.notes.app-main-5\:/drawable/new_note.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\drawable\\new_note.xml
+net.micode.notes.app-main-5\:/layout/account_dialog_title.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\account_dialog_title.xml
+net.micode.notes.app-main-5\:/layout/add_account_text.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\add_account_text.xml
+net.micode.notes.app-main-5\:/layout/datetime_picker.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\datetime_picker.xml
+net.micode.notes.app-main-5\:/layout/dialog_edit_text.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\dialog_edit_text.xml
+net.micode.notes.app-main-5\:/layout/folder_list_item.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\folder_list_item.xml
+net.micode.notes.app-main-5\:/layout/note_edit.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_edit.xml
+net.micode.notes.app-main-5\:/layout/note_edit_list_item.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_edit_list_item.xml
+net.micode.notes.app-main-5\:/layout/note_item.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_item.xml
+net.micode.notes.app-main-5\:/layout/note_list.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_list.xml
+net.micode.notes.app-main-5\:/layout/note_list_dropdown_menu.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_list_dropdown_menu.xml
+net.micode.notes.app-main-5\:/layout/note_list_footer.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_list_footer.xml
+net.micode.notes.app-main-5\:/layout/settings_header.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\settings_header.xml
+net.micode.notes.app-main-5\:/layout/widget_2x.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\widget_2x.xml
+net.micode.notes.app-main-5\:/layout/widget_4x.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\layout\\widget_4x.xml
+net.micode.notes.app-main-5\:/menu/call_note_edit.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\menu\\call_note_edit.xml
+net.micode.notes.app-main-5\:/menu/call_record_folder.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\menu\\call_record_folder.xml
+net.micode.notes.app-main-5\:/menu/note_edit.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\menu\\note_edit.xml
+net.micode.notes.app-main-5\:/menu/note_list.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\menu\\note_list.xml
+net.micode.notes.app-main-5\:/menu/note_list_dropdown.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\menu\\note_list_dropdown.xml
+net.micode.notes.app-main-5\:/menu/note_list_options.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\menu\\note_list_options.xml
+net.micode.notes.app-main-5\:/menu/sub_folder.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\menu\\sub_folder.xml
+net.micode.notes.app-main-5\:/raw-zh-rCN/introduction=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\raw-zh-rCN\\introduction
+net.micode.notes.app-main-5\:/raw/introduction=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\raw\\introduction
+net.micode.notes.app-main-5\:/xml/preferences.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\xml\\preferences.xml
+net.micode.notes.app-main-5\:/xml/searchable.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\xml\\searchable.xml
+net.micode.notes.app-main-5\:/xml/widget_2x_info.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\xml\\widget_2x_info.xml
+net.micode.notes.app-main-5\:/xml/widget_4x_info.xml=D\:\\note1\\app\\build\\intermediates\\packaged_res\\debug\\xml\\widget_4x_info.xml
diff --git a/src/app/build/intermediates/incremental/debug/packageDebugResources/merger.xml b/src/app/build/intermediates/incremental/debug/packageDebugResources/merger.xml
new file mode 100644
index 0000000..e4425b2
--- /dev/null
+++ b/src/app/build/intermediates/incremental/debug/packageDebugResources/merger.xml
@@ -0,0 +1,56 @@
+
+
+ -%s
+ --%s
+ --%s
+ --%s
+
+ Messaging
+ Email
+ #335b5b5b33sp26sp20sp17sp14spNotesNotes 2x2Notes 4x4No associated note found, click to create associated note.Privacy mode,can not see note content...Add noteDelete reminder successfullySet reminderExpiredyyyyMMddMMMd kk:mmGot itTake a lookCallSend emailBrowse webOpen map/MIUI/notes/notes_%s.txt(%d)New FolderExport textg780gaoset_passcodedelete_passcodeSyncCancel syncingSettingsSearchDeleteMove to folder%d selectedNothing selected, the operation is invalidSelect allDeselect allFont sizeSmallMediumLargeSuperEnter check listLeave check listView folderDelete folderChange folder nameThe folder %1$s exist, please renameShareSend to homeRemind meDelete reminderSelect folderParent folderNote added to homeConfirm to delete folder and its notes?Delete selected notesConfirm to delete the selected %d notes?Confirm to delete this note?Have moved selected %1$d notes to %2$s folderSD card busy, not available nowExport failed, please check SD cardThe note is not existSorry, can not set clock on empty noteSorry, can not send and empty note to homeExport successfulExport failExport text file (%1$s) to SD (%2$s) directorySyncing notes...Sync is successfulSync is failedSync is canceledSync is successful with account %1$sSync failed, please check network and account settingsSync failed, internal error occursSync is canceledLogging into %1$s...Getting remote note list...Synchronize local notes with Google Task...SettingsSync accountSync notes with google taskLast sync time %1$syyyy-MM-dd hh:mm:ssAdd accountChange sync accountRemove sync accountCancelSync immediatelyCancel syncingCurrent account %1$sAll sync related information will be deleted, which may result in duplicated items sometimeSync notesPlease select a google account. Local notes will be synced with google task.Cannot change the account because sync is in progress%1$s has been set as the sync accountNew note background color randomDeleteCall notesInput nameSearching NotesSearch notesText in your notesNotessetcancel
+ %1$s result for \"%2$s\"
+
+ %1$s results for \"%2$s\"
+ Read notesfont_selectRevokeTipsYou can not revokeYou have not input anything
+ 短信
+ 邮件
+ 便签便签2x2便签4x4没有关联内容,点击新建便签。访客模式下,便签内容不可见...新建便签成功删除提醒创建提醒已过期yyyyMMddMM月dd日 kk:mm知道了查看呼叫电话发送邮件浏览网页打开地图新建文件夹导出文本同步取消同步设置搜索删除移动到文件夹选中了 %d 项没有选中项,操作无效全选取消全选文字大小小正常大超大进入清单模式set_passcodedelete_passcode退出清单模式查看文件夹刪除文件夹修改文件夹名称文件夹 %1$s 已存在,请重新命名分享发送到桌面提醒我删除提醒选择文件夹上一级文件夹已添加到桌面删除确认要删除所选的 %d 条便签吗?确认要删除该条便签吗?确认删除文件夹及所包含的便签吗?已将所选 %1$d 条便签移到 %2$s 文件夹SD卡被占用,不能操作导出文本时发生错误,请检查SD卡要查看的便签不存在不能为空便签设置闹钟提醒不能将空便签发送到桌面导出成功导出失败已将文本文件(%1$s)输出至SD卡(%2$s)目录同步便签...同步成功同步失败同步已取消与%1$s同步成功同步失败,请检查网络和帐号设置同步失败,发生内部错误同步已取消登录%1$s...正在获取服务器便签列表...正在同步本地便签...设置同步账号与google task同步便签记录上次同步于 %1$s添加账号更换账号删除账号取消立即同步取消同步当前帐号 %1$s如更换同步帐号,过去的帐号同步信息将被清空,再次切换的同时可能会造成数据重复同步便签请选择google帐号,便签将与该帐号的google task内容同步。正在同步中,不能修改同步帐号同步帐号已设置为%1$s新建便签背景颜色随机删除通话便签请输入名称正在搜索便签搜索便签便签中的文字便签设置取消
+ %1$s 条符合“%2$s”的搜索结果
+ 读便签选择字体撤销提示你不能撤销了您还没有输入任何内容
+ 短信
+ 郵件
+ 便簽便簽2x2便簽4x4沒有關聯內容,點擊新建便簽。訪客模式下,便籤內容不可見...新建便簽成功刪除提醒創建提醒已過期yyyyMMddMM月dd日 kk:mm知道了查看呼叫電話發送郵件浏覽網頁打開地圖已將所選 %1$d 便籤移到 %2$s 文件夾新建文件夾導出文本同步取消同步設置搜尋刪除移動到文件夾選中了 %d 項沒有選中項,操作無效全選取消全選文字大小小正常大超大進入清單模式退出清單模式查看文件夾刪除文件夾修改文件夾名稱文件夾 %1$s 已存在,請重新命名分享發送到桌面提醒我刪除提醒選擇文件夾上一級文件夾已添加到桌面刪除确认要刪除所選的 %d 條便籤嗎?确认要删除該條便籤嗎?確認刪除檔夾及所包含的便簽嗎?SD卡被佔用,不能操作導出TXT時發生錯誤,請檢查SD卡要查看的便籤不存在不能爲空便籤設置鬧鐘提醒不能將空便籤發送到桌面導出成功導出失敗已將文本文件(%1$s)導出至SD(%2$s)目錄同步便簽...同步成功同步失敗同步已取消與%1$s同步成功同步失敗,請檢查網絡和帳號設置同步失敗,發生內部錯誤同步已取消登陸%1$s...正在獲取服務器便籤列表...正在同步本地便籤...設置同步賬號与google task同步便簽記錄上次同步于 %1$s添加賬號更換賬號刪除賬號取消立即同步取消同步當前帳號 %1$s如更換同步帳號,過去的帳號同步信息將被清空,再次切換的同時可能會造成數據重復同步便簽請選擇google帳號,便簽將與該帳號的google task內容同步。正在同步中,不能修改同步帳號同步帳號已設置為%1$s新建便籤背景顏色隨機刪除通話便籤請輸入名稱正在搜索便籤搜索便籤便籤中的文字便籤設置取消set_passcodedelete_passcode
+ %1$s 條符合”%2$s“的搜尋結果
+
\ No newline at end of file
diff --git a/src/app/build/intermediates/incremental/mergeDebugAssets/merger.xml b/src/app/build/intermediates/incremental/mergeDebugAssets/merger.xml
new file mode 100644
index 0000000..ecfe044
--- /dev/null
+++ b/src/app/build/intermediates/incremental/mergeDebugAssets/merger.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/src/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/src/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml
new file mode 100644
index 0000000..713828e
--- /dev/null
+++ b/src/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/src/app/build/intermediates/incremental/mergeDebugShaders/merger.xml b/src/app/build/intermediates/incremental/mergeDebugShaders/merger.xml
new file mode 100644
index 0000000..5eebfc8
--- /dev/null
+++ b/src/app/build/intermediates/incremental/mergeDebugShaders/merger.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/src/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt b/src/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt
new file mode 100644
index 0000000..da4f996
--- /dev/null
+++ b/src/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt
@@ -0,0 +1,4 @@
+#Fri Jan 19 02:22:15 GMT+08:00 2024
+base.0=D\:\\note1\\app\\build\\intermediates\\dex\\debug\\mergeDexDebug\\classes.dex
+path.0=classes.dex
+renamed.0=classes.dex
diff --git a/src/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources b/src/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources
new file mode 100644
index 0000000..7882120
Binary files /dev/null and b/src/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources differ
diff --git a/src/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/javaResources0 b/src/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/javaResources0
new file mode 100644
index 0000000..945a7c5
Binary files /dev/null and b/src/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/javaResources0 differ
diff --git a/src/app/build/intermediates/incremental/processDebugResources/resources-list-for-resources-debug.ap_.txt b/src/app/build/intermediates/incremental/processDebugResources/resources-list-for-resources-debug.ap_.txt
new file mode 100644
index 0000000..43237fb
--- /dev/null
+++ b/src/app/build/intermediates/incremental/processDebugResources/resources-list-for-resources-debug.ap_.txt
@@ -0,0 +1 @@
+G:\xiaomi\note\app\build\intermediates\merged_res\debug\color_primary_text_dark.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\color_secondary_text_dark.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_a1.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_a2.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_a3.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_a4.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_bg_btn_set_color.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_bg_color_btn_mask.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_call_record.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_clock.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_delete.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_dropdown_icon.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_edit_blue.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_edit_green.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_edit_red.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_edit_title_blue.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_edit_title_green.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_edit_title_red.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_edit_title_white.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_edit_title_yellow.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_edit_white.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_edit_yellow.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_font_large.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_font_normal.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_font_size_selector_bg.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_font_small.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_font_super.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_g780.jpg.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_gao.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_icon_app.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_background.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_blue_down.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_blue_middle.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_blue_single.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_blue_up.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_folder.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_footer_bg.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_green_down.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_green_middle.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_green_single.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_green_up.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_red_down.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_red_middle.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_red_single.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_red_up.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_white_down.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_white_middle.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_white_single.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_white_up.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_yellow_down.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_yellow_middle.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_yellow_single.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_list_yellow_up.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_menu_delete.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_menu_move.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_new_note_normal.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_new_note_pressed.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_note_edit_color_selector_panel.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_search_result.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_selected.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_title_alert.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_title_bar_bg.9.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_widget_2x_blue.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_widget_2x_green.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_widget_2x_red.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_widget_2x_white.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_widget_2x_yellow.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_widget_4x_blue.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_widget_4x_green.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_widget_4x_red.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_widget_4x_white.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable-hdpi_widget_4x_yellow.png.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\drawable_new_note.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_account_dialog_title.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_add_account_text.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_datetime_picker.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_dialog_edit_text.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_folder_list_item.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_note_edit.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_note_edit_list_item.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_note_item.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_note_list.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_note_list_dropdown_menu.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_note_list_footer.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_settings_header.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_widget_2x.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\layout_widget_4x.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\menu_call_note_edit.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\menu_call_record_folder.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\menu_note_edit.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\menu_note_list.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\menu_note_list_dropdown.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\menu_note_list_options.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\menu_sub_folder.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\raw-zh-rCN_introduction.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\raw_introduction.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\values-zh-rCN_values-zh-rCN.arsc.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\values-zh-rTW_values-zh-rTW.arsc.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\values_values.arsc.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\xml_preferences.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\xml_searchable.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\xml_widget_2x_info.xml.flat G:\xiaomi\note\app\build\intermediates\merged_res\debug\xml_widget_4x_info.xml.flat
\ No newline at end of file
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Contact.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Contact.class
new file mode 100644
index 0000000..60ccbbf
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Contact.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$CallNote.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$CallNote.class
new file mode 100644
index 0000000..274e43a
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$CallNote.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataColumns.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataColumns.class
new file mode 100644
index 0000000..569dbdc
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataColumns.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataConstants.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataConstants.class
new file mode 100644
index 0000000..f8dee34
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataConstants.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$NoteColumns.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$NoteColumns.class
new file mode 100644
index 0000000..54a6ce0
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$NoteColumns.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$TextNote.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$TextNote.class
new file mode 100644
index 0000000..8a63ad0
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$TextNote.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes.class
new file mode 100644
index 0000000..973ff7b
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper$TABLE.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper$TABLE.class
new file mode 100644
index 0000000..64fe9eb
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper$TABLE.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper.class
new file mode 100644
index 0000000..565d3c0
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesProvider.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesProvider.class
new file mode 100644
index 0000000..f494b90
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesProvider.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/MetaData.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/MetaData.class
new file mode 100644
index 0000000..71ec025
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/MetaData.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Node.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Node.class
new file mode 100644
index 0000000..59c2348
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Node.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlData.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlData.class
new file mode 100644
index 0000000..1b358b9
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlData.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlNote.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlNote.class
new file mode 100644
index 0000000..7ea6444
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlNote.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Task.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Task.class
new file mode 100644
index 0000000..2d2569c
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Task.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/TaskList.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/TaskList.class
new file mode 100644
index 0000000..d134575
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/TaskList.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/ActionFailureException.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/ActionFailureException.class
new file mode 100644
index 0000000..d50661a
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/ActionFailureException.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/NetworkFailureException.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/NetworkFailureException.class
new file mode 100644
index 0000000..695510a
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/NetworkFailureException.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$1.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$1.class
new file mode 100644
index 0000000..daea4d8
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$1.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.class
new file mode 100644
index 0000000..f73069c
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask.class
new file mode 100644
index 0000000..ec7c0d4
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskClient.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskClient.class
new file mode 100644
index 0000000..929e19a
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskClient.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskManager.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskManager.class
new file mode 100644
index 0000000..8406055
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskManager.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService$1.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService$1.class
new file mode 100644
index 0000000..00f2f82
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService$1.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService.class
new file mode 100644
index 0000000..836530e
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class
new file mode 100644
index 0000000..2015e3d
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class
new file mode 100644
index 0000000..94e9b80
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.class
new file mode 100644
index 0000000..15f1f77
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote.class
new file mode 100644
index 0000000..8c5cd4a
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils$TextExport.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils$TextExport.class
new file mode 100644
index 0000000..bed07b4
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils$TextExport.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils.class
new file mode 100644
index 0000000..f85dbd4
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/DataUtils.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/DataUtils.class
new file mode 100644
index 0000000..94ef572
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/DataUtils.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/GTaskStringUtils.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/GTaskStringUtils.class
new file mode 100644
index 0000000..51b6249
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/GTaskStringUtils.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteBgResources.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteBgResources.class
new file mode 100644
index 0000000..b37d3e8
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteBgResources.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteItemBgResources.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteItemBgResources.class
new file mode 100644
index 0000000..706624a
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteItemBgResources.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$TextAppearanceResources.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$TextAppearanceResources.class
new file mode 100644
index 0000000..215a0d0
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$TextAppearanceResources.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$WidgetBgResources.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$WidgetBgResources.class
new file mode 100644
index 0000000..3d0c37c
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$WidgetBgResources.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser.class
new file mode 100644
index 0000000..0ed9a86
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmAlertActivity.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmAlertActivity.class
new file mode 100644
index 0000000..1c2c702
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmAlertActivity.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class
new file mode 100644
index 0000000..4586d6d
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmReceiver.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmReceiver.class
new file mode 100644
index 0000000..2f45d9c
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmReceiver.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class
new file mode 100644
index 0000000..15dee66
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class
new file mode 100644
index 0000000..a5b1611
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$3.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$3.class
new file mode 100644
index 0000000..f8e98b5
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$3.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class
new file mode 100644
index 0000000..1363da3
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.class
new file mode 100644
index 0000000..255a4e6
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class
new file mode 100644
index 0000000..173a743
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$1.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$1.class
new file mode 100644
index 0000000..415e755
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$1.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.class
new file mode 100644
index 0000000..70481dd
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class
new file mode 100644
index 0000000..a7df97a
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu$1.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu$1.class
new file mode 100644
index 0000000..ddd74fd
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu$1.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class
new file mode 100644
index 0000000..54e7df6
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class
new file mode 100644
index 0000000..3ef5cd6
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter.class
new file mode 100644
index 0000000..3fb33ec
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class
new file mode 100644
index 0000000..d43ea96
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$10.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$10.class
new file mode 100644
index 0000000..8f3790e
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$10.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$11.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$11.class
new file mode 100644
index 0000000..fbd83aa
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$11.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$12.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$12.class
new file mode 100644
index 0000000..881fa6e
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$12.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$13.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$13.class
new file mode 100644
index 0000000..ba2b6d8
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$13.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$14.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$14.class
new file mode 100644
index 0000000..806bee2
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$14.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$15.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$15.class
new file mode 100644
index 0000000..0527e8c
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$15.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$16.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$16.class
new file mode 100644
index 0000000..82dcae0
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$16.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$17.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$17.class
new file mode 100644
index 0000000..60f0c26
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$17.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class
new file mode 100644
index 0000000..8a4c44c
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$3.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$3.class
new file mode 100644
index 0000000..8278cce
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$3.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$4.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$4.class
new file mode 100644
index 0000000..3f712a0
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$4.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$5.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$5.class
new file mode 100644
index 0000000..d6b3502
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$5.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$6.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$6.class
new file mode 100644
index 0000000..0b77303
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$6.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$7.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$7.class
new file mode 100644
index 0000000..5487e6f
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$7.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$8.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$8.class
new file mode 100644
index 0000000..a478ada
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$8.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$9.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$9.class
new file mode 100644
index 0000000..84288ec
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$9.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class
new file mode 100644
index 0000000..594340f
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class
new file mode 100644
index 0000000..120fcf7
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$1.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$1.class
new file mode 100644
index 0000000..c6c74cb
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$1.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.class
new file mode 100644
index 0000000..9874f47
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText.class
new file mode 100644
index 0000000..7b5714d
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteItemData.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteItemData.class
new file mode 100644
index 0000000..47c6986
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteItemData.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$1.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$1.class
new file mode 100644
index 0000000..ae9244f
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$1.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$2.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$2.class
new file mode 100644
index 0000000..70299f5
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$2.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$3.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$3.class
new file mode 100644
index 0000000..e952b8c
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$3.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$4.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$4.class
new file mode 100644
index 0000000..ae17758
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$4.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$5.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$5.class
new file mode 100644
index 0000000..cf9cee6
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$5.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$6.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$6.class
new file mode 100644
index 0000000..8e474d2
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$6.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$7.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$7.class
new file mode 100644
index 0000000..d21739a
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$7.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$8.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$8.class
new file mode 100644
index 0000000..7a5850a
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$8.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$9.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$9.class
new file mode 100644
index 0000000..8dbbc7e
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$9.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.class
new file mode 100644
index 0000000..fadd4fc
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ListEditState.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ListEditState.class
new file mode 100644
index 0000000..2edab7b
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ListEditState.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$1.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$1.class
new file mode 100644
index 0000000..e0b44ff
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$1.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$2.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$2.class
new file mode 100644
index 0000000..5e68562
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$2.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class
new file mode 100644
index 0000000..70b4274
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.class
new file mode 100644
index 0000000..1e7b9f0
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.class
new file mode 100644
index 0000000..00b8846
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class
new file mode 100644
index 0000000..55fc394
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class
new file mode 100644
index 0000000..2bdb58b
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class
new file mode 100644
index 0000000..5e432e9
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class
new file mode 100644
index 0000000..4596834
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$1.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$1.class
new file mode 100644
index 0000000..362fa05
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$1.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$2.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$2.class
new file mode 100644
index 0000000..8523228
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$2.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$3.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$3.class
new file mode 100644
index 0000000..d91bc85
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$3.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$4.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$4.class
new file mode 100644
index 0000000..99c7a64
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$4.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$5.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$5.class
new file mode 100644
index 0000000..17e4d3b
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$5.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$6.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$6.class
new file mode 100644
index 0000000..7b80036
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$6.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$7.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$7.class
new file mode 100644
index 0000000..d9abeb9
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$7.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class
new file mode 100644
index 0000000..39e534a
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class
new file mode 100644
index 0000000..eb938cf
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class
new file mode 100644
index 0000000..0937be2
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider.class
new file mode 100644
index 0000000..a00281f
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_2x.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_2x.class
new file mode 100644
index 0000000..043e410
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_2x.class differ
diff --git a/src/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_4x.class b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_4x.class
new file mode 100644
index 0000000..ee3fd40
Binary files /dev/null and b/src/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_4x.class differ
diff --git a/src/app/build/intermediates/local_only_symbol_list/debug/R-def.txt b/src/app/build/intermediates/local_only_symbol_list/debug/R-def.txt
new file mode 100644
index 0000000..77bc9e4
--- /dev/null
+++ b/src/app/build/intermediates/local_only_symbol_list/debug/R-def.txt
@@ -0,0 +1,317 @@
+R_DEF: Internal format may change without notice
+local
+array format_for_exported_note
+array menu_share_ways
+color primary_text_dark
+color secondary_text_dark
+color user_query_highlight
+dimen text_font_size_large
+dimen text_font_size_medium
+dimen text_font_size_normal
+dimen text_font_size_small
+dimen text_font_size_super
+drawable a1
+drawable a2
+drawable a3
+drawable a4
+drawable bg_btn_set_color
+drawable bg_color_btn_mask
+drawable call_record
+drawable clock
+drawable delete
+drawable dropdown_icon
+drawable edit_blue
+drawable edit_green
+drawable edit_red
+drawable edit_title_blue
+drawable edit_title_green
+drawable edit_title_red
+drawable edit_title_white
+drawable edit_title_yellow
+drawable edit_white
+drawable edit_yellow
+drawable font_large
+drawable font_normal
+drawable font_size_selector_bg
+drawable font_small
+drawable font_super
+drawable g780
+drawable gao
+drawable icon_app
+drawable list_background
+drawable list_blue_down
+drawable list_blue_middle
+drawable list_blue_single
+drawable list_blue_up
+drawable list_folder
+drawable list_footer_bg
+drawable list_green_down
+drawable list_green_middle
+drawable list_green_single
+drawable list_green_up
+drawable list_red_down
+drawable list_red_middle
+drawable list_red_single
+drawable list_red_up
+drawable list_white_down
+drawable list_white_middle
+drawable list_white_single
+drawable list_white_up
+drawable list_yellow_down
+drawable list_yellow_middle
+drawable list_yellow_single
+drawable list_yellow_up
+drawable menu_delete
+drawable menu_move
+drawable new_note
+drawable new_note_normal
+drawable new_note_pressed
+drawable note_edit_color_selector_panel
+drawable notification
+drawable search_result
+drawable selected
+drawable title_alert
+drawable title_bar_bg
+drawable widget_2x_blue
+drawable widget_2x_green
+drawable widget_2x_red
+drawable widget_2x_white
+drawable widget_2x_yellow
+drawable widget_4x_blue
+drawable widget_4x_green
+drawable widget_4x_red
+drawable widget_4x_white
+drawable widget_4x_yellow
+id account_dialog_subtitle
+id account_dialog_title
+id action_bold
+id action_italic
+id action_other
+id action_select_all
+id add_img_btn
+id add_img_menu_move
+id amPm
+id btn_new_note
+id btn_set_bg_color
+id cb_edit_item
+id date
+id delete
+id et_edit_text
+id et_foler_name
+id font_size_selector
+id hour
+id iv_alert_icon
+id iv_bg_blue
+id iv_bg_blue_select
+id iv_bg_green
+id iv_bg_green_select
+id iv_bg_red
+id iv_bg_red_select
+id iv_bg_white
+id iv_bg_white_select
+id iv_bg_yellow
+id iv_bg_yellow_select
+id iv_large_select
+id iv_medium_select
+id iv_small_select
+id iv_super_select
+id ll_font_large
+id ll_font_normal
+id ll_font_small
+id ll_font_super
+id menu_alert
+id menu_bg_g780
+id menu_bg_gao
+id menu_delete
+id menu_delete_key
+id menu_delete_passcode
+id menu_delete_remind
+id menu_export_text
+id menu_font_select
+id menu_font_size
+id menu_list_mode
+id menu_new_folder
+id menu_new_note
+id menu_revoke
+id menu_search
+id menu_send_to_desktop
+id menu_set_key
+id menu_set_passcode
+id menu_setting
+id menu_share
+id menu_sync
+id menu_voice_read
+id minute
+id move
+id navigation_bar
+id no_change
+id note_bg_color_selector
+id note_edit_list
+id note_edit_view
+id note_item
+id note_title
+id notes_list
+id prefenerece_sync_status_textview
+id preference_sync_button
+id selection_menu
+id sv_note_edit
+id text_num
+id tv_alert_date
+id tv_folder_name
+id tv_modified_date
+id tv_name
+id tv_time
+id tv_title
+id tv_title_bar
+id widget_bg_image
+id widget_text
+layout account_dialog_title
+layout add_account_text
+layout datetime_picker
+layout dialog_edit_text
+layout folder_list_item
+layout note_edit
+layout note_edit_list_item
+layout note_item
+layout note_list
+layout note_list_dropdown_menu
+layout note_list_footer
+layout settings_header
+layout widget_2x
+layout widget_4x
+menu call_note_edit
+menu call_record_folder
+menu note_edit
+menu note_list
+menu note_list_dropdown
+menu note_list_options
+menu sub_folder
+plurals search_results_title
+raw introduction
+string alert_message_delete_folder
+string alert_message_delete_note
+string alert_message_delete_notes
+string alert_title_delete
+string app_name
+string app_widget2x2
+string app_widget4x4
+string button_delete
+string call_record_folder_name
+string can_not_revoke
+string datetime_dialog_cancel
+string datetime_dialog_ok
+string delete_remind_time_message
+string error_note_empty_for_clock
+string error_note_empty_for_send_to_desktop
+string error_note_not_exist
+string error_sdcard_export
+string error_sdcard_unmounted
+string error_sync_cancelled
+string error_sync_internal
+string error_sync_network
+string failed_sdcard_export
+string file_name_txt_format
+string file_path
+string folder_exist
+string format_date_ymd
+string format_datetime_mdhm
+string format_exported_file_location
+string format_folder_files_count
+string format_move_notes_to_folder
+string have_not_input_anything
+string hint_foler_name
+string ic_delete_passcode
+string ic_set_passcode
+string info_note_enter_desktop
+string menu_alert
+string menu_bg_g780
+string menu_bg_gao
+string menu_create_folder
+string menu_delete
+string menu_deselect_all
+string menu_export_text
+string menu_folder_change_name
+string menu_folder_delete
+string menu_folder_view
+string menu_font_large
+string menu_font_normal
+string menu_font_select
+string menu_font_size
+string menu_font_small
+string menu_font_super
+string menu_list_mode
+string menu_move
+string menu_move_parent_folder
+string menu_normal_mode
+string menu_remove_remind
+string menu_revoke
+string menu_search
+string menu_select_all
+string menu_select_none
+string menu_select_title
+string menu_send_to_desktop
+string menu_setting
+string menu_share
+string menu_sync
+string menu_sync_cancel
+string menu_title_select_folder
+string menu_voice_read
+string note_alert_expired
+string note_link_email
+string note_link_other
+string note_link_tel
+string note_link_web
+string notealert_enter
+string notealert_ok
+string notelist_menu_new
+string notelist_string_info
+string preferences_account_summary
+string preferences_account_title
+string preferences_add_account
+string preferences_bg_random_appear_title
+string preferences_button_sync_cancel
+string preferences_button_sync_immediately
+string preferences_dialog_change_account_title
+string preferences_dialog_change_account_warn_msg
+string preferences_dialog_select_account_tips
+string preferences_dialog_select_account_title
+string preferences_last_sync_time
+string preferences_last_sync_time_format
+string preferences_menu_cancel
+string preferences_menu_change_account
+string preferences_menu_remove_account
+string preferences_title
+string preferences_toast_cannot_change_account
+string preferences_toast_success_set_accout
+string search
+string search_hint
+string search_label
+string search_setting_description
+string set_remind_time_message
+string success_sdcard_export
+string success_sync_account
+string sync_progress_init_list
+string sync_progress_login
+string sync_progress_syncing
+string ticker_cancel
+string ticker_fail
+string ticker_success
+string ticker_syncing
+string tips_of_revoke
+string widget_havenot_content
+string widget_under_visit_mode
+style HighlightTextAppearancePrimary
+style HighlightTextAppearanceSecondary
+style NoteActionBarStyle
+style NoteTheme
+style TextAppearanceLarge
+style TextAppearanceMedium
+style TextAppearanceNormal
+style TextAppearancePrimaryItem
+style TextAppearanceSecondaryItem
+style TextAppearanceSuper
+style TextAppearanceUnderMenuIcon
+xml preferences
+xml searchable
+xml widget_2x_info
+xml widget_4x_info
diff --git a/src/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt b/src/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt
new file mode 100644
index 0000000..024eda8
--- /dev/null
+++ b/src/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt
@@ -0,0 +1,272 @@
+1
+2
+17
+21
+22 D:\note1\app\src\main\AndroidManifest.xml:23:5-44
+23 android:minSdkVersion="1"
+23-->D:\note1\app\src\main\AndroidManifest.xml:23:15-41
+24 android:targetSdkVersion="16" />
+25
+26
+26-->D:\note1\app\src\main\AndroidManifest.xml:25:5-81
+26-->D:\note1\app\src\main\AndroidManifest.xml:25:22-78
+27
+27-->D:\note1\app\src\main\AndroidManifest.xml:26:5-88
+27-->D:\note1\app\src\main\AndroidManifest.xml:26:22-85
+28
+28-->D:\note1\app\src\main\AndroidManifest.xml:27:5-67
+28-->D:\note1\app\src\main\AndroidManifest.xml:27:22-64
+29
+29-->D:\note1\app\src\main\AndroidManifest.xml:28:5-72
+29-->D:\note1\app\src\main\AndroidManifest.xml:28:22-69
+30
+30-->D:\note1\app\src\main\AndroidManifest.xml:29:5-74
+30-->D:\note1\app\src\main\AndroidManifest.xml:29:22-71
+31
+31-->D:\note1\app\src\main\AndroidManifest.xml:30:5-80
+31-->D:\note1\app\src\main\AndroidManifest.xml:30:22-77
+32
+32-->D:\note1\app\src\main\AndroidManifest.xml:31:5-71
+32-->D:\note1\app\src\main\AndroidManifest.xml:31:22-68
+33
+33-->D:\note1\app\src\main\AndroidManifest.xml:32:5-74
+33-->D:\note1\app\src\main\AndroidManifest.xml:32:22-71
+34
+34-->D:\note1\app\src\main\AndroidManifest.xml:33:5-81
+34-->D:\note1\app\src\main\AndroidManifest.xml:33:22-78
+35
+36 D:\note1\app\src\main\AndroidManifest.xml:35:5-149:19
+37 android:debuggable="true"
+38 android:icon="@drawable/icon_app"
+38-->D:\note1\app\src\main\AndroidManifest.xml:36:9-42
+39 android:label="@string/app_name"
+39-->D:\note1\app\src\main\AndroidManifest.xml:37:9-41
+40 android:testOnly="true" >
+41 D:\note1\app\src\main\AndroidManifest.xml:38:9-51:20
+42 android:name="net.micode.notes.ui.NotesListActivity"
+42-->D:\note1\app\src\main\AndroidManifest.xml:39:13-49
+43 android:configChanges="keyboardHidden|orientation|screenSize"
+43-->D:\note1\app\src\main\AndroidManifest.xml:40:13-74
+44 android:label="@string/app_name"
+44-->D:\note1\app\src\main\AndroidManifest.xml:41:13-45
+45 android:launchMode="singleTop"
+45-->D:\note1\app\src\main\AndroidManifest.xml:42:13-43
+46 android:theme="@style/NoteTheme"
+46-->D:\note1\app\src\main\AndroidManifest.xml:43:13-45
+47 android:uiOptions="none"
+47-->D:\note1\app\src\main\AndroidManifest.xml:44:13-37
+48 android:windowSoftInputMode="adjustPan" >
+48-->D:\note1\app\src\main\AndroidManifest.xml:45:13-52
+49
+49-->D:\note1\app\src\main\AndroidManifest.xml:47:13-50:29
+50
+50-->D:\note1\app\src\main\AndroidManifest.xml:48:17-69
+50-->D:\note1\app\src\main\AndroidManifest.xml:48:25-66
+51
+52
+52-->D:\note1\app\src\main\AndroidManifest.xml:49:17-77
+52-->D:\note1\app\src\main\AndroidManifest.xml:49:27-74
+53
+54
+55 D:\note1\app\src\main\AndroidManifest.xml:53:9-81:20
+56 android:name="net.micode.notes.ui.NoteEditActivity"
+56-->D:\note1\app\src\main\AndroidManifest.xml:54:13-48
+57 android:configChanges="keyboardHidden|orientation|screenSize"
+57-->D:\note1\app\src\main\AndroidManifest.xml:55:13-74
+58 android:launchMode="singleTop"
+58-->D:\note1\app\src\main\AndroidManifest.xml:56:13-43
+59 android:theme="@style/NoteTheme" >
+59-->D:\note1\app\src\main\AndroidManifest.xml:57:13-45
+60
+60-->D:\note1\app\src\main\AndroidManifest.xml:59:13-64:29
+61
+61-->D:\note1\app\src\main\AndroidManifest.xml:60:17-69
+61-->D:\note1\app\src\main\AndroidManifest.xml:60:25-66
+62
+63
+63-->D:\note1\app\src\main\AndroidManifest.xml:61:17-76
+63-->D:\note1\app\src\main\AndroidManifest.xml:61:27-73
+64
+65
+65-->D:\note1\app\src\main\AndroidManifest.xml:62:17-78
+65-->D:\note1\app\src\main\AndroidManifest.xml:62:23-75
+66
+66-->D:\note1\app\src\main\AndroidManifest.xml:62:17-78
+66-->D:\note1\app\src\main\AndroidManifest.xml:62:23-75
+67
+68
+68-->D:\note1\app\src\main\AndroidManifest.xml:66:13-71:29
+69
+69-->D:\note1\app\src\main\AndroidManifest.xml:67:17-79
+69-->D:\note1\app\src\main\AndroidManifest.xml:67:25-76
+70
+71
+71-->D:\note1\app\src\main\AndroidManifest.xml:61:17-76
+71-->D:\note1\app\src\main\AndroidManifest.xml:61:27-73
+72
+73
+73-->D:\note1\app\src\main\AndroidManifest.xml:62:17-78
+73-->D:\note1\app\src\main\AndroidManifest.xml:62:23-75
+74
+74-->D:\note1\app\src\main\AndroidManifest.xml:62:17-78
+74-->D:\note1\app\src\main\AndroidManifest.xml:62:23-75
+75
+76
+76-->D:\note1\app\src\main\AndroidManifest.xml:73:13-76:29
+77
+77-->D:\note1\app\src\main\AndroidManifest.xml:74:17-71
+77-->D:\note1\app\src\main\AndroidManifest.xml:74:25-68
+78
+79
+79-->D:\note1\app\src\main\AndroidManifest.xml:61:17-76
+79-->D:\note1\app\src\main\AndroidManifest.xml:61:27-73
+80
+81
+82 D:\note1\app\src\main\AndroidManifest.xml:78:13-80:54
+83 android:name="android.app.searchable"
+83-->D:\note1\app\src\main\AndroidManifest.xml:79:17-54
+84 android:resource="@xml/searchable" />
+84-->D:\note1\app\src\main\AndroidManifest.xml:80:17-51
+85
+86
+87 D:\note1\app\src\main\AndroidManifest.xml:83:9-86:43
+88 android:name="net.micode.notes.data.NotesProvider"
+88-->D:\note1\app\src\main\AndroidManifest.xml:84:13-63
+89 android:authorities="micode_notes"
+89-->D:\note1\app\src\main\AndroidManifest.xml:85:13-47
+90 android:multiprocess="true" />
+90-->D:\note1\app\src\main\AndroidManifest.xml:86:13-40
+91
+92 D:\note1\app\src\main\AndroidManifest.xml:88:9-100:20
+93 android:name="net.micode.notes.widget.NoteWidgetProvider_2x"
+93-->D:\note1\app\src\main\AndroidManifest.xml:89:13-57
+94 android:label="@string/app_widget2x2" >
+94-->D:\note1\app\src\main\AndroidManifest.xml:90:13-50
+95
+95-->D:\note1\app\src\main\AndroidManifest.xml:91:13-95:29
+96
+96-->D:\note1\app\src\main\AndroidManifest.xml:92:17-84
+96-->D:\note1\app\src\main\AndroidManifest.xml:92:25-81
+97
+97-->D:\note1\app\src\main\AndroidManifest.xml:93:17-85
+97-->D:\note1\app\src\main\AndroidManifest.xml:93:25-82
+98
+98-->D:\note1\app\src\main\AndroidManifest.xml:94:17-85
+98-->D:\note1\app\src\main\AndroidManifest.xml:94:25-82
+99
+100
+101 D:\note1\app\src\main\AndroidManifest.xml:97:13-99:58
+102 android:name="android.appwidget.provider"
+102-->D:\note1\app\src\main\AndroidManifest.xml:98:17-58
+103 android:resource="@xml/widget_2x_info" />
+103-->D:\note1\app\src\main\AndroidManifest.xml:99:17-55
+104
+105 D:\note1\app\src\main\AndroidManifest.xml:101:9-114:20
+106 android:name="net.micode.notes.widget.NoteWidgetProvider_4x"
+106-->D:\note1\app\src\main\AndroidManifest.xml:102:13-57
+107 android:label="@string/app_widget4x4" >
+107-->D:\note1\app\src\main\AndroidManifest.xml:103:13-50
+108
+108-->D:\note1\app\src\main\AndroidManifest.xml:91:13-95:29
+109
+109-->D:\note1\app\src\main\AndroidManifest.xml:92:17-84
+109-->D:\note1\app\src\main\AndroidManifest.xml:92:25-81
+110
+110-->D:\note1\app\src\main\AndroidManifest.xml:93:17-85
+110-->D:\note1\app\src\main\AndroidManifest.xml:93:25-82
+111
+111-->D:\note1\app\src\main\AndroidManifest.xml:94:17-85
+111-->D:\note1\app\src\main\AndroidManifest.xml:94:25-82
+112
+113
+114 D:\note1\app\src\main\AndroidManifest.xml:97:13-99:58
+115 android:name="android.appwidget.provider"
+115-->D:\note1\app\src\main\AndroidManifest.xml:98:17-58
+116 android:resource="@xml/widget_4x_info" />
+116-->D:\note1\app\src\main\AndroidManifest.xml:99:17-55
+117
+118
+118-->D:\note1\app\src\main\AndroidManifest.xml:116:9-120:20
+118-->D:\note1\app\src\main\AndroidManifest.xml:116:19-55
+119
+119-->D:\note1\app\src\main\AndroidManifest.xml:117:13-119:29
+120
+120-->D:\note1\app\src\main\AndroidManifest.xml:118:17-79
+120-->D:\note1\app\src\main\AndroidManifest.xml:118:25-76
+121
+122
+123 D:\note1\app\src\main\AndroidManifest.xml:122:9-125:20
+124 android:name="net.micode.notes.ui.AlarmReceiver"
+124-->D:\note1\app\src\main\AndroidManifest.xml:123:13-61
+125 android:process=":remote" >
+125-->D:\note1\app\src\main\AndroidManifest.xml:124:13-38
+126
+127
+128 D:\note1\app\src\main\AndroidManifest.xml:127:9-132:20
+129 android:name="net.micode.notes.ui.AlarmAlertActivity"
+129-->D:\note1\app\src\main\AndroidManifest.xml:128:13-50
+130 android:label="@string/app_name"
+130-->D:\note1\app\src\main\AndroidManifest.xml:129:13-45
+131 android:launchMode="singleInstance"
+131-->D:\note1\app\src\main\AndroidManifest.xml:130:13-48
+132 android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" >
+132-->D:\note1\app\src\main\AndroidManifest.xml:131:13-75
+133
+134 D:\note1\app\src\main\AndroidManifest.xml:134:9-139:20
+135 android:name="net.micode.notes.ui.NotesPreferenceActivity"
+135-->D:\note1\app\src\main\AndroidManifest.xml:135:13-71
+136 android:label="@string/preferences_title"
+136-->D:\note1\app\src\main\AndroidManifest.xml:136:13-54
+137 android:launchMode="singleTop"
+137-->D:\note1\app\src\main\AndroidManifest.xml:137:13-43
+138 android:theme="@android:style/Theme.Holo.Light" >
+138-->D:\note1\app\src\main\AndroidManifest.xml:138:13-60
+139
+140
+141 D:\note1\app\src\main\AndroidManifest.xml:141:9-144:19
+142 android:name="net.micode.notes.gtask.remote.GTaskSyncService"
+142-->D:\note1\app\src\main\AndroidManifest.xml:142:13-74
+143 android:exported="false" >
+143-->D:\note1\app\src\main\AndroidManifest.xml:143:13-37
+144
+145
+146 D:\note1\app\src\main\AndroidManifest.xml:146:9-148:52
+147 android:name="android.app.default_searchable"
+147-->D:\note1\app\src\main\AndroidManifest.xml:147:13-58
+148 android:value=".ui.NoteEditActivity" />
+148-->D:\note1\app\src\main\AndroidManifest.xml:148:13-49
+149
+150
+151
diff --git a/src/app/build/intermediates/merged_java_res/debug/base.jar b/src/app/build/intermediates/merged_java_res/debug/base.jar
new file mode 100644
index 0000000..15cb0ec
Binary files /dev/null and b/src/app/build/intermediates/merged_java_res/debug/base.jar differ
diff --git a/src/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml b/src/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml
new file mode 100644
index 0000000..df53d07
--- /dev/null
+++ b/src/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml b/src/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml
new file mode 100644
index 0000000..df53d07
--- /dev/null
+++ b/src/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/build/intermediates/merged_manifests/debug/output-metadata.json b/src/app/build/intermediates/merged_manifests/debug/output-metadata.json
new file mode 100644
index 0000000..a56d03a
--- /dev/null
+++ b/src/app/build/intermediates/merged_manifests/debug/output-metadata.json
@@ -0,0 +1,20 @@
+{
+ "version": 3,
+ "artifactType": {
+ "type": "MERGED_MANIFESTS",
+ "kind": "Directory"
+ },
+ "applicationId": "net.micode.notes",
+ "variantName": "debug",
+ "elements": [
+ {
+ "type": "SINGLE",
+ "filters": [],
+ "attributes": [],
+ "versionCode": 1,
+ "versionName": "0.1",
+ "outputFile": "AndroidManifest.xml"
+ }
+ ],
+ "elementType": "File"
+}
\ No newline at end of file
diff --git a/src/app/build/intermediates/merged_res/debug/color_primary_text_dark.xml.flat b/src/app/build/intermediates/merged_res/debug/color_primary_text_dark.xml.flat
new file mode 100644
index 0000000..7d99d7a
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/color_primary_text_dark.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/color_secondary_text_dark.xml.flat b/src/app/build/intermediates/merged_res/debug/color_secondary_text_dark.xml.flat
new file mode 100644
index 0000000..8cc05db
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/color_secondary_text_dark.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a1.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a1.png.flat
new file mode 100644
index 0000000..d0bb99a
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a1.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a2.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a2.png.flat
new file mode 100644
index 0000000..384dc6e
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a2.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a3.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a3.png.flat
new file mode 100644
index 0000000..763f24c
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a3.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a4.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a4.png.flat
new file mode 100644
index 0000000..f77cc07
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_a4.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_btn_set_color.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_btn_set_color.png.flat
new file mode 100644
index 0000000..2eda191
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_btn_set_color.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_color_btn_mask.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_color_btn_mask.png.flat
new file mode 100644
index 0000000..59c2358
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_color_btn_mask.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_call_record.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_call_record.png.flat
new file mode 100644
index 0000000..89fb25d
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_call_record.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_clock.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_clock.png.flat
new file mode 100644
index 0000000..40e03de
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_clock.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_delete.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_delete.png.flat
new file mode 100644
index 0000000..809ce24
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_delete.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_dropdown_icon.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_dropdown_icon.9.png.flat
new file mode 100644
index 0000000..f80e058
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_dropdown_icon.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_blue.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_blue.9.png.flat
new file mode 100644
index 0000000..be22aa0
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_blue.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_green.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_green.9.png.flat
new file mode 100644
index 0000000..2a07d4f
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_green.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_red.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_red.9.png.flat
new file mode 100644
index 0000000..b71467d
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_red.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_blue.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_blue.9.png.flat
new file mode 100644
index 0000000..9cf62b3
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_blue.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_green.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_green.9.png.flat
new file mode 100644
index 0000000..f77ea7d
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_green.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_red.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_red.9.png.flat
new file mode 100644
index 0000000..4b9e264
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_red.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_white.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_white.9.png.flat
new file mode 100644
index 0000000..cbb044c
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_white.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_yellow.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_yellow.9.png.flat
new file mode 100644
index 0000000..14d4feb
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_yellow.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_white.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_white.9.png.flat
new file mode 100644
index 0000000..9226aa6
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_white.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_yellow.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_yellow.9.png.flat
new file mode 100644
index 0000000..d49f07e
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_yellow.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_large.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_large.png.flat
new file mode 100644
index 0000000..b33f03f
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_large.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_normal.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_normal.png.flat
new file mode 100644
index 0000000..d631a65
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_normal.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_size_selector_bg.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_size_selector_bg.9.png.flat
new file mode 100644
index 0000000..0400aeb
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_size_selector_bg.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_small.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_small.png.flat
new file mode 100644
index 0000000..f6a97f6
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_small.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_super.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_super.png.flat
new file mode 100644
index 0000000..28656cb
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_font_super.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_g780.jpg.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_g780.jpg.flat
new file mode 100644
index 0000000..22d0912
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_g780.jpg.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_gao.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_gao.png.flat
new file mode 100644
index 0000000..43e58a6
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_gao.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_icon_app.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_icon_app.png.flat
new file mode 100644
index 0000000..ca8a144
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_icon_app.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_background.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_background.png.flat
new file mode 100644
index 0000000..2a028e8
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_background.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_down.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_down.9.png.flat
new file mode 100644
index 0000000..ca41f40
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_down.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_middle.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_middle.9.png.flat
new file mode 100644
index 0000000..7302f30
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_middle.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_single.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_single.9.png.flat
new file mode 100644
index 0000000..02a4f77
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_single.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_up.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_up.9.png.flat
new file mode 100644
index 0000000..4382694
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_up.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_folder.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_folder.9.png.flat
new file mode 100644
index 0000000..b4e71dc
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_folder.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_footer_bg.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_footer_bg.9.png.flat
new file mode 100644
index 0000000..b230b8f
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_footer_bg.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_down.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_down.9.png.flat
new file mode 100644
index 0000000..633e0e7
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_down.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_middle.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_middle.9.png.flat
new file mode 100644
index 0000000..d432a14
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_middle.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_single.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_single.9.png.flat
new file mode 100644
index 0000000..5a72f21
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_single.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_up.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_up.9.png.flat
new file mode 100644
index 0000000..3e628af
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_up.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_down.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_down.9.png.flat
new file mode 100644
index 0000000..a4b4193
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_down.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_middle.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_middle.9.png.flat
new file mode 100644
index 0000000..7ae0f98
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_middle.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_single.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_single.9.png.flat
new file mode 100644
index 0000000..6cbb18b
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_single.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_up.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_up.9.png.flat
new file mode 100644
index 0000000..a4a6692
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_up.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_down.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_down.9.png.flat
new file mode 100644
index 0000000..9623c13
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_down.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_middle.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_middle.9.png.flat
new file mode 100644
index 0000000..404ea2c
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_middle.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_single.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_single.9.png.flat
new file mode 100644
index 0000000..4bb304b
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_single.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_up.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_up.9.png.flat
new file mode 100644
index 0000000..449a2d8
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_up.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_down.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_down.9.png.flat
new file mode 100644
index 0000000..74c5445
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_down.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_middle.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_middle.9.png.flat
new file mode 100644
index 0000000..99bbe37
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_middle.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_single.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_single.9.png.flat
new file mode 100644
index 0000000..cfab562
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_single.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_up.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_up.9.png.flat
new file mode 100644
index 0000000..afdf9b0
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_up.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_delete.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_delete.png.flat
new file mode 100644
index 0000000..a53a14d
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_delete.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_move.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_move.png.flat
new file mode 100644
index 0000000..d0312eb
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_move.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_normal.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_normal.png.flat
new file mode 100644
index 0000000..01ef2da
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_normal.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_pressed.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_pressed.png.flat
new file mode 100644
index 0000000..ca5c107
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_pressed.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_note_edit_color_selector_panel.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_note_edit_color_selector_panel.png.flat
new file mode 100644
index 0000000..23eb0dc
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_note_edit_color_selector_panel.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_search_result.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_search_result.png.flat
new file mode 100644
index 0000000..3b4516a
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_search_result.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_selected.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_selected.png.flat
new file mode 100644
index 0000000..465926e
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_selected.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_title_alert.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_title_alert.png.flat
new file mode 100644
index 0000000..ed8e6a9
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_title_alert.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_title_bar_bg.9.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_title_bar_bg.9.png.flat
new file mode 100644
index 0000000..fb37689
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_title_bar_bg.9.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_blue.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_blue.png.flat
new file mode 100644
index 0000000..adfba04
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_blue.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_green.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_green.png.flat
new file mode 100644
index 0000000..8b13b97
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_green.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_red.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_red.png.flat
new file mode 100644
index 0000000..896fb83
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_red.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_white.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_white.png.flat
new file mode 100644
index 0000000..2c0cce3
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_white.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_yellow.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_yellow.png.flat
new file mode 100644
index 0000000..973eb75
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_yellow.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_blue.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_blue.png.flat
new file mode 100644
index 0000000..c521cf6
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_blue.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_green.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_green.png.flat
new file mode 100644
index 0000000..dd55472
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_green.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_red.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_red.png.flat
new file mode 100644
index 0000000..2912b97
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_red.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_white.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_white.png.flat
new file mode 100644
index 0000000..90b6f06
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_white.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_yellow.png.flat b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_yellow.png.flat
new file mode 100644
index 0000000..6556925
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_yellow.png.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/drawable_new_note.xml.flat b/src/app/build/intermediates/merged_res/debug/drawable_new_note.xml.flat
new file mode 100644
index 0000000..fb12dfd
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/drawable_new_note.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_account_dialog_title.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_account_dialog_title.xml.flat
new file mode 100644
index 0000000..1bbe3ab
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_account_dialog_title.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_add_account_text.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_add_account_text.xml.flat
new file mode 100644
index 0000000..305e7a6
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_add_account_text.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_datetime_picker.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_datetime_picker.xml.flat
new file mode 100644
index 0000000..61742b5
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_datetime_picker.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_dialog_edit_text.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_dialog_edit_text.xml.flat
new file mode 100644
index 0000000..78701a1
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_dialog_edit_text.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_folder_list_item.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_folder_list_item.xml.flat
new file mode 100644
index 0000000..7b3fb68
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_folder_list_item.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_note_edit.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_note_edit.xml.flat
new file mode 100644
index 0000000..edb7b71
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_note_edit.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_note_edit_list_item.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_note_edit_list_item.xml.flat
new file mode 100644
index 0000000..006b151
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_note_edit_list_item.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_note_item.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_note_item.xml.flat
new file mode 100644
index 0000000..1c3342f
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_note_item.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_note_list.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_note_list.xml.flat
new file mode 100644
index 0000000..24a703b
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_note_list.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_note_list_dropdown_menu.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_note_list_dropdown_menu.xml.flat
new file mode 100644
index 0000000..749f04b
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_note_list_dropdown_menu.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_note_list_footer.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_note_list_footer.xml.flat
new file mode 100644
index 0000000..98f56f4
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_note_list_footer.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_settings_header.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_settings_header.xml.flat
new file mode 100644
index 0000000..9caf2e6
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_settings_header.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_widget_2x.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_widget_2x.xml.flat
new file mode 100644
index 0000000..a74989a
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_widget_2x.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/layout_widget_4x.xml.flat b/src/app/build/intermediates/merged_res/debug/layout_widget_4x.xml.flat
new file mode 100644
index 0000000..94470b7
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/layout_widget_4x.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/menu_call_note_edit.xml.flat b/src/app/build/intermediates/merged_res/debug/menu_call_note_edit.xml.flat
new file mode 100644
index 0000000..7b10945
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/menu_call_note_edit.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/menu_call_record_folder.xml.flat b/src/app/build/intermediates/merged_res/debug/menu_call_record_folder.xml.flat
new file mode 100644
index 0000000..5cbb9e9
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/menu_call_record_folder.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/menu_note_edit.xml.flat b/src/app/build/intermediates/merged_res/debug/menu_note_edit.xml.flat
new file mode 100644
index 0000000..658ffa2
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/menu_note_edit.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/menu_note_list.xml.flat b/src/app/build/intermediates/merged_res/debug/menu_note_list.xml.flat
new file mode 100644
index 0000000..027fc55
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/menu_note_list.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/menu_note_list_dropdown.xml.flat b/src/app/build/intermediates/merged_res/debug/menu_note_list_dropdown.xml.flat
new file mode 100644
index 0000000..7d74a65
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/menu_note_list_dropdown.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/menu_note_list_options.xml.flat b/src/app/build/intermediates/merged_res/debug/menu_note_list_options.xml.flat
new file mode 100644
index 0000000..9210c15
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/menu_note_list_options.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/menu_sub_folder.xml.flat b/src/app/build/intermediates/merged_res/debug/menu_sub_folder.xml.flat
new file mode 100644
index 0000000..ad66757
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/menu_sub_folder.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/raw-zh-rCN_introduction.flat b/src/app/build/intermediates/merged_res/debug/raw-zh-rCN_introduction.flat
new file mode 100644
index 0000000..68b46ae
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/raw-zh-rCN_introduction.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/raw_introduction.flat b/src/app/build/intermediates/merged_res/debug/raw_introduction.flat
new file mode 100644
index 0000000..02a9e4e
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/raw_introduction.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/values-zh-rCN_values-zh-rCN.arsc.flat b/src/app/build/intermediates/merged_res/debug/values-zh-rCN_values-zh-rCN.arsc.flat
new file mode 100644
index 0000000..1e3507a
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/values-zh-rCN_values-zh-rCN.arsc.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/values-zh-rTW_values-zh-rTW.arsc.flat b/src/app/build/intermediates/merged_res/debug/values-zh-rTW_values-zh-rTW.arsc.flat
new file mode 100644
index 0000000..69cb5b1
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/values-zh-rTW_values-zh-rTW.arsc.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/values_values.arsc.flat b/src/app/build/intermediates/merged_res/debug/values_values.arsc.flat
new file mode 100644
index 0000000..7067417
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/values_values.arsc.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/xml_preferences.xml.flat b/src/app/build/intermediates/merged_res/debug/xml_preferences.xml.flat
new file mode 100644
index 0000000..752f47f
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/xml_preferences.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/xml_searchable.xml.flat b/src/app/build/intermediates/merged_res/debug/xml_searchable.xml.flat
new file mode 100644
index 0000000..625e86f
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/xml_searchable.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/xml_widget_2x_info.xml.flat b/src/app/build/intermediates/merged_res/debug/xml_widget_2x_info.xml.flat
new file mode 100644
index 0000000..ad294be
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/xml_widget_2x_info.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res/debug/xml_widget_4x_info.xml.flat b/src/app/build/intermediates/merged_res/debug/xml_widget_4x_info.xml.flat
new file mode 100644
index 0000000..4d8a2a5
Binary files /dev/null and b/src/app/build/intermediates/merged_res/debug/xml_widget_4x_info.xml.flat differ
diff --git a/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/debug.json b/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/debug.json
new file mode 100644
index 0000000..da21ac4
--- /dev/null
+++ b/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/debug.json
@@ -0,0 +1,343 @@
+{
+ "logs": [
+ {
+ "outputFile": "net.micode.notes.app-merged_res-4:/values-zh-rCN_values-zh-rCN.arsc.flat",
+ "map": [
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rCN\\strings.xml",
+ "from": {
+ "startLines": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1",
+ "startColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1",
+ "startOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1054,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1104,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,965,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1008,-1,-1",
+ "endColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,45,-1,-1",
+ "endOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1099,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1162,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1003,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1049,-1,-1"
+ },
+ "to": {
+ "startLines": "6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "215,384,457,523,596,646,686,734,782,827,884,934,988,1038,1100,1168,1245,1304,1369,1432,1487,1547,1610,1664,1724,1777,1839,1924,2005,2068,2118,2181,2238,2297,2340,2393,2436,2487,2537,2597,2650,2701,2747,2795,2845,2893,2939,2986,3036,3081,3140,3192,3244,3287,3330,3377,3433,3488,3543,3587,3629,3670,3720,3779,3827,3878,3927,3976,4023,4070,4117,4162,4213,4266,4341,4400,4457,4531,4595,4664,4742,4852,4956,5029,5095,5150,5215,5280,5329,5412,5490,5528,5573,5621,5683,5740,5795,5854,5921,5979,6041,6089,6134,6182,6233,6279,6345",
+ "endLines": "8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114",
+ "endColumns": "14,72,65,72,49,39,47,47,44,56,49,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,62,49,62,56,58,42,52,42,50,49,59,52,50,45,47,49,47,45,46,49,44,58,51,51,42,42,46,55,54,54,43,41,40,49,58,47,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,45,65,65",
+ "endOffsets": "379,452,518,591,641,681,729,777,822,879,929,983,1033,1095,1163,1240,1299,1364,1427,1482,1542,1605,1659,1719,1772,1834,1919,2000,2063,2113,2176,2233,2292,2335,2388,2431,2482,2532,2592,2645,2696,2742,2790,2840,2888,2934,2981,3031,3076,3135,3187,3239,3282,3325,3372,3428,3483,3538,3582,3624,3665,3715,3774,3822,3873,3922,3971,4018,4065,4112,4157,4208,4261,4336,4395,4452,4526,4590,4659,4737,4847,4951,5024,5090,5145,5210,5275,5324,5407,5485,5523,5568,5616,5678,5735,5790,5849,5916,5974,6036,6084,6129,6177,6228,6274,6340,6406"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rCN\\arrays.xml",
+ "from": {
+ "startLines": "-1",
+ "startColumns": "-1",
+ "startOffsets": "-1"
+ },
+ "to": {
+ "startLines": "2",
+ "startColumns": "4",
+ "startOffsets": "105",
+ "endLines": "5",
+ "endColumns": "19",
+ "endOffsets": "210"
+ }
+ }
+ ]
+ },
+ {
+ "outputFile": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\values-zh-rCN_values-zh-rCN.arsc.flat",
+ "map": [
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rCN\\strings.xml",
+ "from": {
+ "startLines": "123,73,72,71,70,19,20,21,114,115,122,121,26,79,80,78,77,76,92,91,90,82,62,29,30,83,74,116,57,56,69,65,38,44,49,39,61,60,59,53,52,50,51,54,55,45,68,58,66,43,48,47,46,64,42,63,40,41,67,28,34,36,33,35,32,31,25,24,99,98,101,113,106,105,107,108,110,109,100,104,102,103,97,111,112,120,118,117,119,27,81,89,94,93,95,88,87,86,85,22,23",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "6652,3615,3549,3476,3426,827,867,915,6203,6248,6598,6548,1199,3981,4049,3922,3857,3794,4712,4652,4589,4181,2997,1369,1422,4235,3688,6305,2718,2661,3367,3154,1798,2079,2325,1851,2937,2884,2833,2518,2470,2376,2424,2564,2611,2122,3308,2781,3197,2036,2278,2222,2167,3099,1992,3057,1901,1942,3249,1318,1623,1719,1576,1672,1529,1484,1148,1095,5087,5028,5228,6129,5539,5470,5603,5681,5864,5791,5162,5415,5285,5350,4979,5968,6051,6510,6403,6355,6448,1261,4126,4530,4825,4767,4892,4482,4437,4389,4338,963,1029",
+ "endLines": "125,73,72,71,70,19,20,21,114,115,122,121,26,79,80,78,77,76,92,91,90,82,62,29,30,83,74,116,57,56,69,65,38,44,49,39,61,60,59,53,52,50,51,54,55,45,68,58,66,43,48,47,46,64,42,63,40,41,67,28,34,36,33,35,32,31,25,24,99,98,101,113,106,105,107,108,110,109,100,104,102,103,97,111,112,120,118,117,119,27,81,89,94,93,95,88,87,86,85,22,23",
+ "endColumns": "14,72,65,72,49,39,47,47,44,56,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,49,62,56,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65",
+ "endOffsets": "6824,3683,3610,3544,3471,862,910,958,6243,6300,6647,6593,1256,4044,4121,3976,3917,3852,4762,4707,4647,4230,3052,1417,1479,4315,3764,6350,2776,2713,3421,3192,1846,2117,2371,1896,2992,2932,2879,2559,2513,2419,2465,2606,2656,2162,3362,2828,3244,2074,2320,2273,2217,3149,2031,3094,1937,1987,3303,1364,1667,1763,1618,1714,1571,1524,1194,1143,5157,5082,5280,6198,5598,5534,5676,5786,5963,5859,5223,5465,5345,5410,5023,6046,6124,6543,6443,6398,6505,1313,4176,4584,4887,4820,4949,4525,4477,4432,4384,1024,1090"
+ },
+ "to": {
+ "startLines": "6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "215,384,457,523,596,646,686,734,782,827,884,938,988,1050,1118,1195,1254,1319,1382,1437,1497,1560,1614,1674,1727,1789,1874,1955,2005,2068,2125,2184,2227,2280,2323,2374,2424,2484,2537,2588,2634,2682,2730,2776,2823,2873,2918,2977,3029,3081,3124,3171,3227,3282,3337,3381,3423,3464,3514,3573,3624,3673,3722,3769,3816,3863,3908,3959,4012,4087,4146,4203,4277,4341,4410,4488,4598,4702,4775,4841,4896,4961,5026,5075,5158,5236,5274,5319,5367,5429,5486,5541,5600,5667,5725,5787,5835,5880,5928,5979,6045",
+ "endLines": "8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108",
+ "endColumns": "14,72,65,72,49,39,47,47,44,56,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,49,62,56,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65",
+ "endOffsets": "379,452,518,591,641,681,729,777,822,879,933,983,1045,1113,1190,1249,1314,1377,1432,1492,1555,1609,1669,1722,1784,1869,1950,2000,2063,2120,2179,2222,2275,2318,2369,2419,2479,2532,2583,2629,2677,2725,2771,2818,2868,2913,2972,3024,3076,3119,3166,3222,3277,3332,3376,3418,3459,3509,3568,3619,3668,3717,3764,3811,3858,3903,3954,4007,4082,4141,4198,4272,4336,4405,4483,4593,4697,4770,4836,4891,4956,5021,5070,5153,5231,5269,5314,5362,5424,5481,5536,5595,5662,5720,5782,5830,5875,5923,5974,6040,6106"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rCN\\arrays.xml",
+ "from": {
+ "startLines": "18",
+ "startColumns": "4",
+ "startOffsets": "712",
+ "endLines": "21",
+ "endColumns": "19",
+ "endOffsets": "817"
+ },
+ "to": {
+ "startLines": "2",
+ "startColumns": "4",
+ "startOffsets": "105",
+ "endLines": "5",
+ "endColumns": "19",
+ "endOffsets": "210"
+ }
+ }
+ ]
+ },
+ {
+ "outputFile": "net.micode.notes.app-merged_res-4:/values_values.arsc.flat",
+ "map": [
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\arrays.xml",
+ "from": {
+ "startLines": "-1,-1",
+ "startColumns": "-1,-1",
+ "startOffsets": "-1,-1"
+ },
+ "to": {
+ "startLines": "2,8",
+ "startColumns": "4,4",
+ "startOffsets": "105,300",
+ "endLines": "7,11",
+ "endColumns": "19,19",
+ "endOffsets": "295,415"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\strings.xml",
+ "from": {
+ "startLines": "138,-1,-1,-1,-1,-1,-1,-1,-1,-1,136,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,137,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,134,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,135,-1,-1",
+ "startColumns": "4,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1",
+ "startOffsets": "8567,-1,-1,-1,-1,-1,-1,-1,-1,-1,8425,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8487,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8330,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8377,-1,-1",
+ "endLines": "142,-1,-1,-1,-1,-1,-1,-1,-1,-1,136,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,137,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,134,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,135,-1,-1",
+ "endColumns": "14,-1,-1,-1,-1,-1,-1,-1,-1,-1,61,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,79,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,47,-1,-1",
+ "endOffsets": "8971,-1,-1,-1,-1,-1,-1,-1,-1,-1,8482,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8562,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8372,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8420,-1,-1"
+ },
+ "to": {
+ "startLines": "19,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "775,1128,1224,1307,1403,1472,1515,1567,1619,1668,1731,1793,1851,1902,1986,2080,2188,2259,2343,2426,2492,2575,2677,2738,2800,2851,2929,2982,3042,3147,3206,3308,3388,3443,3506,3563,3634,3683,3729,3773,3831,3878,3937,3994,4065,4126,4183,4233,4285,4342,4395,4445,4495,4555,4608,4674,4736,4799,4846,4893,4948,5036,5094,5156,5206,5251,5294,5354,5421,5476,5531,5586,5639,5686,5739,5795,5843,5898,5951,6035,6102,6166,6262,6336,6417,6506,6669,6813,6892,6967,7049,7108,7188,7268,7323,7445,7548,7589,7642,7699,7773,7838,7906,7992,8072,8141,8235,8294,8349,8411,8471,8519,8629",
+ "endLines": "23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135",
+ "endColumns": "14,95,82,95,68,42,51,51,48,62,61,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,79,54,62,56,70,48,45,43,57,46,58,56,70,60,56,49,51,56,52,49,49,59,52,65,61,62,46,46,54,87,57,61,49,44,42,59,66,54,54,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,40,52,56,73,64,67,85,79,68,93,58,54,61,59,47,109,89",
+ "endOffsets": "1123,1219,1302,1398,1467,1510,1562,1614,1663,1726,1788,1846,1897,1981,2075,2183,2254,2338,2421,2487,2570,2672,2733,2795,2846,2924,2977,3037,3142,3201,3303,3383,3438,3501,3558,3629,3678,3724,3768,3826,3873,3932,3989,4060,4121,4178,4228,4280,4337,4390,4440,4490,4550,4603,4669,4731,4794,4841,4888,4943,5031,5089,5151,5201,5246,5289,5349,5416,5471,5526,5581,5634,5681,5734,5790,5838,5893,5946,6030,6097,6161,6257,6331,6412,6501,6664,6808,6887,6962,7044,7103,7183,7263,7318,7440,7543,7584,7637,7694,7768,7833,7901,7987,8067,8136,8230,8289,8344,8406,8466,8514,8624,8714"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\colors.xml",
+ "from": {
+ "startLines": "-1",
+ "startColumns": "-1",
+ "startOffsets": "-1"
+ },
+ "to": {
+ "startLines": "12",
+ "startColumns": "4",
+ "startOffsets": "420",
+ "endColumns": "56",
+ "endOffsets": "472"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\styles.xml",
+ "from": {
+ "startLines": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "startColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "startOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
+ },
+ "to": {
+ "startLines": "136,140,144,148,151,155,159,163,167,171,175",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "8719,8923,9134,9346,9506,9689,9874,10059,10262,10468,10651",
+ "endLines": "139,143,147,150,154,158,162,166,170,174,178",
+ "endColumns": "12,12,12,12,12,12,12,12,12,12,12",
+ "endOffsets": "8918,9129,9341,9501,9684,9869,10054,10257,10463,10646,10847"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\dimens.xml",
+ "from": {
+ "startLines": "-1,-1,-1,-1,-1",
+ "startColumns": "-1,-1,-1,-1,-1",
+ "startOffsets": "-1,-1,-1,-1,-1"
+ },
+ "to": {
+ "startLines": "13,14,15,16,17",
+ "startColumns": "4,4,4,4,4",
+ "startOffsets": "477,529,582,635,687",
+ "endColumns": "51,52,52,51,51",
+ "endOffsets": "524,577,630,682,734"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\refs.xml",
+ "from": {
+ "startLines": "-1",
+ "startColumns": "-1",
+ "startOffsets": "-1"
+ },
+ "to": {
+ "startLines": "18",
+ "startColumns": "4",
+ "startOffsets": "739",
+ "endColumns": "35",
+ "endOffsets": "770"
+ }
+ }
+ ]
+ },
+ {
+ "outputFile": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\values_values.arsc.flat",
+ "map": [
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\arrays.xml",
+ "from": {
+ "startLines": "19,26",
+ "startColumns": "4,4",
+ "startOffsets": "739,1047",
+ "endLines": "24,29",
+ "endColumns": "19,19",
+ "endOffsets": "1041,1162"
+ },
+ "to": {
+ "startLines": "2,8",
+ "startColumns": "4,4",
+ "startOffsets": "105,300",
+ "endLines": "7,11",
+ "endColumns": "19,19",
+ "endOffsets": "295,415"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\strings.xml",
+ "from": {
+ "startLines": "132,76,79,78,77,19,20,21,122,123,131,130,26,85,86,84,83,82,98,97,96,88,39,38,68,29,30,89,41,80,124,47,46,75,71,44,45,42,52,57,43,67,66,65,61,60,58,59,62,63,53,74,64,72,51,56,55,54,70,50,69,48,49,73,28,34,36,33,35,32,31,25,24,105,104,108,120,113,112,114,115,117,116,106,107,111,109,110,103,118,119,129,127,126,128,27,87,95,100,99,101,94,93,92,91,22,23",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "8218,4108,4369,4273,4204,827,870,922,7716,7765,8160,8109,1282,4823,4917,4752,4668,4585,5784,5701,5599,5093,2004,1953,3607,1486,1539,5154,2097,4452,7828,2418,2361,4037,3792,2271,2317,2156,2681,2982,2214,3536,3475,3418,3196,3144,3041,3094,3246,3296,2728,3971,3356,3841,2634,2927,2839,2781,3730,2584,3685,2481,2524,3904,1431,1750,1858,1703,1805,1647,1599,1227,1174,6240,6173,6481,7619,6845,6764,6919,7008,7250,7171,6324,6399,6705,6545,6625,6118,7394,7516,8068,7941,7884,7994,1366,5025,5513,5919,5850,5999,5454,5399,5337,5277,974,1084",
+ "endLines": "136,76,79,78,77,19,20,21,122,123,131,130,26,85,86,84,83,82,98,97,96,88,39,38,68,29,30,89,41,80,124,47,46,75,71,44,45,42,52,57,43,67,66,65,61,60,58,59,62,63,53,74,64,72,51,56,55,54,70,50,69,48,49,73,28,34,36,33,35,32,31,25,24,105,104,108,120,113,112,114,115,117,116,106,107,111,109,110,103,118,119,129,127,126,128,27,87,95,100,99,101,94,93,92,91,22,23",
+ "endColumns": "14,95,82,95,68,42,51,51,48,62,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,62,56,70,48,45,43,57,46,58,56,70,60,56,49,51,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,40,52,56,73,64,67,85,79,68,93,58,54,61,59,109,89",
+ "endOffsets": "8622,4199,4447,4364,4268,865,917,969,7760,7823,8213,8155,1361,4912,5020,4818,4747,4663,5845,5779,5696,5149,2061,1999,3680,1534,1594,5254,2151,4549,7878,2476,2413,4103,3836,2312,2356,2209,2723,3036,2266,3602,3531,3470,3241,3191,3089,3139,3291,3351,2776,4032,3413,3899,2676,2977,2922,2834,3787,2629,3725,2519,2579,3966,1481,1800,1906,1745,1853,1698,1642,1277,1222,6319,6235,6540,7710,6914,6840,7003,7166,7389,7245,6394,6476,6759,6620,6700,6168,7511,7614,8104,7989,7936,8063,1426,5088,5594,5994,5914,6088,5508,5449,5394,5332,1079,1169"
+ },
+ "to": {
+ "startLines": "19,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "775,1128,1224,1307,1403,1472,1515,1567,1619,1668,1731,1789,1840,1924,2018,2126,2197,2281,2364,2430,2513,2615,2676,2738,2789,2867,2920,2980,3085,3144,3246,3301,3364,3421,3492,3541,3587,3631,3689,3736,3795,3852,3923,3984,4041,4091,4143,4196,4246,4296,4356,4409,4475,4537,4600,4647,4702,4790,4848,4910,4960,5005,5048,5108,5175,5230,5285,5338,5385,5438,5494,5542,5597,5650,5734,5801,5865,5961,6035,6116,6205,6368,6512,6591,6666,6748,6807,6887,6967,7022,7144,7247,7288,7341,7398,7472,7537,7605,7691,7771,7840,7934,7993,8048,8110,8170,8280",
+ "endLines": "23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129",
+ "endColumns": "14,95,82,95,68,42,51,51,48,62,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,62,56,70,48,45,43,57,46,58,56,70,60,56,49,51,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,40,52,56,73,64,67,85,79,68,93,58,54,61,59,109,89",
+ "endOffsets": "1123,1219,1302,1398,1467,1510,1562,1614,1663,1726,1784,1835,1919,2013,2121,2192,2276,2359,2425,2508,2610,2671,2733,2784,2862,2915,2975,3080,3139,3241,3296,3359,3416,3487,3536,3582,3626,3684,3731,3790,3847,3918,3979,4036,4086,4138,4191,4241,4291,4351,4404,4470,4532,4595,4642,4697,4785,4843,4905,4955,5000,5043,5103,5170,5225,5280,5333,5380,5433,5489,5537,5592,5645,5729,5796,5860,5956,6030,6111,6200,6363,6507,6586,6661,6743,6802,6882,6962,7017,7139,7242,7283,7336,7393,7467,7532,7600,7686,7766,7835,7929,7988,8043,8105,8165,8275,8365"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\colors.xml",
+ "from": {
+ "startLines": "18",
+ "startColumns": "4",
+ "startOffsets": "712",
+ "endColumns": "56",
+ "endOffsets": "764"
+ },
+ "to": {
+ "startLines": "12",
+ "startColumns": "4",
+ "startOffsets": "420",
+ "endColumns": "56",
+ "endOffsets": "472"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\styles.xml",
+ "from": {
+ "startLines": "50,55,64,60,22,26,30,35,40,18,45",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "2062,2267,2640,2479,895,1078,1263,1449,1653,712,1860",
+ "endLines": "53,58,67,62,25,29,33,38,43,21,48",
+ "endColumns": "12,12,12,12,12,12,12,12,12,12,12",
+ "endOffsets": "2261,2473,2848,2634,1073,1258,1443,1647,1854,890,2056"
+ },
+ "to": {
+ "startLines": "130,134,138,142,145,149,153,157,161,165,169",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "8370,8574,8785,8997,9157,9340,9525,9710,9913,10119,10302",
+ "endLines": "133,137,141,144,148,152,156,160,164,168,172",
+ "endColumns": "12,12,12,12,12,12,12,12,12,12,12",
+ "endOffsets": "8569,8780,8992,9152,9335,9520,9705,9908,10114,10297,10498"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\dimens.xml",
+ "from": {
+ "startLines": "19,20,21,22,18",
+ "startColumns": "4,4,4,4,4",
+ "startOffsets": "764,816,869,922,712",
+ "endColumns": "51,52,52,51,51",
+ "endOffsets": "811,864,917,969,759"
+ },
+ "to": {
+ "startLines": "13,14,15,16,17",
+ "startColumns": "4,4,4,4,4",
+ "startOffsets": "477,529,582,635,687",
+ "endColumns": "51,52,52,51,51",
+ "endOffsets": "524,577,630,682,734"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\refs.xml",
+ "from": {
+ "startLines": "2",
+ "startColumns": "4",
+ "startOffsets": "57",
+ "endColumns": "36",
+ "endOffsets": "89"
+ },
+ "to": {
+ "startLines": "18",
+ "startColumns": "4",
+ "startOffsets": "739",
+ "endColumns": "35",
+ "endOffsets": "770"
+ }
+ }
+ ]
+ },
+ {
+ "outputFile": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\values-zh-rTW_values-zh-rTW.arsc.flat",
+ "map": [
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rTW\\strings.xml",
+ "from": {
+ "startLines": "124,72,71,70,69,19,20,21,112,113,121,120,26,76,77,75,74,73,89,88,87,79,61,29,30,80,37,114,123,122,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,34,36,33,35,32,31,25,24,96,95,98,110,103,102,104,105,107,106,97,101,99,100,94,108,109,119,117,116,118,27,78,86,91,90,92,85,84,83,82,22,23",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "6627,3575,3509,3436,3386,827,867,915,6057,6102,6453,6403,1199,3835,3903,3776,3710,3647,4565,4505,4442,4035,2957,1369,1422,4089,1768,6159,6564,6507,3327,3114,1878,2159,2405,1931,2897,2844,2793,2598,2550,2456,2504,2644,2691,2202,3268,2741,3157,2116,2358,2302,2247,3059,2072,3017,1981,2022,3209,1318,1623,1719,1576,1672,1529,1484,1148,1095,4940,4881,5081,5982,5392,5323,5456,5534,5717,5644,5015,5268,5138,5203,4832,5821,5904,6365,6258,6210,6303,1261,3980,4383,4678,4620,4745,4335,4290,4242,4191,963,1029",
+ "endLines": "126,72,71,70,69,19,20,21,112,113,121,120,26,76,77,75,74,73,89,88,87,79,61,29,30,80,37,114,123,122,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,34,36,33,35,32,31,25,24,96,95,98,110,103,102,104,105,107,106,97,101,99,100,94,108,109,119,117,116,118,27,78,86,91,90,92,85,84,83,82,22,23",
+ "endColumns": "14,71,65,72,49,39,47,47,44,56,53,49,61,67,76,58,65,62,54,59,62,53,59,52,61,83,79,49,62,56,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65",
+ "endOffsets": "6799,3642,3570,3504,3431,862,910,958,6097,6154,6502,6448,1256,3898,3975,3830,3771,3705,4615,4560,4500,4084,3012,1417,1479,4168,1843,6204,6622,6559,3381,3152,1926,2197,2451,1976,2952,2892,2839,2639,2593,2499,2545,2686,2736,2242,3322,2788,3204,2154,2400,2353,2297,3109,2111,3054,2017,2067,3263,1364,1667,1763,1618,1714,1571,1524,1194,1143,5010,4935,5133,6051,5451,5387,5529,5639,5816,5712,5076,5318,5198,5263,4876,5899,5977,6398,6298,6253,6360,1313,4030,4437,4740,4673,4802,4378,4330,4285,4237,1024,1090"
+ },
+ "to": {
+ "startLines": "6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "215,384,456,522,595,645,685,733,781,826,883,937,987,1049,1117,1194,1253,1319,1382,1437,1497,1560,1614,1674,1727,1789,1873,1953,2003,2066,2123,2182,2225,2278,2321,2372,2422,2482,2535,2586,2632,2680,2728,2774,2821,2871,2916,2975,3027,3079,3122,3169,3225,3280,3335,3379,3421,3462,3512,3571,3622,3671,3720,3767,3814,3861,3906,3957,4010,4085,4144,4201,4275,4339,4408,4486,4596,4700,4773,4839,4894,4959,5024,5073,5156,5234,5272,5317,5365,5427,5484,5539,5598,5665,5723,5785,5833,5878,5926,5977,6043",
+ "endLines": "8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108",
+ "endColumns": "14,71,65,72,49,39,47,47,44,56,53,49,61,67,76,58,65,62,54,59,62,53,59,52,61,83,79,49,62,56,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65",
+ "endOffsets": "379,451,517,590,640,680,728,776,821,878,932,982,1044,1112,1189,1248,1314,1377,1432,1492,1555,1609,1669,1722,1784,1868,1948,1998,2061,2118,2177,2220,2273,2316,2367,2417,2477,2530,2581,2627,2675,2723,2769,2816,2866,2911,2970,3022,3074,3117,3164,3220,3275,3330,3374,3416,3457,3507,3566,3617,3666,3715,3762,3809,3856,3901,3952,4005,4080,4139,4196,4270,4334,4403,4481,4591,4695,4768,4834,4889,4954,5019,5068,5151,5229,5267,5312,5360,5422,5479,5534,5593,5660,5718,5780,5828,5873,5921,5972,6038,6104"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rTW\\arrays.xml",
+ "from": {
+ "startLines": "18",
+ "startColumns": "4",
+ "startOffsets": "712",
+ "endLines": "21",
+ "endColumns": "19",
+ "endOffsets": "817"
+ },
+ "to": {
+ "startLines": "2",
+ "startColumns": "4",
+ "startOffsets": "105",
+ "endLines": "5",
+ "endColumns": "19",
+ "endOffsets": "210"
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rCN.json b/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rCN.json
new file mode 100644
index 0000000..a58efc2
--- /dev/null
+++ b/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rCN.json
@@ -0,0 +1,86 @@
+{
+ "logs": [
+ {
+ "outputFile": "net.micode.notes.app-mergeDebugResources-2:/values-zh-rCN/values-zh-rCN.xml",
+ "map": [
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rCN\\strings.xml",
+ "from": {
+ "startLines": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1",
+ "startColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1",
+ "startOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1054,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1104,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,965,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1008,-1,-1",
+ "endColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,45,-1,-1",
+ "endOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1099,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1162,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1003,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1049,-1,-1"
+ },
+ "to": {
+ "startLines": "6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "215,384,457,523,596,646,686,734,782,827,884,934,988,1038,1100,1168,1245,1304,1369,1432,1487,1547,1610,1664,1724,1777,1839,1924,2005,2068,2118,2181,2238,2297,2340,2393,2436,2487,2537,2597,2650,2701,2747,2795,2845,2893,2939,2986,3036,3081,3140,3192,3244,3287,3330,3377,3433,3488,3543,3587,3629,3670,3720,3779,3827,3878,3927,3976,4023,4070,4117,4162,4213,4266,4341,4400,4457,4531,4595,4664,4742,4852,4956,5029,5095,5150,5215,5280,5329,5412,5490,5528,5573,5621,5683,5740,5795,5854,5921,5979,6041,6089,6134,6182,6233,6279,6345",
+ "endLines": "8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114",
+ "endColumns": "14,72,65,72,49,39,47,47,44,56,49,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,62,49,62,56,58,42,52,42,50,49,59,52,50,45,47,49,47,45,46,49,44,58,51,51,42,42,46,55,54,54,43,41,40,49,58,47,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,45,65,65",
+ "endOffsets": "379,452,518,591,641,681,729,777,822,879,929,983,1033,1095,1163,1240,1299,1364,1427,1482,1542,1605,1659,1719,1772,1834,1919,2000,2063,2113,2176,2233,2292,2335,2388,2431,2482,2532,2592,2645,2696,2742,2790,2840,2888,2934,2981,3031,3076,3135,3187,3239,3282,3325,3372,3428,3483,3538,3582,3624,3665,3715,3774,3822,3873,3922,3971,4018,4065,4112,4157,4208,4261,4336,4395,4452,4526,4590,4659,4737,4847,4951,5024,5090,5145,5210,5275,5324,5407,5485,5523,5568,5616,5678,5735,5790,5849,5916,5974,6036,6084,6129,6177,6228,6274,6340,6406"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rCN\\arrays.xml",
+ "from": {
+ "startLines": "-1",
+ "startColumns": "-1",
+ "startOffsets": "-1"
+ },
+ "to": {
+ "startLines": "2",
+ "startColumns": "4",
+ "startOffsets": "105",
+ "endLines": "5",
+ "endColumns": "19",
+ "endOffsets": "210"
+ }
+ }
+ ]
+ },
+ {
+ "outputFile": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-mergeDebugResources-2:\\values-zh-rCN\\values-zh-rCN.xml",
+ "map": [
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rCN\\strings.xml",
+ "from": {
+ "startLines": "123,73,72,71,70,19,20,21,114,115,122,121,26,79,80,78,77,76,92,91,90,82,62,29,30,83,74,116,57,56,69,65,38,44,49,39,61,60,59,53,52,50,51,54,55,45,68,58,66,43,48,47,46,64,42,63,40,41,67,28,34,36,33,35,32,31,25,24,99,98,101,113,106,105,107,108,110,109,100,104,102,103,97,111,112,120,118,117,119,27,81,89,94,93,95,88,87,86,85,22,23",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "6652,3615,3549,3476,3426,827,867,915,6203,6248,6598,6548,1199,3981,4049,3922,3857,3794,4712,4652,4589,4181,2997,1369,1422,4235,3688,6305,2718,2661,3367,3154,1798,2079,2325,1851,2937,2884,2833,2518,2470,2376,2424,2564,2611,2122,3308,2781,3197,2036,2278,2222,2167,3099,1992,3057,1901,1942,3249,1318,1623,1719,1576,1672,1529,1484,1148,1095,5087,5028,5228,6129,5539,5470,5603,5681,5864,5791,5162,5415,5285,5350,4979,5968,6051,6510,6403,6355,6448,1261,4126,4530,4825,4767,4892,4482,4437,4389,4338,963,1029",
+ "endLines": "125,73,72,71,70,19,20,21,114,115,122,121,26,79,80,78,77,76,92,91,90,82,62,29,30,83,74,116,57,56,69,65,38,44,49,39,61,60,59,53,52,50,51,54,55,45,68,58,66,43,48,47,46,64,42,63,40,41,67,28,34,36,33,35,32,31,25,24,99,98,101,113,106,105,107,108,110,109,100,104,102,103,97,111,112,120,118,117,119,27,81,89,94,93,95,88,87,86,85,22,23",
+ "endColumns": "14,72,65,72,49,39,47,47,44,56,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,49,62,56,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65",
+ "endOffsets": "6824,3683,3610,3544,3471,862,910,958,6243,6300,6647,6593,1256,4044,4121,3976,3917,3852,4762,4707,4647,4230,3052,1417,1479,4315,3764,6350,2776,2713,3421,3192,1846,2117,2371,1896,2992,2932,2879,2559,2513,2419,2465,2606,2656,2162,3362,2828,3244,2074,2320,2273,2217,3149,2031,3094,1937,1987,3303,1364,1667,1763,1618,1714,1571,1524,1194,1143,5157,5082,5280,6198,5598,5534,5676,5786,5963,5859,5223,5465,5345,5410,5023,6046,6124,6543,6443,6398,6505,1313,4176,4584,4887,4820,4949,4525,4477,4432,4384,1024,1090"
+ },
+ "to": {
+ "startLines": "6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "215,384,457,523,596,646,686,734,782,827,884,938,988,1050,1118,1195,1254,1319,1382,1437,1497,1560,1614,1674,1727,1789,1874,1955,2005,2068,2125,2184,2227,2280,2323,2374,2424,2484,2537,2588,2634,2682,2730,2776,2823,2873,2918,2977,3029,3081,3124,3171,3227,3282,3337,3381,3423,3464,3514,3573,3624,3673,3722,3769,3816,3863,3908,3959,4012,4087,4146,4203,4277,4341,4410,4488,4598,4702,4775,4841,4896,4961,5026,5075,5158,5236,5274,5319,5367,5429,5486,5541,5600,5667,5725,5787,5835,5880,5928,5979,6045",
+ "endLines": "8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108",
+ "endColumns": "14,72,65,72,49,39,47,47,44,56,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,49,62,56,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65",
+ "endOffsets": "379,452,518,591,641,681,729,777,822,879,933,983,1045,1113,1190,1249,1314,1377,1432,1492,1555,1609,1669,1722,1784,1869,1950,2000,2063,2120,2179,2222,2275,2318,2369,2419,2479,2532,2583,2629,2677,2725,2771,2818,2868,2913,2972,3024,3076,3119,3166,3222,3277,3332,3376,3418,3459,3509,3568,3619,3668,3717,3764,3811,3858,3903,3954,4007,4082,4141,4198,4272,4336,4405,4483,4593,4697,4770,4836,4891,4956,5021,5070,5153,5231,5269,5314,5362,5424,5481,5536,5595,5662,5720,5782,5830,5875,5923,5974,6040,6106"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rCN\\arrays.xml",
+ "from": {
+ "startLines": "18",
+ "startColumns": "4",
+ "startOffsets": "712",
+ "endLines": "21",
+ "endColumns": "19",
+ "endOffsets": "817"
+ },
+ "to": {
+ "startLines": "2",
+ "startColumns": "4",
+ "startOffsets": "105",
+ "endLines": "5",
+ "endColumns": "19",
+ "endOffsets": "210"
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rTW.json b/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rTW.json
new file mode 100644
index 0000000..ad0569a
--- /dev/null
+++ b/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rTW.json
@@ -0,0 +1,47 @@
+{
+ "logs": [
+ {
+ "outputFile": "net.micode.notes.app-mergeDebugResources-2:/values-zh-rTW/values-zh-rTW.xml",
+ "map": [
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rTW\\strings.xml",
+ "from": {
+ "startLines": "124,72,71,70,69,19,20,21,112,113,121,120,26,76,77,75,74,73,89,88,87,79,61,29,30,80,37,114,123,122,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,34,36,33,35,32,31,25,24,96,95,98,110,103,102,104,105,107,106,97,101,99,100,94,108,109,119,117,116,118,27,78,86,91,90,92,85,84,83,82,22,23",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "6627,3575,3509,3436,3386,827,867,915,6057,6102,6453,6403,1199,3835,3903,3776,3710,3647,4565,4505,4442,4035,2957,1369,1422,4089,1768,6159,6564,6507,3327,3114,1878,2159,2405,1931,2897,2844,2793,2598,2550,2456,2504,2644,2691,2202,3268,2741,3157,2116,2358,2302,2247,3059,2072,3017,1981,2022,3209,1318,1623,1719,1576,1672,1529,1484,1148,1095,4940,4881,5081,5982,5392,5323,5456,5534,5717,5644,5015,5268,5138,5203,4832,5821,5904,6365,6258,6210,6303,1261,3980,4383,4678,4620,4745,4335,4290,4242,4191,963,1029",
+ "endLines": "126,72,71,70,69,19,20,21,112,113,121,120,26,76,77,75,74,73,89,88,87,79,61,29,30,80,37,114,123,122,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,34,36,33,35,32,31,25,24,96,95,98,110,103,102,104,105,107,106,97,101,99,100,94,108,109,119,117,116,118,27,78,86,91,90,92,85,84,83,82,22,23",
+ "endColumns": "14,71,65,72,49,39,47,47,44,56,53,49,61,67,76,58,65,62,54,59,62,53,59,52,61,83,79,49,62,56,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65",
+ "endOffsets": "6799,3642,3570,3504,3431,862,910,958,6097,6154,6502,6448,1256,3898,3975,3830,3771,3705,4615,4560,4500,4084,3012,1417,1479,4168,1843,6204,6622,6559,3381,3152,1926,2197,2451,1976,2952,2892,2839,2639,2593,2499,2545,2686,2736,2242,3322,2788,3204,2154,2400,2353,2297,3109,2111,3054,2017,2067,3263,1364,1667,1763,1618,1714,1571,1524,1194,1143,5010,4935,5133,6051,5451,5387,5529,5639,5816,5712,5076,5318,5198,5263,4876,5899,5977,6398,6298,6253,6360,1313,4030,4437,4740,4673,4802,4378,4330,4285,4237,1024,1090"
+ },
+ "to": {
+ "startLines": "6,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "215,384,456,522,595,645,685,733,781,826,883,937,987,1049,1117,1194,1253,1319,1382,1437,1497,1560,1614,1674,1727,1789,1873,1953,2003,2066,2123,2182,2225,2278,2321,2372,2422,2482,2535,2586,2632,2680,2728,2774,2821,2871,2916,2975,3027,3079,3122,3169,3225,3280,3335,3379,3421,3462,3512,3571,3622,3671,3720,3767,3814,3861,3906,3957,4010,4085,4144,4201,4275,4339,4408,4486,4596,4700,4773,4839,4894,4959,5024,5073,5156,5234,5272,5317,5365,5427,5484,5539,5598,5665,5723,5785,5833,5878,5926,5977,6043",
+ "endLines": "8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108",
+ "endColumns": "14,71,65,72,49,39,47,47,44,56,53,49,61,67,76,58,65,62,54,59,62,53,59,52,61,83,79,49,62,56,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65",
+ "endOffsets": "379,451,517,590,640,680,728,776,821,878,932,982,1044,1112,1189,1248,1314,1377,1432,1492,1555,1609,1669,1722,1784,1868,1948,1998,2061,2118,2177,2220,2273,2316,2367,2417,2477,2530,2581,2627,2675,2723,2769,2816,2866,2911,2970,3022,3074,3117,3164,3220,3275,3330,3374,3416,3457,3507,3566,3617,3666,3715,3762,3809,3856,3901,3952,4005,4080,4139,4196,4270,4334,4403,4481,4591,4695,4768,4834,4889,4954,5019,5068,5151,5229,5267,5312,5360,5422,5479,5534,5593,5660,5718,5780,5828,5873,5921,5972,6038,6104"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values-zh-rTW\\arrays.xml",
+ "from": {
+ "startLines": "18",
+ "startColumns": "4",
+ "startOffsets": "712",
+ "endLines": "21",
+ "endColumns": "19",
+ "endOffsets": "817"
+ },
+ "to": {
+ "startLines": "2",
+ "startColumns": "4",
+ "startOffsets": "105",
+ "endLines": "5",
+ "endColumns": "19",
+ "endOffsets": "210"
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values.json b/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values.json
new file mode 100644
index 0000000..8a39a18
--- /dev/null
+++ b/src/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values.json
@@ -0,0 +1,206 @@
+{
+ "logs": [
+ {
+ "outputFile": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-mergeDebugResources-2:\\values\\values.xml",
+ "map": [
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\arrays.xml",
+ "from": {
+ "startLines": "-1,-1",
+ "startColumns": "-1,-1",
+ "startOffsets": "-1,-1"
+ },
+ "to": {
+ "startLines": "2,8",
+ "startColumns": "4,4",
+ "startOffsets": "105,300",
+ "endLines": "7,11",
+ "endColumns": "19,19",
+ "endOffsets": "295,415"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\strings.xml",
+ "from": {
+ "startLines": "134,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,133,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "startColumns": "4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "startOffsets": "8330,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8273,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "endLines": "138,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,133,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "endColumns": "14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "endOffsets": "8734,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8325,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
+ },
+ "to": {
+ "startLines": "19,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "775,1128,1224,1307,1403,1472,1515,1567,1619,1668,1731,1789,1840,1924,2018,2126,2197,2281,2364,2430,2513,2615,2676,2738,2789,2867,2920,2980,3085,3144,3246,3301,3364,3421,3492,3541,3587,3631,3689,3736,3795,3852,3923,3984,4041,4091,4143,4200,4253,4303,4353,4413,4466,4532,4594,4657,4704,4759,4847,4905,4967,5017,5062,5105,5165,5232,5287,5342,5397,5450,5497,5550,5606,5654,5709,5762,5846,5913,5977,6073,6147,6228,6317,6480,6624,6703,6778,6860,6919,6999,7079,7134,7256,7359,7400,7453,7510,7584,7649,7717,7803,7883,7952,8046,8105,8160,8222,8282,8392",
+ "endLines": "23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131",
+ "endColumns": "14,95,82,95,68,42,51,51,48,62,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,62,56,70,48,45,43,57,46,58,56,70,60,56,49,51,56,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,54,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,40,52,56,73,64,67,85,79,68,93,58,54,61,59,109,89",
+ "endOffsets": "1123,1219,1302,1398,1467,1510,1562,1614,1663,1726,1784,1835,1919,2013,2121,2192,2276,2359,2425,2508,2610,2671,2733,2784,2862,2915,2975,3080,3139,3241,3296,3359,3416,3487,3536,3582,3626,3684,3731,3790,3847,3918,3979,4036,4086,4138,4195,4248,4298,4348,4408,4461,4527,4589,4652,4699,4754,4842,4900,4962,5012,5057,5100,5160,5227,5282,5337,5392,5445,5492,5545,5601,5649,5704,5757,5841,5908,5972,6068,6142,6223,6312,6475,6619,6698,6773,6855,6914,6994,7074,7129,7251,7354,7395,7448,7505,7579,7644,7712,7798,7878,7947,8041,8100,8155,8217,8277,8387,8477"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\colors.xml",
+ "from": {
+ "startLines": "-1",
+ "startColumns": "-1",
+ "startOffsets": "-1"
+ },
+ "to": {
+ "startLines": "12",
+ "startColumns": "4",
+ "startOffsets": "420",
+ "endColumns": "56",
+ "endOffsets": "472"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\styles.xml",
+ "from": {
+ "startLines": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "startColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "startOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
+ },
+ "to": {
+ "startLines": "132,136,140,144,147,151,155,159,163,167,171",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "8482,8686,8897,9109,9269,9452,9637,9822,10025,10231,10414",
+ "endLines": "135,139,143,146,150,154,158,162,166,170,174",
+ "endColumns": "12,12,12,12,12,12,12,12,12,12,12",
+ "endOffsets": "8681,8892,9104,9264,9447,9632,9817,10020,10226,10409,10610"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\dimens.xml",
+ "from": {
+ "startLines": "-1,-1,-1,-1,-1",
+ "startColumns": "-1,-1,-1,-1,-1",
+ "startOffsets": "-1,-1,-1,-1,-1"
+ },
+ "to": {
+ "startLines": "13,14,15,16,17",
+ "startColumns": "4,4,4,4,4",
+ "startOffsets": "477,529,582,635,687",
+ "endColumns": "51,52,52,51,51",
+ "endOffsets": "524,577,630,682,734"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\refs.xml",
+ "from": {
+ "startLines": "-1",
+ "startColumns": "-1",
+ "startOffsets": "-1"
+ },
+ "to": {
+ "startLines": "18",
+ "startColumns": "4",
+ "startOffsets": "739",
+ "endColumns": "35",
+ "endOffsets": "770"
+ }
+ }
+ ]
+ },
+ {
+ "outputFile": "net.micode.notes.app-mergeDebugResources-2:/values/values.xml",
+ "map": [
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\arrays.xml",
+ "from": {
+ "startLines": "-1,-1",
+ "startColumns": "-1,-1",
+ "startOffsets": "-1,-1"
+ },
+ "to": {
+ "startLines": "2,8",
+ "startColumns": "4,4",
+ "startOffsets": "105,300",
+ "endLines": "7,11",
+ "endColumns": "19,19",
+ "endOffsets": "295,415"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\strings.xml",
+ "from": {
+ "startLines": "138,-1,-1,-1,-1,-1,-1,-1,-1,-1,136,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,137,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,134,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,135,-1,-1",
+ "startColumns": "4,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1",
+ "startOffsets": "8567,-1,-1,-1,-1,-1,-1,-1,-1,-1,8425,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8487,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8330,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8377,-1,-1",
+ "endLines": "142,-1,-1,-1,-1,-1,-1,-1,-1,-1,136,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,137,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,134,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,135,-1,-1",
+ "endColumns": "14,-1,-1,-1,-1,-1,-1,-1,-1,-1,61,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,79,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,47,-1,-1",
+ "endOffsets": "8971,-1,-1,-1,-1,-1,-1,-1,-1,-1,8482,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8562,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8372,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8420,-1,-1"
+ },
+ "to": {
+ "startLines": "19,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "775,1128,1224,1307,1403,1472,1515,1567,1619,1668,1731,1793,1851,1902,1986,2080,2188,2259,2343,2426,2492,2575,2677,2738,2800,2851,2929,2982,3042,3147,3206,3308,3388,3443,3506,3563,3634,3683,3729,3773,3831,3878,3937,3994,4065,4126,4183,4233,4285,4342,4395,4445,4495,4555,4608,4674,4736,4799,4846,4893,4948,5036,5094,5156,5206,5251,5294,5354,5421,5476,5531,5586,5639,5686,5739,5795,5843,5898,5951,6035,6102,6166,6262,6336,6417,6506,6669,6813,6892,6967,7049,7108,7188,7268,7323,7445,7548,7589,7642,7699,7773,7838,7906,7992,8072,8141,8235,8294,8349,8411,8471,8519,8629",
+ "endLines": "23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135",
+ "endColumns": "14,95,82,95,68,42,51,51,48,62,61,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,79,54,62,56,70,48,45,43,57,46,58,56,70,60,56,49,51,56,52,49,49,59,52,65,61,62,46,46,54,87,57,61,49,44,42,59,66,54,54,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,40,52,56,73,64,67,85,79,68,93,58,54,61,59,47,109,89",
+ "endOffsets": "1123,1219,1302,1398,1467,1510,1562,1614,1663,1726,1788,1846,1897,1981,2075,2183,2254,2338,2421,2487,2570,2672,2733,2795,2846,2924,2977,3037,3142,3201,3303,3383,3438,3501,3558,3629,3678,3724,3768,3826,3873,3932,3989,4060,4121,4178,4228,4280,4337,4390,4440,4490,4550,4603,4669,4731,4794,4841,4888,4943,5031,5089,5151,5201,5246,5289,5349,5416,5471,5526,5581,5634,5681,5734,5790,5838,5893,5946,6030,6097,6161,6257,6331,6412,6501,6664,6808,6887,6962,7044,7103,7183,7263,7318,7440,7543,7584,7637,7694,7768,7833,7901,7987,8067,8136,8230,8289,8344,8406,8466,8514,8624,8714"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\colors.xml",
+ "from": {
+ "startLines": "-1",
+ "startColumns": "-1",
+ "startOffsets": "-1"
+ },
+ "to": {
+ "startLines": "12",
+ "startColumns": "4",
+ "startOffsets": "420",
+ "endColumns": "56",
+ "endOffsets": "472"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\styles.xml",
+ "from": {
+ "startLines": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "startColumns": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1",
+ "startOffsets": "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
+ },
+ "to": {
+ "startLines": "136,140,144,148,151,155,159,163,167,171,175",
+ "startColumns": "4,4,4,4,4,4,4,4,4,4,4",
+ "startOffsets": "8719,8923,9134,9346,9506,9689,9874,10059,10262,10468,10651",
+ "endLines": "139,143,147,150,154,158,162,166,170,174,178",
+ "endColumns": "12,12,12,12,12,12,12,12,12,12,12",
+ "endOffsets": "8918,9129,9341,9501,9684,9869,10054,10257,10463,10646,10847"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\dimens.xml",
+ "from": {
+ "startLines": "-1,-1,-1,-1,-1",
+ "startColumns": "-1,-1,-1,-1,-1",
+ "startOffsets": "-1,-1,-1,-1,-1"
+ },
+ "to": {
+ "startLines": "13,14,15,16,17",
+ "startColumns": "4,4,4,4,4",
+ "startOffsets": "477,529,582,635,687",
+ "endColumns": "51,52,52,51,51",
+ "endOffsets": "524,577,630,682,734"
+ }
+ },
+ {
+ "source": "D:\\note1\\app\\src\\main\\res\\values\\refs.xml",
+ "from": {
+ "startLines": "-1",
+ "startColumns": "-1",
+ "startOffsets": "-1"
+ },
+ "to": {
+ "startLines": "18",
+ "startColumns": "4",
+ "startOffsets": "739",
+ "endColumns": "35",
+ "endOffsets": "770"
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/app/build/intermediates/merged_res_blame_folder/debug/out/single/debug.json b/src/app/build/intermediates/merged_res_blame_folder/debug/out/single/debug.json
new file mode 100644
index 0000000..d583f78
--- /dev/null
+++ b/src/app/build/intermediates/merged_res_blame_folder/debug/out/single/debug.json
@@ -0,0 +1,406 @@
+[
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_white_single.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_white_single.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_yellow_up.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_yellow_up.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_blue_single.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_blue_single.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_add_account_text.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\add_account_text.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_note_edit_list_item.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\note_edit_list_item.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_datetime_picker.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\datetime_picker.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\raw-zh-rCN_introduction.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\raw-zh-rCN\\introduction"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_blue_down.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_blue_down.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\xml_widget_2x_info.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\xml\\widget_2x_info.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_edit_title_blue.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\edit_title_blue.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_red_down.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_red_down.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_edit_blue.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\edit_blue.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_selected.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\selected.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_yellow_single.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_yellow_single.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_new_note_pressed.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\new_note_pressed.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_title_bar_bg.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\title_bar_bg.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_edit_green.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\edit_green.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_font_small.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\font_small.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\menu_note_edit.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\menu\\note_edit.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_folder_list_item.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\folder_list_item.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_dialog_edit_text.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\dialog_edit_text.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\menu_call_record_folder.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\menu\\call_record_folder.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_gao.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\gao.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\menu_note_list_options.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\menu\\note_list_options.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\menu_sub_folder.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\menu\\sub_folder.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_4x_red.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_4x_red.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_2x_white.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_2x_white.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_a3.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\a3.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_edit_title_yellow.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\edit_title_yellow.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\color_secondary_text_dark.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\color\\secondary_text_dark.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_icon_app.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\icon_app.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_red_single.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_red_single.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_yellow_down.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_yellow_down.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_widget_4x.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\widget_4x.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\menu_note_list.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\menu\\note_list.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_bg_color_btn_mask.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\bg_color_btn_mask.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_green_down.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_green_down.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_settings_header.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\settings_header.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_title_alert.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\title_alert.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_delete.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\delete.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_call_record.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\call_record.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_red_middle.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_red_middle.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_note_list_footer.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\note_list_footer.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\menu_call_note_edit.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\menu\\call_note_edit.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_widget_2x.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\widget_2x.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_menu_move.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\menu_move.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_4x_blue.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_4x_blue.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_menu_delete.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\menu_delete.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_blue_middle.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_blue_middle.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_white_middle.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_white_middle.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_edit_yellow.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\edit_yellow.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_edit_white.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\edit_white.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_search_result.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\search_result.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_font_super.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\font_super.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_2x_blue.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_2x_blue.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_note_item.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\note_item.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_a2.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\a2.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_note_list_dropdown_menu.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\note_list_dropdown_menu.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_edit_title_white.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\edit_title_white.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable_new_note.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable\\new_note.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_note_edit_color_selector_panel.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\note_edit_color_selector_panel.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_2x_green.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_2x_green.png"
+ },
+ {
+ "merged": "net.micode.notes.app-merged_res-4:/drawable-hdpi_gao.png.flat",
+ "source": "net.micode.notes.app-main-6:/drawable-hdpi/gao.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_2x_yellow.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_2x_yellow.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\xml_widget_4x_info.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\xml\\widget_4x_info.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\xml_preferences.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\xml\\preferences.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_red_up.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_red_up.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\xml_searchable.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\xml\\searchable.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_note_edit.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\note_edit.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_edit_red.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\edit_red.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_background.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_background.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_account_dialog_title.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\account_dialog_title.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_green_single.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_green_single.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_edit_title_red.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\edit_title_red.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_bg_btn_set_color.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\bg_btn_set_color.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_font_size_selector_bg.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\font_size_selector_bg.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_dropdown_icon.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\dropdown_icon.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_4x_yellow.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_4x_yellow.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_footer_bg.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_footer_bg.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_4x_green.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_4x_green.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\raw_introduction.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\raw\\introduction"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_white_up.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_white_up.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_white_down.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_white_down.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\color_primary_text_dark.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\color\\primary_text_dark.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_new_note_normal.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\new_note_normal.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_folder.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_folder.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_green_up.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_green_up.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_4x_white.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_4x_white.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_2x_red.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_2x_red.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_clock.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\clock.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\menu_note_list_dropdown.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\menu\\note_list_dropdown.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\layout_note_list.xml.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\layout\\note_list.xml"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_edit_title_green.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\edit_title_green.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_green_middle.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_green_middle.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_font_normal.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\font_normal.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_yellow_middle.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_yellow_middle.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_list_blue_up.9.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\list_blue_up.9.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_font_large.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\font_large.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_a1.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\a1.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_a4.png.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\a4.png"
+ },
+ {
+ "merged": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_g780.jpg.flat",
+ "source": "C:\\Users\\86139\\.gradle\\daemon\\8.1\\net.micode.notes.app-main-6:\\drawable-hdpi\\g780.jpg"
+ }
+]
\ No newline at end of file
diff --git a/src/app/build/intermediates/navigation_json/debug/navigation.json b/src/app/build/intermediates/navigation_json/debug/navigation.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/src/app/build/intermediates/navigation_json/debug/navigation.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/src/app/build/intermediates/packaged_manifests/debug/AndroidManifest.xml b/src/app/build/intermediates/packaged_manifests/debug/AndroidManifest.xml
new file mode 100644
index 0000000..df53d07
--- /dev/null
+++ b/src/app/build/intermediates/packaged_manifests/debug/AndroidManifest.xml
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/build/intermediates/packaged_manifests/debug/output-metadata.json b/src/app/build/intermediates/packaged_manifests/debug/output-metadata.json
new file mode 100644
index 0000000..eea66e3
--- /dev/null
+++ b/src/app/build/intermediates/packaged_manifests/debug/output-metadata.json
@@ -0,0 +1,20 @@
+{
+ "version": 3,
+ "artifactType": {
+ "type": "PACKAGED_MANIFESTS",
+ "kind": "Directory"
+ },
+ "applicationId": "net.micode.notes",
+ "variantName": "debug",
+ "elements": [
+ {
+ "type": "SINGLE",
+ "filters": [],
+ "attributes": [],
+ "versionCode": 1,
+ "versionName": "0.1",
+ "outputFile": "AndroidManifest.xml"
+ }
+ ],
+ "elementType": "File"
+}
\ No newline at end of file
diff --git a/src/Notes-master/res/color/primary_text_dark.xml b/src/app/build/intermediates/packaged_res/debug/color/primary_text_dark.xml
similarity index 53%
rename from src/Notes-master/res/color/primary_text_dark.xml
rename to src/app/build/intermediates/packaged_res/debug/color/primary_text_dark.xml
index 5ad1b63..ef83740 100644
--- a/src/Notes-master/res/color/primary_text_dark.xml
+++ b/src/app/build/intermediates/packaged_res/debug/color/primary_text_dark.xml
@@ -16,16 +16,16 @@
-->
-
+
-
\ No newline at end of file
+ 第一个 元素定义了当状态为 pressed(按下)时的颜色为 #88555555,这是一个半透明的深灰色。
+ 第二个 元素定义了当状态为 selected(选中)时的颜色为 #ff999999,这是一个较浅的灰色。
+ 第三个 元素定义了默认情况下(即没有特定状态匹配)的颜色为 #ff000000,即纯黑色。-->
\ No newline at end of file
diff --git a/src/Notes-master/res/color/secondary_text_dark.xml b/src/app/build/intermediates/packaged_res/debug/color/secondary_text_dark.xml
similarity index 100%
rename from src/Notes-master/res/color/secondary_text_dark.xml
rename to src/app/build/intermediates/packaged_res/debug/color/secondary_text_dark.xml
diff --git a/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a1.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a1.png
new file mode 100644
index 0000000..58bd44e
Binary files /dev/null and b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a1.png differ
diff --git a/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a2.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a2.png
new file mode 100644
index 0000000..36e9607
Binary files /dev/null and b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a2.png differ
diff --git a/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a3.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a3.png
new file mode 100644
index 0000000..cedbc02
Binary files /dev/null and b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a3.png differ
diff --git a/src/Notes-master/res/drawable-hdpi/notification.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a4.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/notification.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/a4.png
diff --git a/src/Notes-master/res/drawable-hdpi/bg_btn_set_color.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/bg_btn_set_color.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/bg_btn_set_color.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/bg_btn_set_color.png
diff --git a/src/Notes-master/res/drawable-hdpi/bg_color_btn_mask.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/bg_color_btn_mask.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/bg_color_btn_mask.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/bg_color_btn_mask.png
diff --git a/src/Notes-master/res/drawable-hdpi/call_record.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/call_record.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/call_record.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/call_record.png
diff --git a/src/Notes-master/res/drawable-hdpi/clock.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/clock.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/clock.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/clock.png
diff --git a/src/Notes-master/res/drawable-hdpi/delete.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/delete.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/delete.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/delete.png
diff --git a/src/Notes-master/res/drawable-hdpi/dropdown_icon.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/dropdown_icon.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/dropdown_icon.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/dropdown_icon.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/edit_blue.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_blue.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/edit_blue.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_blue.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/edit_green.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_green.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/edit_green.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_green.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/edit_red.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_red.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/edit_red.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_red.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/edit_title_blue.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_title_blue.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/edit_title_blue.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_title_blue.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/edit_title_green.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_title_green.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/edit_title_green.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_title_green.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/edit_title_red.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_title_red.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/edit_title_red.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_title_red.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/edit_title_white.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_title_white.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/edit_title_white.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_title_white.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/edit_title_yellow.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_title_yellow.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/edit_title_yellow.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_title_yellow.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/edit_white.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_white.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/edit_white.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_white.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/edit_yellow.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_yellow.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/edit_yellow.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/edit_yellow.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/font_large.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/font_large.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/font_large.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/font_large.png
diff --git a/src/Notes-master/res/drawable-hdpi/font_normal.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/font_normal.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/font_normal.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/font_normal.png
diff --git a/src/Notes-master/res/drawable-hdpi/font_size_selector_bg.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/font_size_selector_bg.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/font_size_selector_bg.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/font_size_selector_bg.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/font_small.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/font_small.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/font_small.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/font_small.png
diff --git a/src/Notes-master/res/drawable-hdpi/font_super.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/font_super.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/font_super.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/font_super.png
diff --git a/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/g780.jpg b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/g780.jpg
new file mode 100644
index 0000000..d0edc03
Binary files /dev/null and b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/g780.jpg differ
diff --git a/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/gao.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/gao.png
new file mode 100644
index 0000000..d2a5ae8
Binary files /dev/null and b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/gao.png differ
diff --git a/src/Notes-master/res/drawable-hdpi/icon_app.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/icon_app.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/icon_app.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/icon_app.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_background.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_background.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_background.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_background.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_blue_down.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_blue_down.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_blue_down.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_blue_down.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_blue_middle.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_blue_middle.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_blue_middle.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_blue_middle.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_blue_single.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_blue_single.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_blue_single.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_blue_single.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_blue_up.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_blue_up.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_blue_up.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_blue_up.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_folder.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_folder.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_folder.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_folder.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_footer_bg.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_footer_bg.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_footer_bg.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_footer_bg.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_green_down.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_green_down.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_green_down.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_green_down.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_green_middle.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_green_middle.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_green_middle.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_green_middle.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_green_single.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_green_single.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_green_single.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_green_single.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_green_up.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_green_up.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_green_up.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_green_up.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_red_down.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_red_down.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_red_down.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_red_down.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_red_middle.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_red_middle.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_red_middle.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_red_middle.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_red_single.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_red_single.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_red_single.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_red_single.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_red_up.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_red_up.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_red_up.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_red_up.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_white_down.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_white_down.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_white_down.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_white_down.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_white_middle.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_white_middle.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_white_middle.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_white_middle.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_white_single.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_white_single.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_white_single.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_white_single.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_white_up.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_white_up.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_white_up.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_white_up.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_yellow_down.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_yellow_down.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_yellow_down.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_yellow_down.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_yellow_middle.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_yellow_middle.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_yellow_middle.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_yellow_middle.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_yellow_single.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_yellow_single.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_yellow_single.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_yellow_single.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/list_yellow_up.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_yellow_up.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/list_yellow_up.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/list_yellow_up.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/menu_delete.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/menu_delete.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/menu_delete.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/menu_delete.png
diff --git a/src/Notes-master/res/drawable-hdpi/menu_move.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/menu_move.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/menu_move.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/menu_move.png
diff --git a/src/Notes-master/res/drawable-hdpi/new_note_normal.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/new_note_normal.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/new_note_normal.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/new_note_normal.png
diff --git a/src/Notes-master/res/drawable-hdpi/new_note_pressed.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/new_note_pressed.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/new_note_pressed.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/new_note_pressed.png
diff --git a/src/Notes-master/res/drawable-hdpi/note_edit_color_selector_panel.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/note_edit_color_selector_panel.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/note_edit_color_selector_panel.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/note_edit_color_selector_panel.png
diff --git a/src/Notes-master/res/drawable-hdpi/search_result.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/search_result.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/search_result.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/search_result.png
diff --git a/src/Notes-master/res/drawable-hdpi/selected.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/selected.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/selected.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/selected.png
diff --git a/src/Notes-master/res/drawable-hdpi/title_alert.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/title_alert.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/title_alert.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/title_alert.png
diff --git a/src/Notes-master/res/drawable-hdpi/title_bar_bg.9.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/title_bar_bg.9.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/title_bar_bg.9.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/title_bar_bg.9.png
diff --git a/src/Notes-master/res/drawable-hdpi/widget_2x_blue.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_2x_blue.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/widget_2x_blue.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_2x_blue.png
diff --git a/src/Notes-master/res/drawable-hdpi/widget_2x_green.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_2x_green.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/widget_2x_green.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_2x_green.png
diff --git a/src/Notes-master/res/drawable-hdpi/widget_2x_red.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_2x_red.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/widget_2x_red.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_2x_red.png
diff --git a/src/Notes-master/res/drawable-hdpi/widget_2x_white.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_2x_white.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/widget_2x_white.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_2x_white.png
diff --git a/src/Notes-master/res/drawable-hdpi/widget_2x_yellow.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_2x_yellow.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/widget_2x_yellow.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_2x_yellow.png
diff --git a/src/Notes-master/res/drawable-hdpi/widget_4x_blue.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_4x_blue.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/widget_4x_blue.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_4x_blue.png
diff --git a/src/Notes-master/res/drawable-hdpi/widget_4x_green.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_4x_green.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/widget_4x_green.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_4x_green.png
diff --git a/src/Notes-master/res/drawable-hdpi/widget_4x_red.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_4x_red.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/widget_4x_red.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_4x_red.png
diff --git a/src/Notes-master/res/drawable-hdpi/widget_4x_white.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_4x_white.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/widget_4x_white.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_4x_white.png
diff --git a/src/Notes-master/res/drawable-hdpi/widget_4x_yellow.png b/src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_4x_yellow.png
similarity index 100%
rename from src/Notes-master/res/drawable-hdpi/widget_4x_yellow.png
rename to src/app/build/intermediates/packaged_res/debug/drawable-hdpi-v4/widget_4x_yellow.png
diff --git a/src/Notes-master/res/drawable/new_note.xml b/src/app/build/intermediates/packaged_res/debug/drawable/new_note.xml
similarity index 100%
rename from src/Notes-master/res/drawable/new_note.xml
rename to src/app/build/intermediates/packaged_res/debug/drawable/new_note.xml
diff --git a/src/Notes-master/res/layout/account_dialog_title.xml b/src/app/build/intermediates/packaged_res/debug/layout/account_dialog_title.xml
similarity index 100%
rename from src/Notes-master/res/layout/account_dialog_title.xml
rename to src/app/build/intermediates/packaged_res/debug/layout/account_dialog_title.xml
diff --git a/src/Notes-master/res/layout/add_account_text.xml b/src/app/build/intermediates/packaged_res/debug/layout/add_account_text.xml
similarity index 100%
rename from src/Notes-master/res/layout/add_account_text.xml
rename to src/app/build/intermediates/packaged_res/debug/layout/add_account_text.xml
diff --git a/src/Notes-master/res/layout/datetime_picker.xml b/src/app/build/intermediates/packaged_res/debug/layout/datetime_picker.xml
similarity index 100%
rename from src/Notes-master/res/layout/datetime_picker.xml
rename to src/app/build/intermediates/packaged_res/debug/layout/datetime_picker.xml
diff --git a/src/Notes-master/res/layout/dialog_edit_text.xml b/src/app/build/intermediates/packaged_res/debug/layout/dialog_edit_text.xml
similarity index 100%
rename from src/Notes-master/res/layout/dialog_edit_text.xml
rename to src/app/build/intermediates/packaged_res/debug/layout/dialog_edit_text.xml
diff --git a/src/Notes-master/res/layout/folder_list_item.xml b/src/app/build/intermediates/packaged_res/debug/layout/folder_list_item.xml
similarity index 100%
rename from src/Notes-master/res/layout/folder_list_item.xml
rename to src/app/build/intermediates/packaged_res/debug/layout/folder_list_item.xml
diff --git a/src/Notes-master/res/layout/note_edit.xml b/src/app/build/intermediates/packaged_res/debug/layout/note_edit.xml
similarity index 86%
rename from src/Notes-master/res/layout/note_edit.xml
rename to src/app/build/intermediates/packaged_res/debug/layout/note_edit.xml
index 10b2aa7..0ad08d4 100644
--- a/src/Notes-master/res/layout/note_edit.xml
+++ b/src/app/build/intermediates/packaged_res/debug/layout/note_edit.xml
@@ -15,7 +15,8 @@
limitations under the License.
-->
-
-
+
+
+
@@ -115,7 +124,49 @@
android:background="@drawable/bg_color_btn_mask" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -396,5 +460,6 @@
android:layout_marginBottom="-7dip"
android:src="@drawable/selected" />
+
diff --git a/src/Notes-master/res/layout/note_edit_list_item.xml b/src/app/build/intermediates/packaged_res/debug/layout/note_edit_list_item.xml
similarity index 100%
rename from src/Notes-master/res/layout/note_edit_list_item.xml
rename to src/app/build/intermediates/packaged_res/debug/layout/note_edit_list_item.xml
diff --git a/src/Notes-master/res/layout/note_item.xml b/src/app/build/intermediates/packaged_res/debug/layout/note_item.xml
similarity index 100%
rename from src/Notes-master/res/layout/note_item.xml
rename to src/app/build/intermediates/packaged_res/debug/layout/note_item.xml
diff --git a/src/Notes-master/res/layout/note_list.xml b/src/app/build/intermediates/packaged_res/debug/layout/note_list.xml
similarity index 95%
rename from src/Notes-master/res/layout/note_list.xml
rename to src/app/build/intermediates/packaged_res/debug/layout/note_list.xml
index 6b25d38..227c36e 100644
--- a/src/Notes-master/res/layout/note_list.xml
+++ b/src/app/build/intermediates/packaged_res/debug/layout/note_list.xml
@@ -18,9 +18,8 @@
-
+ android:layout_height="fill_parent">
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Notes-master/res/menu/note_list.xml b/src/app/build/intermediates/packaged_res/debug/menu/note_list.xml
similarity index 73%
rename from src/Notes-master/res/menu/note_list.xml
rename to src/app/build/intermediates/packaged_res/debug/menu/note_list.xml
index 42ea736..9a61ba2 100644
--- a/src/Notes-master/res/menu/note_list.xml
+++ b/src/app/build/intermediates/packaged_res/debug/menu/note_list.xml
@@ -36,4 +36,18 @@
+
+
+
+
diff --git a/src/Notes-master/res/menu/note_list_dropdown.xml b/src/app/build/intermediates/packaged_res/debug/menu/note_list_dropdown.xml
similarity index 100%
rename from src/Notes-master/res/menu/note_list_dropdown.xml
rename to src/app/build/intermediates/packaged_res/debug/menu/note_list_dropdown.xml
diff --git a/src/Notes-master/res/menu/note_list_options.xml b/src/app/build/intermediates/packaged_res/debug/menu/note_list_options.xml
similarity index 100%
rename from src/Notes-master/res/menu/note_list_options.xml
rename to src/app/build/intermediates/packaged_res/debug/menu/note_list_options.xml
diff --git a/src/Notes-master/res/menu/sub_folder.xml b/src/app/build/intermediates/packaged_res/debug/menu/sub_folder.xml
similarity index 100%
rename from src/Notes-master/res/menu/sub_folder.xml
rename to src/app/build/intermediates/packaged_res/debug/menu/sub_folder.xml
diff --git a/src/Notes-master/res/raw-zh-rCN/introduction b/src/app/build/intermediates/packaged_res/debug/raw-zh-rCN/introduction
similarity index 100%
rename from src/Notes-master/res/raw-zh-rCN/introduction
rename to src/app/build/intermediates/packaged_res/debug/raw-zh-rCN/introduction
diff --git a/src/Notes-master/res/raw/introduction b/src/app/build/intermediates/packaged_res/debug/raw/introduction
similarity index 100%
rename from src/Notes-master/res/raw/introduction
rename to src/app/build/intermediates/packaged_res/debug/raw/introduction
diff --git a/src/app/build/intermediates/packaged_res/debug/values-zh-rCN/values-zh-rCN.xml b/src/app/build/intermediates/packaged_res/debug/values-zh-rCN/values-zh-rCN.xml
new file mode 100644
index 0000000..c9078bb
--- /dev/null
+++ b/src/app/build/intermediates/packaged_res/debug/values-zh-rCN/values-zh-rCN.xml
@@ -0,0 +1,116 @@
+
+
+
+ 短信
+ 邮件
+
+
+ %1$s 条符合“%2$s”的搜索结果
+
+ 确认删除文件夹及所包含的便签吗?
+ 确认要删除该条便签吗?
+ 确认要删除所选的 %d 条便签吗?
+ 删除
+ 便签
+ 便签2x2
+ 便签4x4
+ 删除
+ 通话便签
+ 你不能撤销了
+ 取消
+ 设置
+ 成功删除提醒
+ 不能为空便签设置闹钟提醒
+ 不能将空便签发送到桌面
+ 要查看的便签不存在
+ 导出文本时发生错误,请检查SD卡
+ SD卡被占用,不能操作
+ 同步已取消
+ 同步失败,发生内部错误
+ 同步失败,请检查网络和帐号设置
+ 导出失败
+ 文件夹 %1$s 已存在,请重新命名
+ yyyyMMdd
+ MM月dd日 kk:mm
+ 已将文本文件(%1$s)输出至SD卡(%2$s)目录
+ 已将所选 %1$d 条便签移到 %2$s 文件夹
+ 您还没有输入任何内容
+ 请输入名称
+ delete_passcode
+ set_passcode
+ 已添加到桌面
+ 提醒我
+ 新建文件夹
+ 删除
+ 取消全选
+ 导出文本
+ 修改文件夹名称
+ 刪除文件夹
+ 查看文件夹
+ 大
+ 正常
+ 选择字体
+ 文字大小
+ 小
+ 超大
+ 进入清单模式
+ 移动到文件夹
+ 上一级文件夹
+ 退出清单模式
+ 删除提醒
+ 撤销
+ 搜索
+ 全选
+ 没有选中项,操作无效
+ 选中了 %d 项
+ 发送到桌面
+ 设置
+ 分享
+ 同步
+ 取消同步
+ 选择文件夹
+ 读便签
+ 已过期
+ 发送邮件
+ 打开地图
+ 呼叫电话
+ 浏览网页
+ 查看
+ 知道了
+ 新建便签
+ ...
+ 与google task同步便签记录
+ 同步账号
+ 添加账号
+ 新建便签背景颜色随机
+ 取消同步
+ 立即同步
+ 当前帐号 %1$s
+ 如更换同步帐号,过去的帐号同步信息将被清空,再次切换的同时可能会造成数据重复
+ 请选择google帐号,便签将与该帐号的google task内容同步。
+ 同步便签
+ 上次同步于 %1$s
+ 取消
+ 更换账号
+ 删除账号
+ 设置
+ 正在同步中,不能修改同步帐号
+ 同步帐号已设置为%1$s
+ 便签
+ 搜索便签
+ 正在搜索便签
+ 便签中的文字
+ 创建提醒
+ 导出成功
+ 与%1$s同步成功
+ 正在获取服务器便签列表...
+ 登录%1$s...
+ 正在同步本地便签...
+ 同步已取消
+ 同步失败
+ 同步成功
+ 同步便签...
+ 提示
+ 没有关联内容,点击新建便签。
+ 访客模式下,便签内容不可见
+
\ No newline at end of file
diff --git a/src/app/build/intermediates/packaged_res/debug/values-zh-rTW/values-zh-rTW.xml b/src/app/build/intermediates/packaged_res/debug/values-zh-rTW/values-zh-rTW.xml
new file mode 100644
index 0000000..dc1174a
--- /dev/null
+++ b/src/app/build/intermediates/packaged_res/debug/values-zh-rTW/values-zh-rTW.xml
@@ -0,0 +1,110 @@
+
+
+
+ 短信
+ 郵件
+
+
+ %1$s 條符合”%2$s“的搜尋結果
+
+ 確認刪除檔夾及所包含的便簽嗎?
+ 确认要删除該條便籤嗎?
+ 确认要刪除所選的 %d 條便籤嗎?
+ 刪除
+ 便簽
+ 便簽2x2
+ 便簽4x4
+ 刪除
+ 通話便籤
+ 取消
+ 設置
+ 成功刪除提醒
+ 不能爲空便籤設置鬧鐘提醒
+ 不能將空便籤發送到桌面
+ 要查看的便籤不存在
+ 導出TXT時發生錯誤,請檢查SD卡
+ SD卡被佔用,不能操作
+ 同步已取消
+ 同步失敗,發生內部錯誤
+ 同步失敗,請檢查網絡和帳號設置
+ 導出失敗
+ 文件夾 %1$s 已存在,請重新命名
+ yyyyMMdd
+ MM月dd日 kk:mm
+ 已將文本文件(%1$s)導出至SD(%2$s)目錄
+ 已將所選 %1$d 便籤移到 %2$s 文件夾
+ 請輸入名稱
+ delete_passcode
+ set_passcode
+ 已添加到桌面
+ 提醒我
+ 新建文件夾
+ 刪除
+ 取消全選
+ 導出文本
+ 修改文件夾名稱
+ 刪除文件夾
+ 查看文件夾
+ 大
+ 正常
+ 文字大小
+ 小
+ 超大
+ 進入清單模式
+ 移動到文件夾
+ 上一級文件夾
+ 退出清單模式
+ 刪除提醒
+ 搜尋
+ 全選
+ 沒有選中項,操作無效
+ 選中了 %d 項
+ 發送到桌面
+ 設置
+ 分享
+ 同步
+ 取消同步
+ 選擇文件夾
+ 已過期
+ 發送郵件
+ 打開地圖
+ 呼叫電話
+ 浏覽網頁
+ 查看
+ 知道了
+ 新建便簽
+ ...
+ 与google task同步便簽記錄
+ 同步賬號
+ 添加賬號
+ 新建便籤背景顏色隨機
+ 取消同步
+ 立即同步
+ 當前帳號 %1$s
+ 如更換同步帳號,過去的帳號同步信息將被清空,再次切換的同時可能會造成數據重復
+ 請選擇google帳號,便簽將與該帳號的google task內容同步。
+ 同步便簽
+ 上次同步于 %1$s
+ 取消
+ 更換賬號
+ 刪除賬號
+ 設置
+ 正在同步中,不能修改同步帳號
+ 同步帳號已設置為%1$s
+ 便籤
+ 搜索便籤
+ 正在搜索便籤
+ 便籤中的文字
+ 創建提醒
+ 導出成功
+ 與%1$s同步成功
+ 正在獲取服務器便籤列表...
+ 登陸%1$s...
+ 正在同步本地便籤...
+ 同步已取消
+ 同步失敗
+ 同步成功
+ 同步便簽...
+ 沒有關聯內容,點擊新建便簽。
+ 訪客模式下,便籤內容不可見
+
\ No newline at end of file
diff --git a/src/app/build/intermediates/packaged_res/debug/values/values.xml b/src/app/build/intermediates/packaged_res/debug/values/values.xml
new file mode 100644
index 0000000..1328cfd
--- /dev/null
+++ b/src/app/build/intermediates/packaged_res/debug/values/values.xml
@@ -0,0 +1,180 @@
+
+
+
+ -%s
+ --%s
+ --%s
+ --%s
+
+
+ Messaging
+ Email
+
+ #335b5b5b
+ 26sp
+ 20sp
+ 17sp
+ 14sp
+ 33sp
+
+
+ %1$s result for \"%2$s\"
+
+ %1$s results for \"%2$s\"
+
+ Confirm to delete folder and its notes?
+ Confirm to delete this note?
+ Confirm to delete the selected %d notes?
+ Delete selected notes
+ Notes
+ Notes 2x2
+ Notes 4x4
+ Delete
+ Call notes
+ You can not revoke
+ cancel
+ set
+ Delete reminder successfully
+ Sorry, can not set clock on empty note
+ Sorry, can not send and empty note to home
+ The note is not exist
+ Export failed, please check SD card
+ SD card busy, not available now
+ Sync is canceled
+ Sync failed, internal error occurs
+ Sync failed, please check network and account settings
+ Export fail
+ notes_%s.txt
+ /MIUI/notes/
+ The folder %1$s exist, please rename
+ yyyyMMdd
+ MMMd kk:mm
+ Export text file (%1$s) to SD (%2$s) directory
+ (%d)
+ Have moved selected %1$d notes to %2$s folder
+ You have not input anything
+ Input name
+ delete_passcode
+ set_passcode
+ Note added to home
+ Remind me
+ g780
+ gao
+ New Folder
+ Delete
+ Deselect all
+ Export text
+ Change folder name
+ Delete folder
+ View folder
+ Large
+ Medium
+ font_select
+ Font size
+ Small
+ Super
+ Enter check list
+ Move to folder
+ Parent folder
+ Leave check list
+ Delete reminder
+ Revoke
+ Search
+ Select all
+ Nothing selected, the operation is invalid
+ %d selected
+ Send to home
+ Settings
+ Share
+ Sync
+ Cancel syncing
+ Select folder
+ Read notes
+ Expired
+ Send email
+ Open map
+ Call
+ Browse web
+ Take a look
+ Got it
+ Add note
+ ...
+ Sync notes with google task
+ Sync account
+ Add account
+ New note background color random
+ Cancel syncing
+ Sync immediately
+ Current account %1$s
+ All sync related information will be deleted, which may result in duplicated items sometime
+ Please select a google account. Local notes will be synced with google task.
+ Sync notes
+ Last sync time %1$s
+ yyyy-MM-dd hh:mm:ss
+ Cancel
+ Change sync account
+ Remove sync account
+ Settings
+ Cannot change the account because sync is in progress
+ %1$s has been set as the sync account
+ Notes
+ Search notes
+ Searching Notes
+ Text in your notes
+ Set reminder
+ Export successful
+ Sync is successful with account %1$s
+ Getting remote note list...
+ Logging into %1$s...
+ Synchronize local notes with Google Task...
+ Sync is canceled
+ Sync is failed
+ Sync is successful
+ Syncing notes...
+ Tips
+ No associated note found, click to create associated note.
+ Privacy mode,can not see note content
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Notes-master/res/xml/preferences.xml b/src/app/build/intermediates/packaged_res/debug/xml/preferences.xml
similarity index 100%
rename from src/Notes-master/res/xml/preferences.xml
rename to src/app/build/intermediates/packaged_res/debug/xml/preferences.xml
diff --git a/src/Notes-master/res/xml/searchable.xml b/src/app/build/intermediates/packaged_res/debug/xml/searchable.xml
similarity index 100%
rename from src/Notes-master/res/xml/searchable.xml
rename to src/app/build/intermediates/packaged_res/debug/xml/searchable.xml
diff --git a/src/Notes-master/res/xml/widget_2x_info.xml b/src/app/build/intermediates/packaged_res/debug/xml/widget_2x_info.xml
similarity index 100%
rename from src/Notes-master/res/xml/widget_2x_info.xml
rename to src/app/build/intermediates/packaged_res/debug/xml/widget_2x_info.xml
diff --git a/src/Notes-master/res/xml/widget_4x_info.xml b/src/app/build/intermediates/packaged_res/debug/xml/widget_4x_info.xml
similarity index 100%
rename from src/Notes-master/res/xml/widget_4x_info.xml
rename to src/app/build/intermediates/packaged_res/debug/xml/widget_4x_info.xml
diff --git a/src/app/build/intermediates/processed_res/debug/out/output-metadata.json b/src/app/build/intermediates/processed_res/debug/out/output-metadata.json
new file mode 100644
index 0000000..1eefece
--- /dev/null
+++ b/src/app/build/intermediates/processed_res/debug/out/output-metadata.json
@@ -0,0 +1,20 @@
+{
+ "version": 3,
+ "artifactType": {
+ "type": "PROCESSED_RES",
+ "kind": "Directory"
+ },
+ "applicationId": "net.micode.notes",
+ "variantName": "debug",
+ "elements": [
+ {
+ "type": "SINGLE",
+ "filters": [],
+ "attributes": [],
+ "versionCode": 1,
+ "versionName": "0.1",
+ "outputFile": "resources-debug.ap_"
+ }
+ ],
+ "elementType": "File"
+}
\ No newline at end of file
diff --git a/src/app/build/intermediates/processed_res/debug/out/resources-debug.ap_ b/src/app/build/intermediates/processed_res/debug/out/resources-debug.ap_
new file mode 100644
index 0000000..4ee3193
Binary files /dev/null and b/src/app/build/intermediates/processed_res/debug/out/resources-debug.ap_ differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/302b9309047f088d55a54ee8b3df65fdbfbebf7ace218426b86fb4f1cf3bbce6_5.jar b/src/app/build/intermediates/project_dex_archive/debug/out/302b9309047f088d55a54ee8b3df65fdbfbebf7ace218426b86fb4f1cf3bbce6_5.jar
new file mode 100644
index 0000000..999ddf7
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/302b9309047f088d55a54ee8b3df65fdbfbebf7ace218426b86fb4f1cf3bbce6_5.jar differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Contact.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Contact.dex
new file mode 100644
index 0000000..4a6ddbd
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Contact.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$CallNote.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$CallNote.dex
new file mode 100644
index 0000000..0c85f3e
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$CallNote.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataColumns.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataColumns.dex
new file mode 100644
index 0000000..2b0d946
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataColumns.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataConstants.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataConstants.dex
new file mode 100644
index 0000000..ff9c0f6
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataConstants.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$NoteColumns.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$NoteColumns.dex
new file mode 100644
index 0000000..d5476b5
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$NoteColumns.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$TextNote.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$TextNote.dex
new file mode 100644
index 0000000..6e9f543
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$TextNote.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes.dex
new file mode 100644
index 0000000..43a77a8
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper$TABLE.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper$TABLE.dex
new file mode 100644
index 0000000..6b4a469
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper$TABLE.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper.dex
new file mode 100644
index 0000000..869025a
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesProvider.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesProvider.dex
new file mode 100644
index 0000000..f560443
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesProvider.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/MetaData.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/MetaData.dex
new file mode 100644
index 0000000..2a5626c
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/MetaData.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Node.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Node.dex
new file mode 100644
index 0000000..64af024
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Node.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlData.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlData.dex
new file mode 100644
index 0000000..1c402ad
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlData.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlNote.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlNote.dex
new file mode 100644
index 0000000..374ea0b
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlNote.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Task.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Task.dex
new file mode 100644
index 0000000..002bd35
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Task.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/TaskList.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/TaskList.dex
new file mode 100644
index 0000000..36c1fd2
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/TaskList.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/ActionFailureException.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/ActionFailureException.dex
new file mode 100644
index 0000000..1ca0339
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/ActionFailureException.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/NetworkFailureException.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/NetworkFailureException.dex
new file mode 100644
index 0000000..d28e54b
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/NetworkFailureException.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$1.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$1.dex
new file mode 100644
index 0000000..9fbbc13
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$1.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.dex
new file mode 100644
index 0000000..64d96b3
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask.dex
new file mode 100644
index 0000000..b9b54df
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskClient.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskClient.dex
new file mode 100644
index 0000000..ff4a12d
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskClient.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskManager.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskManager.dex
new file mode 100644
index 0000000..9e151ad
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskManager.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService$1.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService$1.dex
new file mode 100644
index 0000000..66da673
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService$1.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService.dex
new file mode 100644
index 0000000..e0ca8b3
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note$NoteData.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note$NoteData.dex
new file mode 100644
index 0000000..2135b9c
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note$NoteData.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note.dex
new file mode 100644
index 0000000..c08f504
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.dex
new file mode 100644
index 0000000..5fd517e
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote.dex
new file mode 100644
index 0000000..893546a
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils$TextExport.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils$TextExport.dex
new file mode 100644
index 0000000..b295dcf
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils$TextExport.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils.dex
new file mode 100644
index 0000000..9d50a1f
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/DataUtils.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/DataUtils.dex
new file mode 100644
index 0000000..65b41f6
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/DataUtils.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/GTaskStringUtils.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/GTaskStringUtils.dex
new file mode 100644
index 0000000..7b39c5c
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/GTaskStringUtils.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteBgResources.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteBgResources.dex
new file mode 100644
index 0000000..22fa0e5
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteBgResources.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteItemBgResources.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteItemBgResources.dex
new file mode 100644
index 0000000..0876d41
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteItemBgResources.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$TextAppearanceResources.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$TextAppearanceResources.dex
new file mode 100644
index 0000000..b2fe5e3
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$TextAppearanceResources.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$WidgetBgResources.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$WidgetBgResources.dex
new file mode 100644
index 0000000..fea1c58
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$WidgetBgResources.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser.dex
new file mode 100644
index 0000000..730200c
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmAlertActivity.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmAlertActivity.dex
new file mode 100644
index 0000000..a16813b
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmAlertActivity.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmInitReceiver.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmInitReceiver.dex
new file mode 100644
index 0000000..ee61991
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmInitReceiver.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmReceiver.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmReceiver.dex
new file mode 100644
index 0000000..4a9833f
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmReceiver.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$1.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$1.dex
new file mode 100644
index 0000000..b535b9e
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$1.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$2.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$2.dex
new file mode 100644
index 0000000..f0acd5e
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$2.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$3.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$3.dex
new file mode 100644
index 0000000..c7c6f17
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$3.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$4.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$4.dex
new file mode 100644
index 0000000..753040c
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$4.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.dex
new file mode 100644
index 0000000..e26f40f
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker.dex
new file mode 100644
index 0000000..736f30b
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$1.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$1.dex
new file mode 100644
index 0000000..379d253
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$1.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.dex
new file mode 100644
index 0000000..b8ecb0a
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog.dex
new file mode 100644
index 0000000..e677e2b
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu$1.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu$1.dex
new file mode 100644
index 0000000..a355446
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu$1.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu.dex
new file mode 100644
index 0000000..cfd9d91
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter$FolderListItem.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter$FolderListItem.dex
new file mode 100644
index 0000000..740dba7
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter$FolderListItem.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter.dex
new file mode 100644
index 0000000..99fc361
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$1.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$1.dex
new file mode 100644
index 0000000..a57af7c
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$1.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$10.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$10.dex
new file mode 100644
index 0000000..fb460d5
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$10.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$11.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$11.dex
new file mode 100644
index 0000000..20bb45b
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$11.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$12.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$12.dex
new file mode 100644
index 0000000..675df34
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$12.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$13.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$13.dex
new file mode 100644
index 0000000..c6da2d5
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$13.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$14.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$14.dex
new file mode 100644
index 0000000..90ddcce
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$14.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$15.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$15.dex
new file mode 100644
index 0000000..c53822e
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$15.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$16.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$16.dex
new file mode 100644
index 0000000..c711f16
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$16.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$17.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$17.dex
new file mode 100644
index 0000000..5e00513
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$17.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$2.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$2.dex
new file mode 100644
index 0000000..6aa3086
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$2.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$3.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$3.dex
new file mode 100644
index 0000000..e758c81
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$3.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$4.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$4.dex
new file mode 100644
index 0000000..3bb58b9
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$4.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$5.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$5.dex
new file mode 100644
index 0000000..3930afc
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$5.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$6.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$6.dex
new file mode 100644
index 0000000..cfa2c7b
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$6.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$7.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$7.dex
new file mode 100644
index 0000000..139ac8b
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$7.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$8.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$8.dex
new file mode 100644
index 0000000..0f20544
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$8.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$9.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$9.dex
new file mode 100644
index 0000000..f4eb8cc
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$9.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.dex
new file mode 100644
index 0000000..8b90416
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity.dex
new file mode 100644
index 0000000..deedcc9
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$1.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$1.dex
new file mode 100644
index 0000000..097218f
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$1.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.dex
new file mode 100644
index 0000000..ff32b28
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText.dex
new file mode 100644
index 0000000..9cb7cad
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteItemData.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteItemData.dex
new file mode 100644
index 0000000..c66805f
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteItemData.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$1.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$1.dex
new file mode 100644
index 0000000..ee303c5
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$1.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$2.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$2.dex
new file mode 100644
index 0000000..2d6c690
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$2.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$3.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$3.dex
new file mode 100644
index 0000000..a027228
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$3.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$4.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$4.dex
new file mode 100644
index 0000000..ba530ee
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$4.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$5.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$5.dex
new file mode 100644
index 0000000..ea30cbe
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$5.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$6.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$6.dex
new file mode 100644
index 0000000..e3a0464
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$6.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$7.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$7.dex
new file mode 100644
index 0000000..7cb63b6
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$7.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$8.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$8.dex
new file mode 100644
index 0000000..5191dba
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$8.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$9.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$9.dex
new file mode 100644
index 0000000..c460d0a
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$9.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.dex
new file mode 100644
index 0000000..6b3c811
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ListEditState.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ListEditState.dex
new file mode 100644
index 0000000..83194ec
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ListEditState.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$1.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$1.dex
new file mode 100644
index 0000000..3547f03
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$1.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$2.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$2.dex
new file mode 100644
index 0000000..fea62f2
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$2.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback.dex
new file mode 100644
index 0000000..7b3af31
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.dex
new file mode 100644
index 0000000..a6d8979
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.dex
new file mode 100644
index 0000000..04b62ec
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity.dex
new file mode 100644
index 0000000..ba95eb1
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.dex
new file mode 100644
index 0000000..b2e4069
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter.dex
new file mode 100644
index 0000000..3456bf5
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListItem.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListItem.dex
new file mode 100644
index 0000000..990465b
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListItem.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$1.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$1.dex
new file mode 100644
index 0000000..7f8339b
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$1.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$2.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$2.dex
new file mode 100644
index 0000000..c665855
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$2.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$3.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$3.dex
new file mode 100644
index 0000000..afc2167
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$3.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$4.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$4.dex
new file mode 100644
index 0000000..c75dcff
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$4.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$5.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$5.dex
new file mode 100644
index 0000000..5a37d5a
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$5.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$6.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$6.dex
new file mode 100644
index 0000000..d79be5e
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$6.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$7.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$7.dex
new file mode 100644
index 0000000..92aba60
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$7.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$8.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$8.dex
new file mode 100644
index 0000000..f42000d
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$8.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.dex
new file mode 100644
index 0000000..4303e64
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity.dex
new file mode 100644
index 0000000..3fc4977
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider.dex
new file mode 100644
index 0000000..ea0e4da
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_2x.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_2x.dex
new file mode 100644
index 0000000..8310109
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_2x.dex differ
diff --git a/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_4x.dex b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_4x.dex
new file mode 100644
index 0000000..d5d0f8d
Binary files /dev/null and b/src/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_4x.dex differ
diff --git a/src/app/build/intermediates/runtime_symbol_list/debug/R.txt b/src/app/build/intermediates/runtime_symbol_list/debug/R.txt
new file mode 100644
index 0000000..9a2553f
--- /dev/null
+++ b/src/app/build/intermediates/runtime_symbol_list/debug/R.txt
@@ -0,0 +1,315 @@
+int array format_for_exported_note 0x7f010000
+int array menu_share_ways 0x7f010001
+int color primary_text_dark 0x7f020000
+int color secondary_text_dark 0x7f020001
+int color user_query_highlight 0x7f020002
+int dimen text_font_size_large 0x7f030000
+int dimen text_font_size_medium 0x7f030001
+int dimen text_font_size_normal 0x7f030002
+int dimen text_font_size_small 0x7f030003
+int dimen text_font_size_super 0x7f030004
+int drawable a1 0x7f040000
+int drawable a2 0x7f040001
+int drawable a3 0x7f040002
+int drawable a4 0x7f040003
+int drawable bg_btn_set_color 0x7f040004
+int drawable bg_color_btn_mask 0x7f040005
+int drawable call_record 0x7f040006
+int drawable clock 0x7f040007
+int drawable delete 0x7f040008
+int drawable dropdown_icon 0x7f040009
+int drawable edit_blue 0x7f04000a
+int drawable edit_green 0x7f04000b
+int drawable edit_red 0x7f04000c
+int drawable edit_title_blue 0x7f04000d
+int drawable edit_title_green 0x7f04000e
+int drawable edit_title_red 0x7f04000f
+int drawable edit_title_white 0x7f040010
+int drawable edit_title_yellow 0x7f040011
+int drawable edit_white 0x7f040012
+int drawable edit_yellow 0x7f040013
+int drawable font_large 0x7f040014
+int drawable font_normal 0x7f040015
+int drawable font_size_selector_bg 0x7f040016
+int drawable font_small 0x7f040017
+int drawable font_super 0x7f040018
+int drawable g780 0x7f040019
+int drawable gao 0x7f04001a
+int drawable icon_app 0x7f04001b
+int drawable list_background 0x7f04001c
+int drawable list_blue_down 0x7f04001d
+int drawable list_blue_middle 0x7f04001e
+int drawable list_blue_single 0x7f04001f
+int drawable list_blue_up 0x7f040020
+int drawable list_folder 0x7f040021
+int drawable list_footer_bg 0x7f040022
+int drawable list_green_down 0x7f040023
+int drawable list_green_middle 0x7f040024
+int drawable list_green_single 0x7f040025
+int drawable list_green_up 0x7f040026
+int drawable list_red_down 0x7f040027
+int drawable list_red_middle 0x7f040028
+int drawable list_red_single 0x7f040029
+int drawable list_red_up 0x7f04002a
+int drawable list_white_down 0x7f04002b
+int drawable list_white_middle 0x7f04002c
+int drawable list_white_single 0x7f04002d
+int drawable list_white_up 0x7f04002e
+int drawable list_yellow_down 0x7f04002f
+int drawable list_yellow_middle 0x7f040030
+int drawable list_yellow_single 0x7f040031
+int drawable list_yellow_up 0x7f040032
+int drawable menu_delete 0x7f040033
+int drawable menu_move 0x7f040034
+int drawable new_note 0x7f040035
+int drawable new_note_normal 0x7f040036
+int drawable new_note_pressed 0x7f040037
+int drawable note_edit_color_selector_panel 0x7f040038
+int drawable notification 0x7f040039
+int drawable search_result 0x7f04003a
+int drawable selected 0x7f04003b
+int drawable title_alert 0x7f04003c
+int drawable title_bar_bg 0x7f04003d
+int drawable widget_2x_blue 0x7f04003e
+int drawable widget_2x_green 0x7f04003f
+int drawable widget_2x_red 0x7f040040
+int drawable widget_2x_white 0x7f040041
+int drawable widget_2x_yellow 0x7f040042
+int drawable widget_4x_blue 0x7f040043
+int drawable widget_4x_green 0x7f040044
+int drawable widget_4x_red 0x7f040045
+int drawable widget_4x_white 0x7f040046
+int drawable widget_4x_yellow 0x7f040047
+int id account_dialog_subtitle 0x7f050000
+int id account_dialog_title 0x7f050001
+int id action_bold 0x7f050002
+int id action_italic 0x7f050003
+int id action_other 0x7f050004
+int id action_select_all 0x7f050005
+int id add_img_btn 0x7f050006
+int id add_img_menu_move 0x7f050007
+int id amPm 0x7f050008
+int id btn_new_note 0x7f050009
+int id btn_set_bg_color 0x7f05000a
+int id cb_edit_item 0x7f05000b
+int id date 0x7f05000c
+int id delete 0x7f05000d
+int id et_edit_text 0x7f05000e
+int id et_foler_name 0x7f05000f
+int id font_size_selector 0x7f050010
+int id hour 0x7f050011
+int id iv_alert_icon 0x7f050012
+int id iv_bg_blue 0x7f050013
+int id iv_bg_blue_select 0x7f050014
+int id iv_bg_green 0x7f050015
+int id iv_bg_green_select 0x7f050016
+int id iv_bg_red 0x7f050017
+int id iv_bg_red_select 0x7f050018
+int id iv_bg_white 0x7f050019
+int id iv_bg_white_select 0x7f05001a
+int id iv_bg_yellow 0x7f05001b
+int id iv_bg_yellow_select 0x7f05001c
+int id iv_large_select 0x7f05001d
+int id iv_medium_select 0x7f05001e
+int id iv_small_select 0x7f05001f
+int id iv_super_select 0x7f050020
+int id ll_font_large 0x7f050021
+int id ll_font_normal 0x7f050022
+int id ll_font_small 0x7f050023
+int id ll_font_super 0x7f050024
+int id menu_alert 0x7f050025
+int id menu_bg_g780 0x7f050026
+int id menu_bg_gao 0x7f050027
+int id menu_delete 0x7f050028
+int id menu_delete_key 0x7f05004c
+int id menu_delete_passcode 0x7f050029
+int id menu_delete_remind 0x7f05002a
+int id menu_export_text 0x7f05002b
+int id menu_font_select 0x7f050050
+int id menu_font_size 0x7f05002c
+int id menu_list_mode 0x7f05002d
+int id menu_new_folder 0x7f05002e
+int id menu_new_note 0x7f05002f
+int id menu_revoke 0x7f050052
+int id menu_search 0x7f050030
+int id menu_send_to_desktop 0x7f050031
+int id menu_set_key 0x7f05004d
+int id menu_set_passcode 0x7f050032
+int id menu_setting 0x7f050033
+int id menu_share 0x7f050034
+int id menu_sync 0x7f050035
+int id menu_voice_read 0x7f05004f
+int id minute 0x7f050036
+int id move 0x7f050037
+int id navigation_bar 0x7f050038
+int id no_change 0x7f05004e
+int id note_bg_color_selector 0x7f050039
+int id note_edit_list 0x7f05003a
+int id note_edit_view 0x7f05003b
+int id note_item 0x7f05003c
+int id note_title 0x7f05003d
+int id notes_list 0x7f05003e
+int id prefenerece_sync_status_textview 0x7f05003f
+int id preference_sync_button 0x7f050040
+int id selection_menu 0x7f050041
+int id sv_note_edit 0x7f050042
+int id text_num 0x7f050051
+int id tv_alert_date 0x7f050043
+int id tv_folder_name 0x7f050044
+int id tv_modified_date 0x7f050045
+int id tv_name 0x7f050046
+int id tv_time 0x7f050047
+int id tv_title 0x7f050048
+int id tv_title_bar 0x7f050049
+int id widget_bg_image 0x7f05004a
+int id widget_text 0x7f05004b
+int layout account_dialog_title 0x7f060000
+int layout add_account_text 0x7f060001
+int layout datetime_picker 0x7f060002
+int layout dialog_edit_text 0x7f060003
+int layout folder_list_item 0x7f060004
+int layout note_edit 0x7f060005
+int layout note_edit_list_item 0x7f060006
+int layout note_item 0x7f060007
+int layout note_list 0x7f060008
+int layout note_list_dropdown_menu 0x7f060009
+int layout note_list_footer 0x7f06000a
+int layout settings_header 0x7f06000b
+int layout widget_2x 0x7f06000c
+int layout widget_4x 0x7f06000d
+int menu call_note_edit 0x7f070000
+int menu call_record_folder 0x7f070001
+int menu note_edit 0x7f070002
+int menu note_list 0x7f070003
+int menu note_list_dropdown 0x7f070004
+int menu note_list_options 0x7f070005
+int menu sub_folder 0x7f070006
+int plurals search_results_title 0x7f080000
+int raw introduction 0x7f090000
+int string alert_message_delete_folder 0x7f0a0000
+int string alert_message_delete_note 0x7f0a0001
+int string alert_message_delete_notes 0x7f0a0002
+int string alert_title_delete 0x7f0a0003
+int string app_name 0x7f0a0004
+int string app_widget2x2 0x7f0a0005
+int string app_widget4x4 0x7f0a0006
+int string button_delete 0x7f0a0007
+int string call_record_folder_name 0x7f0a0008
+int string can_not_revoke 0x7f0a006c
+int string datetime_dialog_cancel 0x7f0a0009
+int string datetime_dialog_ok 0x7f0a000a
+int string delete_remind_time_message 0x7f0a000b
+int string error_note_empty_for_clock 0x7f0a000c
+int string error_note_empty_for_send_to_desktop 0x7f0a000d
+int string error_note_not_exist 0x7f0a000e
+int string error_sdcard_export 0x7f0a000f
+int string error_sdcard_unmounted 0x7f0a0010
+int string error_sync_cancelled 0x7f0a0011
+int string error_sync_internal 0x7f0a0012
+int string error_sync_network 0x7f0a0013
+int string failed_sdcard_export 0x7f0a0014
+int string file_name_txt_format 0x7f0a0015
+int string file_path 0x7f0a0016
+int string folder_exist 0x7f0a0017
+int string format_date_ymd 0x7f0a0018
+int string format_datetime_mdhm 0x7f0a0019
+int string format_exported_file_location 0x7f0a001a
+int string format_folder_files_count 0x7f0a001b
+int string format_move_notes_to_folder 0x7f0a001c
+int string have_not_input_anything 0x7f0a006d
+int string hint_foler_name 0x7f0a001d
+int string ic_delete_passcode 0x7f0a001e
+int string ic_set_passcode 0x7f0a001f
+int string info_note_enter_desktop 0x7f0a0020
+int string menu_alert 0x7f0a0021
+int string menu_bg_g780 0x7f0a0022
+int string menu_bg_gao 0x7f0a0023
+int string menu_create_folder 0x7f0a0024
+int string menu_delete 0x7f0a0025
+int string menu_deselect_all 0x7f0a0026
+int string menu_export_text 0x7f0a0027
+int string menu_folder_change_name 0x7f0a0028
+int string menu_folder_delete 0x7f0a0029
+int string menu_folder_view 0x7f0a002a
+int string menu_font_large 0x7f0a002b
+int string menu_font_normal 0x7f0a002c
+int string menu_font_select 0x7f0a006b
+int string menu_font_size 0x7f0a002d
+int string menu_font_small 0x7f0a002e
+int string menu_font_super 0x7f0a002f
+int string menu_list_mode 0x7f0a0030
+int string menu_move 0x7f0a0031
+int string menu_move_parent_folder 0x7f0a0032
+int string menu_normal_mode 0x7f0a0033
+int string menu_remove_remind 0x7f0a0034
+int string menu_revoke 0x7f0a006e
+int string menu_search 0x7f0a0035
+int string menu_select_all 0x7f0a0036
+int string menu_select_none 0x7f0a0037
+int string menu_select_title 0x7f0a0038
+int string menu_send_to_desktop 0x7f0a0039
+int string menu_setting 0x7f0a003a
+int string menu_share 0x7f0a003b
+int string menu_sync 0x7f0a003c
+int string menu_sync_cancel 0x7f0a003d
+int string menu_title_select_folder 0x7f0a003e
+int string menu_voice_read 0x7f0a006a
+int string note_alert_expired 0x7f0a003f
+int string note_link_email 0x7f0a0040
+int string note_link_other 0x7f0a0041
+int string note_link_tel 0x7f0a0042
+int string note_link_web 0x7f0a0043
+int string notealert_enter 0x7f0a0044
+int string notealert_ok 0x7f0a0045
+int string notelist_menu_new 0x7f0a0046
+int string notelist_string_info 0x7f0a0047
+int string preferences_account_summary 0x7f0a0048
+int string preferences_account_title 0x7f0a0049
+int string preferences_add_account 0x7f0a004a
+int string preferences_bg_random_appear_title 0x7f0a004b
+int string preferences_button_sync_cancel 0x7f0a004c
+int string preferences_button_sync_immediately 0x7f0a004d
+int string preferences_dialog_change_account_title 0x7f0a004e
+int string preferences_dialog_change_account_warn_msg 0x7f0a004f
+int string preferences_dialog_select_account_tips 0x7f0a0050
+int string preferences_dialog_select_account_title 0x7f0a0051
+int string preferences_last_sync_time 0x7f0a0052
+int string preferences_last_sync_time_format 0x7f0a0053
+int string preferences_menu_cancel 0x7f0a0054
+int string preferences_menu_change_account 0x7f0a0055
+int string preferences_menu_remove_account 0x7f0a0056
+int string preferences_title 0x7f0a0057
+int string preferences_toast_cannot_change_account 0x7f0a0058
+int string preferences_toast_success_set_accout 0x7f0a0059
+int string search 0x7f0a005a
+int string search_hint 0x7f0a005b
+int string search_label 0x7f0a005c
+int string search_setting_description 0x7f0a005d
+int string set_remind_time_message 0x7f0a005e
+int string success_sdcard_export 0x7f0a005f
+int string success_sync_account 0x7f0a0060
+int string sync_progress_init_list 0x7f0a0061
+int string sync_progress_login 0x7f0a0062
+int string sync_progress_syncing 0x7f0a0063
+int string ticker_cancel 0x7f0a0064
+int string ticker_fail 0x7f0a0065
+int string ticker_success 0x7f0a0066
+int string ticker_syncing 0x7f0a0067
+int string tips_of_revoke 0x7f0a006f
+int string widget_havenot_content 0x7f0a0068
+int string widget_under_visit_mode 0x7f0a0069
+int style HighlightTextAppearancePrimary 0x7f0b0000
+int style HighlightTextAppearanceSecondary 0x7f0b0001
+int style NoteActionBarStyle 0x7f0b0002
+int style NoteTheme 0x7f0b0003
+int style TextAppearanceLarge 0x7f0b0004
+int style TextAppearanceMedium 0x7f0b0005
+int style TextAppearanceNormal 0x7f0b0006
+int style TextAppearancePrimaryItem 0x7f0b0007
+int style TextAppearanceSecondaryItem 0x7f0b0008
+int style TextAppearanceSuper 0x7f0b0009
+int style TextAppearanceUnderMenuIcon 0x7f0b000a
+int xml preferences 0x7f0c0000
+int xml searchable 0x7f0c0001
+int xml widget_2x_info 0x7f0c0002
+int xml widget_4x_info 0x7f0c0003
diff --git a/src/app/build/intermediates/signing_config_versions/debug/signing-config-versions.json b/src/app/build/intermediates/signing_config_versions/debug/signing-config-versions.json
new file mode 100644
index 0000000..1920ca8
--- /dev/null
+++ b/src/app/build/intermediates/signing_config_versions/debug/signing-config-versions.json
@@ -0,0 +1 @@
+{"enableV1Signing":true,"enableV2Signing":false,"enableV3Signing":false,"enableV4Signing":false}
\ No newline at end of file
diff --git a/src/app/build/intermediates/source_set_path_map/debug/file-map.txt b/src/app/build/intermediates/source_set_path_map/debug/file-map.txt
new file mode 100644
index 0000000..be7be65
--- /dev/null
+++ b/src/app/build/intermediates/source_set_path_map/debug/file-map.txt
@@ -0,0 +1,7 @@
+net.micode.notes.app-pngs-0 D:\note1\app\build\generated\res\pngs\debug
+net.micode.notes.app-resValues-1 D:\note1\app\build\generated\res\resValues\debug
+net.micode.notes.app-packageDebugResources-2 D:\note1\app\build\intermediates\incremental\debug\packageDebugResources\merged.dir
+net.micode.notes.app-packageDebugResources-3 D:\note1\app\build\intermediates\incremental\debug\packageDebugResources\stripped.dir
+net.micode.notes.app-merged_res-4 D:\note1\app\build\intermediates\merged_res\debug
+net.micode.notes.app-debug-5 D:\note1\app\src\debug\res
+net.micode.notes.app-main-6 D:\note1\app\src\main\res
diff --git a/src/app/build/intermediates/stable_resource_ids_file/debug/stableIds.txt b/src/app/build/intermediates/stable_resource_ids_file/debug/stableIds.txt
new file mode 100644
index 0000000..03ff5d9
--- /dev/null
+++ b/src/app/build/intermediates/stable_resource_ids_file/debug/stableIds.txt
@@ -0,0 +1,315 @@
+net.micode.notes:string/preferences_menu_change_account = 0x7f0a0055
+net.micode.notes:string/menu_revoke = 0x7f0a006e
+net.micode.notes:string/menu_sync = 0x7f0a003c
+net.micode.notes:id/move = 0x7f050037
+net.micode.notes:string/menu_font_select = 0x7f0a006b
+net.micode.notes:string/tips_of_revoke = 0x7f0a006f
+net.micode.notes:string/search_hint = 0x7f0a005b
+net.micode.notes:string/search = 0x7f0a005a
+net.micode.notes:string/search_setting_description = 0x7f0a005d
+net.micode.notes:string/note_link_other = 0x7f0a0041
+net.micode.notes:string/preferences_last_sync_time = 0x7f0a0052
+net.micode.notes:string/preferences_title = 0x7f0a0057
+net.micode.notes:style/HighlightTextAppearanceSecondary = 0x7f0b0001
+net.micode.notes:string/error_sdcard_unmounted = 0x7f0a0010
+net.micode.notes:xml/preferences = 0x7f0c0000
+net.micode.notes:string/preferences_toast_success_set_accout = 0x7f0a0059
+net.micode.notes:string/menu_setting = 0x7f0a003a
+net.micode.notes:string/preferences_dialog_change_account_title = 0x7f0a004e
+net.micode.notes:id/navigation_bar = 0x7f050038
+net.micode.notes:string/widget_under_visit_mode = 0x7f0a0069
+net.micode.notes:string/menu_export_text = 0x7f0a0027
+net.micode.notes:drawable/edit_title_white = 0x7f040010
+net.micode.notes:string/menu_normal_mode = 0x7f0a0033
+net.micode.notes:id/account_dialog_subtitle = 0x7f050000
+net.micode.notes:string/menu_send_to_desktop = 0x7f0a0039
+net.micode.notes:string/menu_create_folder = 0x7f0a0024
+net.micode.notes:id/menu_send_to_desktop = 0x7f050031
+net.micode.notes:style/TextAppearanceMedium = 0x7f0b0005
+net.micode.notes:id/preference_sync_button = 0x7f050040
+net.micode.notes:string/menu_font_size = 0x7f0a002d
+net.micode.notes:string/info_note_enter_desktop = 0x7f0a0020
+net.micode.notes:string/menu_deselect_all = 0x7f0a0026
+net.micode.notes:menu/note_list = 0x7f070003
+net.micode.notes:string/menu_folder_change_name = 0x7f0a0028
+net.micode.notes:string/menu_sync_cancel = 0x7f0a003d
+net.micode.notes:string/note_alert_expired = 0x7f0a003f
+net.micode.notes:dimen/text_font_size_large = 0x7f030000
+net.micode.notes:id/ll_font_super = 0x7f050024
+net.micode.notes:id/menu_list_mode = 0x7f05002d
+net.micode.notes:style/TextAppearanceSuper = 0x7f0b0009
+net.micode.notes:string/menu_bg_gao = 0x7f0a0023
+net.micode.notes:string/note_link_tel = 0x7f0a0042
+net.micode.notes:string/datetime_dialog_cancel = 0x7f0a0009
+net.micode.notes:layout/note_item = 0x7f060007
+net.micode.notes:menu/sub_folder = 0x7f070006
+net.micode.notes:string/sync_progress_login = 0x7f0a0062
+net.micode.notes:string/menu_font_normal = 0x7f0a002c
+net.micode.notes:string/menu_font_small = 0x7f0a002e
+net.micode.notes:drawable/widget_4x_blue = 0x7f040043
+net.micode.notes:string/preferences_account_title = 0x7f0a0049
+net.micode.notes:string/menu_remove_remind = 0x7f0a0034
+net.micode.notes:string/menu_font_large = 0x7f0a002b
+net.micode.notes:string/menu_bg_g780 = 0x7f0a0022
+net.micode.notes:string/ic_delete_passcode = 0x7f0a001e
+net.micode.notes:id/menu_setting = 0x7f050033
+net.micode.notes:id/menu_bg_gao = 0x7f050027
+net.micode.notes:string/format_folder_files_count = 0x7f0a001b
+net.micode.notes:xml/searchable = 0x7f0c0001
+net.micode.notes:string/note_link_email = 0x7f0a0040
+net.micode.notes:string/preferences_dialog_change_account_warn_msg = 0x7f0a004f
+net.micode.notes:string/menu_select_all = 0x7f0a0036
+net.micode.notes:style/TextAppearanceLarge = 0x7f0b0004
+net.micode.notes:string/menu_search = 0x7f0a0035
+net.micode.notes:id/menu_font_select = 0x7f050050
+net.micode.notes:id/tv_alert_date = 0x7f050043
+net.micode.notes:string/menu_voice_read = 0x7f0a006a
+net.micode.notes:id/note_bg_color_selector = 0x7f050039
+net.micode.notes:string/format_exported_file_location = 0x7f0a001a
+net.micode.notes:string/ic_set_passcode = 0x7f0a001f
+net.micode.notes:style/TextAppearancePrimaryItem = 0x7f0b0007
+net.micode.notes:xml/widget_2x_info = 0x7f0c0002
+net.micode.notes:xml/widget_4x_info = 0x7f0c0003
+net.micode.notes:string/set_remind_time_message = 0x7f0a005e
+net.micode.notes:string/notealert_enter = 0x7f0a0044
+net.micode.notes:string/delete_remind_time_message = 0x7f0a000b
+net.micode.notes:string/success_sdcard_export = 0x7f0a005f
+net.micode.notes:string/format_move_notes_to_folder = 0x7f0a001c
+net.micode.notes:string/can_not_revoke = 0x7f0a006c
+net.micode.notes:string/preferences_account_summary = 0x7f0a0048
+net.micode.notes:string/format_date_ymd = 0x7f0a0018
+net.micode.notes:drawable/widget_4x_yellow = 0x7f040047
+net.micode.notes:drawable/widget_2x_red = 0x7f040040
+net.micode.notes:string/file_name_txt_format = 0x7f0a0015
+net.micode.notes:string/failed_sdcard_export = 0x7f0a0014
+net.micode.notes:string/menu_select_none = 0x7f0a0037
+net.micode.notes:id/notes_list = 0x7f05003e
+net.micode.notes:string/error_sync_network = 0x7f0a0013
+net.micode.notes:string/menu_share = 0x7f0a003b
+net.micode.notes:drawable/widget_4x_green = 0x7f040044
+net.micode.notes:style/TextAppearanceSecondaryItem = 0x7f0b0008
+net.micode.notes:string/error_sdcard_export = 0x7f0a000f
+net.micode.notes:id/menu_delete_key = 0x7f05004c
+net.micode.notes:id/menu_delete_passcode = 0x7f050029
+net.micode.notes:string/preferences_menu_remove_account = 0x7f0a0056
+net.micode.notes:string/button_delete = 0x7f0a0007
+net.micode.notes:style/TextAppearanceNormal = 0x7f0b0006
+net.micode.notes:id/iv_bg_yellow_select = 0x7f05001c
+net.micode.notes:drawable/widget_2x_yellow = 0x7f040042
+net.micode.notes:id/amPm = 0x7f050008
+net.micode.notes:string/success_sync_account = 0x7f0a0060
+net.micode.notes:string/note_link_web = 0x7f0a0043
+net.micode.notes:id/menu_sync = 0x7f050035
+net.micode.notes:string/menu_move_parent_folder = 0x7f0a0032
+net.micode.notes:string/notealert_ok = 0x7f0a0045
+net.micode.notes:string/error_note_empty_for_clock = 0x7f0a000c
+net.micode.notes:id/tv_title = 0x7f050048
+net.micode.notes:string/app_name = 0x7f0a0004
+net.micode.notes:string/app_widget2x2 = 0x7f0a0005
+net.micode.notes:string/ticker_fail = 0x7f0a0065
+net.micode.notes:string/preferences_dialog_select_account_tips = 0x7f0a0050
+net.micode.notes:string/search_label = 0x7f0a005c
+net.micode.notes:string/alert_title_delete = 0x7f0a0003
+net.micode.notes:string/widget_havenot_content = 0x7f0a0068
+net.micode.notes:string/alert_message_delete_note = 0x7f0a0001
+net.micode.notes:string/alert_message_delete_folder = 0x7f0a0000
+net.micode.notes:string/format_datetime_mdhm = 0x7f0a0019
+net.micode.notes:string/preferences_add_account = 0x7f0a004a
+net.micode.notes:raw/introduction = 0x7f090000
+net.micode.notes:menu/call_record_folder = 0x7f070001
+net.micode.notes:string/datetime_dialog_ok = 0x7f0a000a
+net.micode.notes:drawable/menu_move = 0x7f040034
+net.micode.notes:id/menu_search = 0x7f050030
+net.micode.notes:string/ticker_syncing = 0x7f0a0067
+net.micode.notes:menu/call_note_edit = 0x7f070000
+net.micode.notes:string/preferences_last_sync_time_format = 0x7f0a0053
+net.micode.notes:style/TextAppearanceUnderMenuIcon = 0x7f0b000a
+net.micode.notes:id/menu_revoke = 0x7f050052
+net.micode.notes:drawable/list_red_middle = 0x7f040028
+net.micode.notes:layout/widget_2x = 0x7f06000c
+net.micode.notes:layout/widget_4x = 0x7f06000d
+net.micode.notes:layout/note_list_dropdown_menu = 0x7f060009
+net.micode.notes:string/error_sync_cancelled = 0x7f0a0011
+net.micode.notes:drawable/list_red_single = 0x7f040029
+net.micode.notes:string/ticker_cancel = 0x7f0a0064
+net.micode.notes:drawable/icon_app = 0x7f04001b
+net.micode.notes:layout/note_list = 0x7f060008
+net.micode.notes:string/sync_progress_init_list = 0x7f0a0061
+net.micode.notes:layout/add_account_text = 0x7f060001
+net.micode.notes:id/btn_new_note = 0x7f050009
+net.micode.notes:id/widget_text = 0x7f05004b
+net.micode.notes:id/widget_bg_image = 0x7f05004a
+net.micode.notes:string/menu_folder_delete = 0x7f0a0029
+net.micode.notes:id/tv_name = 0x7f050046
+net.micode.notes:id/account_dialog_title = 0x7f050001
+net.micode.notes:id/tv_folder_name = 0x7f050044
+net.micode.notes:color/primary_text_dark = 0x7f020000
+net.micode.notes:id/tv_time = 0x7f050047
+net.micode.notes:id/selection_menu = 0x7f050041
+net.micode.notes:id/ll_font_small = 0x7f050023
+net.micode.notes:id/menu_share = 0x7f050034
+net.micode.notes:string/menu_move = 0x7f0a0031
+net.micode.notes:id/date = 0x7f05000c
+net.micode.notes:id/note_item = 0x7f05003c
+net.micode.notes:style/HighlightTextAppearancePrimary = 0x7f0b0000
+net.micode.notes:drawable/font_size_selector_bg = 0x7f040016
+net.micode.notes:id/note_edit_view = 0x7f05003b
+net.micode.notes:string/preferences_dialog_select_account_title = 0x7f0a0051
+net.micode.notes:id/menu_font_size = 0x7f05002c
+net.micode.notes:id/menu_bg_g780 = 0x7f050026
+net.micode.notes:drawable/list_white_middle = 0x7f04002c
+net.micode.notes:string/preferences_button_sync_cancel = 0x7f0a004c
+net.micode.notes:id/menu_alert = 0x7f050025
+net.micode.notes:string/error_note_not_exist = 0x7f0a000e
+net.micode.notes:string/error_note_empty_for_send_to_desktop = 0x7f0a000d
+net.micode.notes:id/minute = 0x7f050036
+net.micode.notes:id/ll_font_normal = 0x7f050022
+net.micode.notes:id/no_change = 0x7f05004e
+net.micode.notes:id/hour = 0x7f050011
+net.micode.notes:id/ll_font_large = 0x7f050021
+net.micode.notes:id/iv_super_select = 0x7f050020
+net.micode.notes:string/preferences_button_sync_immediately = 0x7f0a004d
+net.micode.notes:string/ticker_success = 0x7f0a0066
+net.micode.notes:id/iv_medium_select = 0x7f05001e
+net.micode.notes:id/iv_large_select = 0x7f05001d
+net.micode.notes:drawable/bg_btn_set_color = 0x7f040004
+net.micode.notes:id/iv_bg_yellow = 0x7f05001b
+net.micode.notes:layout/account_dialog_title = 0x7f060000
+net.micode.notes:id/iv_bg_red_select = 0x7f050018
+net.micode.notes:drawable/menu_delete = 0x7f040033
+net.micode.notes:string/notelist_menu_new = 0x7f0a0046
+net.micode.notes:id/iv_bg_red = 0x7f050017
+net.micode.notes:id/iv_bg_green_select = 0x7f050016
+net.micode.notes:id/menu_new_note = 0x7f05002f
+net.micode.notes:drawable/list_green_single = 0x7f040025
+net.micode.notes:id/iv_alert_icon = 0x7f050012
+net.micode.notes:string/preferences_toast_cannot_change_account = 0x7f0a0058
+net.micode.notes:id/et_edit_text = 0x7f05000e
+net.micode.notes:string/app_widget4x4 = 0x7f0a0006
+net.micode.notes:drawable/title_bar_bg = 0x7f04003d
+net.micode.notes:id/add_img_menu_move = 0x7f050007
+net.micode.notes:layout/note_edit = 0x7f060005
+net.micode.notes:id/action_other = 0x7f050004
+net.micode.notes:id/font_size_selector = 0x7f050010
+net.micode.notes:color/user_query_highlight = 0x7f020002
+net.micode.notes:drawable/delete = 0x7f040008
+net.micode.notes:id/iv_bg_blue = 0x7f050013
+net.micode.notes:id/action_bold = 0x7f050002
+net.micode.notes:string/menu_select_title = 0x7f0a0038
+net.micode.notes:drawable/list_red_down = 0x7f040027
+net.micode.notes:string/menu_title_select_folder = 0x7f0a003e
+net.micode.notes:string/hint_foler_name = 0x7f0a001d
+net.micode.notes:id/menu_delete = 0x7f050028
+net.micode.notes:id/add_img_btn = 0x7f050006
+net.micode.notes:menu/note_list_dropdown = 0x7f070004
+net.micode.notes:drawable/list_footer_bg = 0x7f040022
+net.micode.notes:string/menu_delete = 0x7f0a0025
+net.micode.notes:drawable/edit_red = 0x7f04000c
+net.micode.notes:string/preferences_menu_cancel = 0x7f0a0054
+net.micode.notes:drawable/widget_2x_white = 0x7f040041
+net.micode.notes:drawable/list_background = 0x7f04001c
+net.micode.notes:string/alert_message_delete_notes = 0x7f0a0002
+net.micode.notes:drawable/widget_2x_blue = 0x7f04003e
+net.micode.notes:layout/folder_list_item = 0x7f060004
+net.micode.notes:id/action_italic = 0x7f050003
+net.micode.notes:drawable/search_result = 0x7f04003a
+net.micode.notes:drawable/selected = 0x7f04003b
+net.micode.notes:plurals/search_results_title = 0x7f080000
+net.micode.notes:drawable/edit_title_green = 0x7f04000e
+net.micode.notes:style/NoteTheme = 0x7f0b0003
+net.micode.notes:id/iv_bg_blue_select = 0x7f050014
+net.micode.notes:drawable/notification = 0x7f040039
+net.micode.notes:drawable/new_note_normal = 0x7f040036
+net.micode.notes:drawable/edit_white = 0x7f040012
+net.micode.notes:drawable/widget_2x_green = 0x7f04003f
+net.micode.notes:id/iv_bg_white = 0x7f050019
+net.micode.notes:drawable/bg_color_btn_mask = 0x7f040005
+net.micode.notes:drawable/list_yellow_up = 0x7f040032
+net.micode.notes:menu/note_edit = 0x7f070002
+net.micode.notes:id/iv_bg_green = 0x7f050015
+net.micode.notes:drawable/list_white_down = 0x7f04002b
+net.micode.notes:drawable/list_white_up = 0x7f04002e
+net.micode.notes:drawable/list_white_single = 0x7f04002d
+net.micode.notes:drawable/edit_title_red = 0x7f04000f
+net.micode.notes:id/tv_title_bar = 0x7f050049
+net.micode.notes:drawable/list_red_up = 0x7f04002a
+net.micode.notes:id/delete = 0x7f05000d
+net.micode.notes:layout/note_edit_list_item = 0x7f060006
+net.micode.notes:string/call_record_folder_name = 0x7f0a0008
+net.micode.notes:drawable/list_green_up = 0x7f040026
+net.micode.notes:array/menu_share_ways = 0x7f010001
+net.micode.notes:drawable/font_small = 0x7f040017
+net.micode.notes:id/btn_set_bg_color = 0x7f05000a
+net.micode.notes:id/prefenerece_sync_status_textview = 0x7f05003f
+net.micode.notes:id/et_foler_name = 0x7f05000f
+net.micode.notes:string/folder_exist = 0x7f0a0017
+net.micode.notes:id/note_edit_list = 0x7f05003a
+net.micode.notes:drawable/new_note = 0x7f040035
+net.micode.notes:id/menu_delete_remind = 0x7f05002a
+net.micode.notes:drawable/note_edit_color_selector_panel = 0x7f040038
+net.micode.notes:id/menu_export_text = 0x7f05002b
+net.micode.notes:menu/note_list_options = 0x7f070005
+net.micode.notes:drawable/widget_4x_white = 0x7f040046
+net.micode.notes:array/format_for_exported_note = 0x7f010000
+net.micode.notes:id/action_select_all = 0x7f050005
+net.micode.notes:string/menu_folder_view = 0x7f0a002a
+net.micode.notes:drawable/dropdown_icon = 0x7f040009
+net.micode.notes:string/notelist_string_info = 0x7f0a0047
+net.micode.notes:drawable/list_blue_single = 0x7f04001f
+net.micode.notes:dimen/text_font_size_normal = 0x7f030002
+net.micode.notes:layout/dialog_edit_text = 0x7f060003
+net.micode.notes:drawable/g780 = 0x7f040019
+net.micode.notes:color/secondary_text_dark = 0x7f020001
+net.micode.notes:drawable/list_folder = 0x7f040021
+net.micode.notes:drawable/list_green_middle = 0x7f040024
+net.micode.notes:drawable/a2 = 0x7f040001
+net.micode.notes:string/sync_progress_syncing = 0x7f0a0063
+net.micode.notes:drawable/font_normal = 0x7f040015
+net.micode.notes:drawable/list_blue_up = 0x7f040020
+net.micode.notes:id/note_title = 0x7f05003d
+net.micode.notes:drawable/gao = 0x7f04001a
+net.micode.notes:drawable/clock = 0x7f040007
+net.micode.notes:id/iv_small_select = 0x7f05001f
+net.micode.notes:drawable/list_blue_down = 0x7f04001d
+net.micode.notes:string/menu_alert = 0x7f0a0021
+net.micode.notes:string/error_sync_internal = 0x7f0a0012
+net.micode.notes:drawable/title_alert = 0x7f04003c
+net.micode.notes:drawable/list_green_down = 0x7f040023
+net.micode.notes:string/file_path = 0x7f0a0016
+net.micode.notes:drawable/font_large = 0x7f040014
+net.micode.notes:drawable/edit_yellow = 0x7f040013
+net.micode.notes:drawable/list_yellow_down = 0x7f04002f
+net.micode.notes:id/menu_set_passcode = 0x7f050032
+net.micode.notes:id/menu_voice_read = 0x7f05004f
+net.micode.notes:dimen/text_font_size_super = 0x7f030004
+net.micode.notes:drawable/list_yellow_single = 0x7f040031
+net.micode.notes:id/cb_edit_item = 0x7f05000b
+net.micode.notes:drawable/font_super = 0x7f040018
+net.micode.notes:drawable/edit_title_blue = 0x7f04000d
+net.micode.notes:id/tv_modified_date = 0x7f050045
+net.micode.notes:drawable/a4 = 0x7f040003
+net.micode.notes:id/menu_set_key = 0x7f05004d
+net.micode.notes:drawable/edit_blue = 0x7f04000a
+net.micode.notes:string/menu_list_mode = 0x7f0a0030
+net.micode.notes:drawable/list_yellow_middle = 0x7f040030
+net.micode.notes:drawable/list_blue_middle = 0x7f04001e
+net.micode.notes:dimen/text_font_size_medium = 0x7f030001
+net.micode.notes:drawable/new_note_pressed = 0x7f040037
+net.micode.notes:id/menu_new_folder = 0x7f05002e
+net.micode.notes:string/have_not_input_anything = 0x7f0a006d
+net.micode.notes:id/sv_note_edit = 0x7f050042
+net.micode.notes:id/text_num = 0x7f050051
+net.micode.notes:drawable/call_record = 0x7f040006
+net.micode.notes:drawable/edit_green = 0x7f04000b
+net.micode.notes:layout/settings_header = 0x7f06000b
+net.micode.notes:style/NoteActionBarStyle = 0x7f0b0002
+net.micode.notes:dimen/text_font_size_small = 0x7f030003
+net.micode.notes:string/preferences_bg_random_appear_title = 0x7f0a004b
+net.micode.notes:drawable/a3 = 0x7f040002
+net.micode.notes:drawable/a1 = 0x7f040000
+net.micode.notes:string/menu_font_super = 0x7f0a002f
+net.micode.notes:drawable/widget_4x_red = 0x7f040045
+net.micode.notes:id/iv_bg_white_select = 0x7f05001a
+net.micode.notes:drawable/edit_title_yellow = 0x7f040011
+net.micode.notes:layout/datetime_picker = 0x7f060002
+net.micode.notes:layout/note_list_footer = 0x7f06000a
diff --git a/src/app/build/intermediates/variant_model/debug/variant_model.json b/src/app/build/intermediates/variant_model/debug/variant_model.json
new file mode 100644
index 0000000..fbfb74a
Binary files /dev/null and b/src/app/build/intermediates/variant_model/debug/variant_model.json differ
diff --git a/src/app/build/outputs/logs/manifest-merger-debug-report.txt b/src/app/build/outputs/logs/manifest-merger-debug-report.txt
new file mode 100644
index 0000000..e280af9
--- /dev/null
+++ b/src/app/build/outputs/logs/manifest-merger-debug-report.txt
@@ -0,0 +1,224 @@
+-- Merging decision tree log ---
+manifest
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:18:1-150:12
+INJECTED from D:\note1\app\src\main\AndroidManifest.xml:18:1-150:12
+INJECTED from D:\note1\app\src\main\AndroidManifest.xml:18:1-150:12
+INJECTED from D:\note1\app\src\main\AndroidManifest.xml:18:1-150:12
+ package
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:19:5-31
+ INJECTED from D:\note1\app\src\main\AndroidManifest.xml
+ android:versionName
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:21:5-30
+ INJECTED from D:\note1\app\src\main\AndroidManifest.xml
+ xmlns:android
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:18:11-69
+ android:versionCode
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:20:5-28
+ INJECTED from D:\note1\app\src\main\AndroidManifest.xml
+uses-sdk
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:23:5-44
+INJECTED from D:\note1\app\src\main\AndroidManifest.xml:23:5-44
+INJECTED from D:\note1\app\src\main\AndroidManifest.xml:23:5-44
+ android:targetSdkVersion
+ INJECTED from D:\note1\app\src\main\AndroidManifest.xml
+ android:minSdkVersion
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:23:15-41
+ INJECTED from D:\note1\app\src\main\AndroidManifest.xml
+uses-permission#android.permission.WRITE_EXTERNAL_STORAGE
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:25:5-81
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:25:22-78
+uses-permission#com.android.launcher.permission.INSTALL_SHORTCUT
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:26:5-88
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:26:22-85
+uses-permission#android.permission.INTERNET
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:27:5-67
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:27:22-64
+uses-permission#android.permission.READ_CONTACTS
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:28:5-72
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:28:22-69
+uses-permission#android.permission.MANAGE_ACCOUNTS
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:29:5-74
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:29:22-71
+uses-permission#android.permission.AUTHENTICATE_ACCOUNTS
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:30:5-80
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:30:22-77
+uses-permission#android.permission.GET_ACCOUNTS
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:31:5-71
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:31:22-68
+uses-permission#android.permission.USE_CREDENTIALS
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:32:5-74
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:32:22-71
+uses-permission#android.permission.RECEIVE_BOOT_COMPLETED
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:33:5-81
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:33:22-78
+application
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:35:5-149:19
+ android:label
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:37:9-41
+ android:icon
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:36:9-42
+activity#net.micode.notes.ui.NotesListActivity
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:38:9-51:20
+ android:label
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:41:13-45
+ android:launchMode
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:42:13-43
+ android:windowSoftInputMode
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:45:13-52
+ android:uiOptions
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:44:13-37
+ android:configChanges
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:40:13-74
+ android:theme
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:43:13-45
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:39:13-49
+intent-filter#action:name:android.intent.action.MAIN+category:name:android.intent.category.LAUNCHER
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:47:13-50:29
+action#android.intent.action.MAIN
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:48:17-69
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:48:25-66
+category#android.intent.category.LAUNCHER
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:49:17-77
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:49:27-74
+activity#net.micode.notes.ui.NoteEditActivity
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:53:9-81:20
+ android:launchMode
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:56:13-43
+ android:configChanges
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:55:13-74
+ android:theme
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:57:13-45
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:54:13-48
+intent-filter#action:name:android.intent.action.VIEW+category:name:android.intent.category.DEFAULT+data:mimeType:vnd.android.cursor.item/call_note+data:mimeType:vnd.android.cursor.item/text_note
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:59:13-64:29
+action#android.intent.action.VIEW
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:60:17-69
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:60:25-66
+category#android.intent.category.DEFAULT
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:61:17-76
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:61:27-73
+data
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:62:17-78
+ android:mimeType
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:62:23-75
+intent-filter#action:name:android.intent.action.INSERT_OR_EDIT+category:name:android.intent.category.DEFAULT+data:mimeType:vnd.android.cursor.item/call_note+data:mimeType:vnd.android.cursor.item/text_note
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:66:13-71:29
+action#android.intent.action.INSERT_OR_EDIT
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:67:17-79
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:67:25-76
+intent-filter#action:name:android.intent.action.SEARCH+category:name:android.intent.category.DEFAULT
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:73:13-76:29
+action#android.intent.action.SEARCH
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:74:17-71
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:74:25-68
+meta-data#android.app.searchable
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:78:13-80:54
+ android:resource
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:80:17-51
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:79:17-54
+provider#net.micode.notes.data.NotesProvider
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:83:9-86:43
+ android:authorities
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:85:13-47
+ android:multiprocess
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:86:13-40
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:84:13-63
+receiver#net.micode.notes.widget.NoteWidgetProvider_2x
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:88:9-100:20
+ android:label
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:90:13-50
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:89:13-57
+intent-filter#action:name:android.appwidget.action.APPWIDGET_DELETED+action:name:android.appwidget.action.APPWIDGET_UPDATE+action:name:android.intent.action.PRIVACY_MODE_CHANGED
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:91:13-95:29
+action#android.appwidget.action.APPWIDGET_UPDATE
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:92:17-84
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:92:25-81
+action#android.appwidget.action.APPWIDGET_DELETED
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:93:17-85
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:93:25-82
+action#android.intent.action.PRIVACY_MODE_CHANGED
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:94:17-85
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:94:25-82
+meta-data#android.appwidget.provider
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:97:13-99:58
+ android:resource
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:99:17-55
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:98:17-58
+receiver#net.micode.notes.widget.NoteWidgetProvider_4x
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:101:9-114:20
+ android:label
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:103:13-50
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:102:13-57
+receiver#net.micode.notes.ui.AlarmInitReceiver
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:116:9-120:20
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:116:19-55
+intent-filter#action:name:android.intent.action.BOOT_COMPLETED
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:117:13-119:29
+action#android.intent.action.BOOT_COMPLETED
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:118:17-79
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:118:25-76
+receiver#net.micode.notes.ui.AlarmReceiver
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:122:9-125:20
+ android:process
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:124:13-38
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:123:13-61
+activity#net.micode.notes.ui.AlarmAlertActivity
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:127:9-132:20
+ android:label
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:129:13-45
+ android:launchMode
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:130:13-48
+ android:theme
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:131:13-75
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:128:13-50
+activity#net.micode.notes.ui.NotesPreferenceActivity
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:134:9-139:20
+ android:label
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:136:13-54
+ android:launchMode
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:137:13-43
+ android:theme
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:138:13-60
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:135:13-71
+service#net.micode.notes.gtask.remote.GTaskSyncService
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:141:9-144:19
+ android:exported
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:143:13-37
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:142:13-74
+meta-data#android.app.default_searchable
+ADDED from D:\note1\app\src\main\AndroidManifest.xml:146:9-148:52
+ android:value
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:148:13-49
+ android:name
+ ADDED from D:\note1\app\src\main\AndroidManifest.xml:147:13-58
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/AlarmAlertActivity.class.uniqueId19 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/AlarmAlertActivity.class.uniqueId19
new file mode 100644
index 0000000..1c2c702
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/AlarmAlertActivity.class.uniqueId19 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$1.class.uniqueId2 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$1.class.uniqueId2
new file mode 100644
index 0000000..b4a7aaa
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$1.class.uniqueId2 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$10.class.uniqueId28 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$10.class.uniqueId28
new file mode 100644
index 0000000..af1d549
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$10.class.uniqueId28 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$11.class.uniqueId9 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$11.class.uniqueId9
new file mode 100644
index 0000000..87a8396
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$11.class.uniqueId9 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$12.class.uniqueId36 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$12.class.uniqueId36
new file mode 100644
index 0000000..843c919
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$12.class.uniqueId36 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$13.class.uniqueId15 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$13.class.uniqueId15
new file mode 100644
index 0000000..5d7779e
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$13.class.uniqueId15 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$14.class.uniqueId5 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$14.class.uniqueId5
new file mode 100644
index 0000000..18b9466
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$14.class.uniqueId5 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$15.class.uniqueId20 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$15.class.uniqueId20
new file mode 100644
index 0000000..a51c0ff
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$15.class.uniqueId20 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$2.class.uniqueId30 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$2.class.uniqueId30
new file mode 100644
index 0000000..bfad9a3
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$2.class.uniqueId30 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$3.class.uniqueId12 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$3.class.uniqueId12
new file mode 100644
index 0000000..d539a44
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$3.class.uniqueId12 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$4.class.uniqueId34 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$4.class.uniqueId34
new file mode 100644
index 0000000..7287632
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$4.class.uniqueId34 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$5.class.uniqueId14 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$5.class.uniqueId14
new file mode 100644
index 0000000..18d86dc
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$5.class.uniqueId14 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$6.class.uniqueId0 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$6.class.uniqueId0
new file mode 100644
index 0000000..3471115
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$6.class.uniqueId0 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$7.class.uniqueId35 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$7.class.uniqueId35
new file mode 100644
index 0000000..95cbe66
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$7.class.uniqueId35 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$8.class.uniqueId13 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$8.class.uniqueId13
new file mode 100644
index 0000000..eda91e8
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$8.class.uniqueId13 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$9.class.uniqueId31 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$9.class.uniqueId31
new file mode 100644
index 0000000..18e336d
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$9.class.uniqueId31 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$HeadViewHolder.class.uniqueId10 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$HeadViewHolder.class.uniqueId10
new file mode 100644
index 0000000..1f4f026
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity$HeadViewHolder.class.uniqueId10 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity.class.uniqueId18 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity.class.uniqueId18
new file mode 100644
index 0000000..fb640e0
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteEditActivity.class.uniqueId18 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteItemData.class.uniqueId24 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteItemData.class.uniqueId24
new file mode 100644
index 0000000..47c6986
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteItemData.class.uniqueId24 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteWidgetProvider.class.uniqueId27 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteWidgetProvider.class.uniqueId27
new file mode 100644
index 0000000..a00281f
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NoteWidgetProvider.class.uniqueId27 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$1.class.uniqueId16 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$1.class.uniqueId16
new file mode 100644
index 0000000..ae9244f
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$1.class.uniqueId16 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$2.class.uniqueId4 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$2.class.uniqueId4
new file mode 100644
index 0000000..70299f5
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$2.class.uniqueId4 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$3.class.uniqueId21 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$3.class.uniqueId21
new file mode 100644
index 0000000..e952b8c
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$3.class.uniqueId21 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$4.class.uniqueId7 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$4.class.uniqueId7
new file mode 100644
index 0000000..ae17758
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$4.class.uniqueId7 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$5.class.uniqueId25 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$5.class.uniqueId25
new file mode 100644
index 0000000..cf9cee6
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$5.class.uniqueId25 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$6.class.uniqueId22 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$6.class.uniqueId22
new file mode 100644
index 0000000..8e474d2
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$6.class.uniqueId22 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$7.class.uniqueId1 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$7.class.uniqueId1
new file mode 100644
index 0000000..d21739a
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$7.class.uniqueId1 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$8.class.uniqueId17 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$8.class.uniqueId17
new file mode 100644
index 0000000..7a5850a
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$8.class.uniqueId17 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$9.class.uniqueId11 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$9.class.uniqueId11
new file mode 100644
index 0000000..8dbbc7e
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$9.class.uniqueId11 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$BackgroundQueryHandler.class.uniqueId23 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$BackgroundQueryHandler.class.uniqueId23
new file mode 100644
index 0000000..fadd4fc
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$BackgroundQueryHandler.class.uniqueId23 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ListEditState.class.uniqueId6 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ListEditState.class.uniqueId6
new file mode 100644
index 0000000..2edab7b
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ListEditState.class.uniqueId6 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ModeCallback$1.class.uniqueId8 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ModeCallback$1.class.uniqueId8
new file mode 100644
index 0000000..e0b44ff
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ModeCallback$1.class.uniqueId8 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ModeCallback$2.class.uniqueId32 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ModeCallback$2.class.uniqueId32
new file mode 100644
index 0000000..5e68562
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ModeCallback$2.class.uniqueId32 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ModeCallback.class.uniqueId33 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ModeCallback.class.uniqueId33
new file mode 100644
index 0000000..70b4274
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$ModeCallback.class.uniqueId33 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$NewNoteOnTouchListener.class.uniqueId26 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$NewNoteOnTouchListener.class.uniqueId26
new file mode 100644
index 0000000..1e7b9f0
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$NewNoteOnTouchListener.class.uniqueId26 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$OnListItemClickListener.class.uniqueId29 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$OnListItemClickListener.class.uniqueId29
new file mode 100644
index 0000000..00b8846
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity$OnListItemClickListener.class.uniqueId29 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity.class.uniqueId3 b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity.class.uniqueId3
new file mode 100644
index 0000000..55fc394
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/NotesListActivity.class.uniqueId3 differ
diff --git a/src/app/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin b/src/app/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin
new file mode 100644
index 0000000..e438ef2
Binary files /dev/null and b/src/app/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin differ
diff --git a/src/Notes-master/AndroidManifest.xml b/src/app/src/main/AndroidManifest.xml
similarity index 98%
rename from src/Notes-master/AndroidManifest.xml
rename to src/app/src/main/AndroidManifest.xml
index e5c7d47..8fee695 100644
--- a/src/Notes-master/AndroidManifest.xml
+++ b/src/app/src/main/AndroidManifest.xml
@@ -20,7 +20,7 @@
android:versionCode="1"
android:versionName="0.1" >
-
+
@@ -41,7 +41,7 @@
android:label="@string/app_name"
android:launchMode="singleTop"
android:theme="@style/NoteTheme"
- android:uiOptions="splitActionBarWhenNarrow"
+ android:uiOptions="none"
android:windowSoftInputMode="adjustPan" >
@@ -147,4 +147,4 @@
android:name="android.app.default_searchable"
android:value=".ui.NoteEditActivity" />
-
+
\ No newline at end of file
diff --git a/src/app/src/main/assets/font/FZSTK.TTF b/src/app/src/main/assets/font/FZSTK.TTF
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/src/main/assets/font/STXINGKA.TTF b/src/app/src/main/assets/font/STXINGKA.TTF
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/src/main/assets/font/mingliub.ttc b/src/app/src/main/assets/font/mingliub.ttc
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/src/main/assets/font/simhei.ttf b/src/app/src/main/assets/font/simhei.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/src/Notes-master/src/net/micode/notes/data/Contact.java b/src/app/src/main/java/net/micode/notes/data/Contact.java
similarity index 58%
rename from src/Notes-master/src/net/micode/notes/data/Contact.java
rename to src/app/src/main/java/net/micode/notes/data/Contact.java
index d97ac5d..149cd8d 100644
--- a/src/Notes-master/src/net/micode/notes/data/Contact.java
+++ b/src/app/src/main/java/net/micode/notes/data/Contact.java
@@ -1,21 +1,14 @@
+// 版权声明和许可信息,表明该代码由 "The MiCode Open Source Community" 提供,并且使用了Apache License 2.0。
/*
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
*
* Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * ...
*/
-package net.micode.notes.data;
+package net.micode.notes.data; // 指定包名
+// 导入所需的类
import android.content.Context;
import android.database.Cursor;
import android.provider.ContactsContract.CommonDataKinds.Phone;
@@ -23,30 +16,40 @@ import android.provider.ContactsContract.Data;
import android.telephony.PhoneNumberUtils;
import android.util.Log;
-import java.util.HashMap;
+import java.util.HashMap; // 导入HashMap类,用于创建缓存
+// 定义了Contact类,用于从系统联系人获取信息
public class Contact {
+ // 类级别的缓存变量,存储电话号码和对应的联系人名称
private static HashMap sContactCache;
+ // 用于日志输出的标签
private static final String TAG = "Contact";
+ // 编写SQL查询语句的一部分,用于查询电话号码
private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER
- + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'"
- + " AND " + Data.RAW_CONTACT_ID + " IN "
+ + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'"
+ + " AND " + Data.RAW_CONTACT_ID + " IN "
+ "(SELECT raw_contact_id "
+ " FROM phone_lookup"
+ " WHERE min_match = '+')";
+ // 获取联系人名称的静态方法
public static String getContact(Context context, String phoneNumber) {
+ // 如果缓存为空,则初始化它
if(sContactCache == null) {
sContactCache = new HashMap();
}
+ // 检查缓存是否已有该号码的联系人名称
if(sContactCache.containsKey(phoneNumber)) {
+ // 如果有,直接返回该名称
return sContactCache.get(phoneNumber);
}
+ // 替换查询中的占位符以构造完整的查询语句
String selection = CALLER_ID_SELECTION.replace("+",
PhoneNumberUtils.toCallerIDMinMatch(phoneNumber));
+ // 对联系人数据提供者进行查询,尝试获取匹配电话号码的联系人名称
Cursor cursor = context.getContentResolver().query(
Data.CONTENT_URI,
new String [] { Phone.DISPLAY_NAME },
@@ -54,20 +57,27 @@ public class Contact {
new String[] { phoneNumber },
null);
+ // 如果查询返回了结果
if (cursor != null && cursor.moveToFirst()) {
try {
+ // 从游标中获取联系人名称
String name = cursor.getString(0);
+ // 将结果存放到缓存中
sContactCache.put(phoneNumber, name);
+ // 返回获取到的联系人名称
return name;
} catch (IndexOutOfBoundsException e) {
+ // 如果发生异常,输出错误日志
Log.e(TAG, " Cursor get string error " + e.toString());
return null;
} finally {
+ // 最后确保游标被关闭,避免内存泄露
cursor.close();
}
} else {
+ // 如果没有匹配结果,输出调试日志
Log.d(TAG, "No contact matched with number:" + phoneNumber);
return null;
}
}
-}
+}
\ No newline at end of file
diff --git a/src/Notes-master/src/net/micode/notes/data/Notes.java b/src/app/src/main/java/net/micode/notes/data/Notes.java
similarity index 50%
rename from src/Notes-master/src/net/micode/notes/data/Notes.java
rename to src/app/src/main/java/net/micode/notes/data/Notes.java
index f240604..ef910f2 100644
--- a/src/Notes-master/src/net/micode/notes/data/Notes.java
+++ b/src/app/src/main/java/net/micode/notes/data/Notes.java
@@ -17,234 +17,244 @@
package net.micode.notes.data;
import android.net.Uri;
+/**
+ * 笔记相关的常量和数据字段
+ */
+// 定义一个名为Notes的公共类
public class Notes {
+ // 定义一些静态常量,如授权信息、标签和类型
+ // 内容提供者的权限
public static final String AUTHORITY = "micode_notes";
- public static final String TAG = "Notes";
- public static final int TYPE_NOTE = 0;
- public static final int TYPE_FOLDER = 1;
- public static final int TYPE_SYSTEM = 2;
- /**
- * Following IDs are system folders' identifiers
- * {@link Notes#ID_ROOT_FOLDER } is default folder
- * {@link Notes#ID_TEMPARAY_FOLDER } is for notes belonging no folder
- * {@link Notes#ID_CALL_RECORD_FOLDER} is to store call records
- */
- public static final int ID_ROOT_FOLDER = 0;
- public static final int ID_TEMPARAY_FOLDER = -1;
- public static final int ID_CALL_RECORD_FOLDER = -2;
- public static final int ID_TRASH_FOLER = -3;
-
- public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date";
- public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id";
- public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id";
- public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type";
- public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id";
- public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date";
-
- public static final int TYPE_WIDGET_INVALIDE = -1;
- public static final int TYPE_WIDGET_2X = 0;
- public static final int TYPE_WIDGET_4X = 1;
+ // 日志标签
+ public static final String TAG = "Notes";
+ // 笔记类型常量
+ public static final int TYPE_NOTE = 0; // 普通笔记
+ public static final int TYPE_FOLDER = 1; // 文件夹
+ public static final int TYPE_SYSTEM = 2; // 系统类型
+
+ // 系统文件夹的标识符
+ public static final int ID_ROOT_FOLDER = 0; // 默认文件夹
+ public static final int ID_TEMPARAY_FOLDER = -1; // 临时文件夹,存放无文件夹归属的笔记
+ public static final int ID_CALL_RECORD_FOLDER = -2; // 存放通话记录的文件夹
+ public static final int ID_TRASH_FOLER = -3; // 垃圾箱文件夹
+
+ // 传递给Intent的额外数据的键
+ public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date"; // 提醒日期
+ public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id"; // 背景颜色ID
+ public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id"; // Widget的ID
+ public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type"; // Widget类型
+ public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id"; // 文件夹ID
+ public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date"; // 通话日期
+
+ // Widget类型常量
+ public static final int TYPE_WIDGET_INVALIDE = -1; // 无效的Widget类型
+ public static final int TYPE_WIDGET_2X = 0; // 2x大小的Widget
+ public static final int TYPE_WIDGET_4X = 1; // 4x大小的Widget
+
+ // 笔记数据常量类
public static class DataConstants {
- public static final String NOTE = TextNote.CONTENT_ITEM_TYPE;
- public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE;
+ public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; // 文本笔记的内容类型
+ public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; // 通话记录的内容类型
}
+
/**
- * Uri to query all notes and folders
+ * 用于查询所有笔记和文件夹的 Uri
*/
public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note");
/**
- * Uri to query data
+ * 用于查询数据的 Uri
*/
public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");
public interface NoteColumns {
/**
- * The unique ID for a row
- *
Type: INTEGER (long)
+ * 行的唯一标识符
+ *
类型: 整数 (长整型)
*/
public static final String ID = "_id";
/**
- * The parent's id for note or folder
- *
Type: INTEGER (long)
+ * 笔记或文件夹的父级 ID
+ *
类型: 整数 (长整型)
*/
public static final String PARENT_ID = "parent_id";
/**
- * Created data for note or folder
- *
Type: INTEGER (long)
+ * 笔记或文件夹的创建日期
+ *
类型: 整数 (长整型)
*/
public static final String CREATED_DATE = "created_date";
/**
- * Latest modified date
- *
Type: INTEGER (long)
+ * 最近修改日期
+ *
类型: 整数 (长整型)
*/
public static final String MODIFIED_DATE = "modified_date";
-
/**
- * Alert date
- *
Type: INTEGER (long)
+ * 提醒日期
+ *
类型: 整数 (长整型)
*/
public static final String ALERTED_DATE = "alert_date";
/**
- * Folder's name or text content of note
- *
Type: TEXT
+ * 文件夹的名称或笔记的文本内容
+ *
类型: 文本
*/
public static final String SNIPPET = "snippet";
-
+ public static final String PASSCODE = "passcode";//定义九宫格解锁,目前未更新
+ public static final String PASSWORD="password";//便签密码
+ public static final String CHANGE="change";//只读模式
/**
- * Note's widget id
- *
Type: INTEGER (long)
+ * 笔记的小部件 ID
+ *
类型: 整数 (长整型)
*/
public static final String WIDGET_ID = "widget_id";
/**
- * Note's widget type
- *
Type: INTEGER (long)
+ * 笔记的小部件类型
+ *
类型: 整数 (长整型)
*/
public static final String WIDGET_TYPE = "widget_type";
/**
- * Note's background color's id
- *
Type: INTEGER (long)
+ * 笔记的背景颜色 ID
+ *
类型: 整数 (长整型)
*/
public static final String BG_COLOR_ID = "bg_color_id";
/**
- * For text note, it doesn't has attachment, for multi-media
- * note, it has at least one attachment
- *
Type: INTEGER
+ * 对于文本笔记,它不包含附件,对于多媒体
+ * 笔记,它至少包含一个附件
+ *
类型: 整数
*/
public static final String HAS_ATTACHMENT = "has_attachment";
/**
- * Folder's count of notes
- *
Type: INTEGER (long)
+ * 笔记的文件夹笔记计数
+ *
类型: 整数 (长整型)
*/
public static final String NOTES_COUNT = "notes_count";
/**
- * The file type: folder or note
- *
Type: INTEGER
+ * 文件类型:文件夹或笔记
+ *
类型: 整数
*/
public static final String TYPE = "type";
/**
- * The last sync id
- *
Type: INTEGER (long)
+ * 最后同步的 ID
+ *
类型: 整数 (长整型)
*/
public static final String SYNC_ID = "sync_id";
/**
- * Sign to indicate local modified or not
- *
Type: INTEGER
+ * 本地是否修改的标记
+ *
类型: 整数
*/
public static final String LOCAL_MODIFIED = "local_modified";
/**
- * Original parent id before moving into temporary folder
- *
Type : INTEGER
+ * 移动到临时文件夹之前的原始父级 ID
+ *
类型: 整数
*/
public static final String ORIGIN_PARENT_ID = "origin_parent_id";
/**
- * The gtask id
- *
Type : TEXT
+ * GTask 的 ID
+ *
类型: 文本
*/
public static final String GTASK_ID = "gtask_id";
/**
- * The version code
- *
Type : INTEGER (long)
+ * 版本代码
+ *
类型: 整数 (长整型)
*/
public static final String VERSION = "version";
}
+ /**
+ * 用于定义数据表的列名称和相关常量
+ */
public interface DataColumns {
/**
- * The unique ID for a row
- *
Type: INTEGER (long)
+ * 行的唯一标识符
+ *
类型: 整数 (长整型)
*/
public static final String ID = "_id";
/**
- * The MIME type of the item represented by this row.
- *
Type: Text
+ * 项目表示的 MIME 类型
+ *
类型: 文本
*/
public static final String MIME_TYPE = "mime_type";
/**
- * The reference id to note that this data belongs to
- *
Type: INTEGER (long)
+ * 指向所属笔记的引用 ID
+ *
类型: 整数 (长整型)
*/
public static final String NOTE_ID = "note_id";
/**
- * Created data for note or folder
- *
Type: INTEGER (long)
+ * 笔记或文件夹的创建日期
+ *
类型: 整数 (长整型)
*/
public static final String CREATED_DATE = "created_date";
/**
- * Latest modified date
- *
Type: INTEGER (long)
+ * 最近修改日期
+ *
类型: 整数 (长整型)
*/
public static final String MODIFIED_DATE = "modified_date";
/**
- * Data's content
- *
Type: TEXT
+ * 数据的内容
+ *
类型: 文本
*/
public static final String CONTENT = "content";
-
/**
- * Generic data column, the meaning is {@link #MIMETYPE} specific, used for
- * integer data type
- *
Type: INTEGER
+ * 通用数据列,其含义取决于 {@link #MIME_TYPE},用于整数数据类型
+ *
类型: 整数
*/
public static final String DATA1 = "data1";
/**
- * Generic data column, the meaning is {@link #MIMETYPE} specific, used for
- * integer data type
- *
Type: INTEGER
+ * 通用数据列,其含义取决于 {@link #MIME_TYPE},用于整数数据类型
+ *
类型: 整数
*/
public static final String DATA2 = "data2";
/**
- * Generic data column, the meaning is {@link #MIMETYPE} specific, used for
- * TEXT data type
- *
Type: TEXT
+ * 通用数据列,其含义取决于 {@link #MIME_TYPE},用于文本数据类型
+ *
类型: 文本
*/
public static final String DATA3 = "data3";
/**
- * Generic data column, the meaning is {@link #MIMETYPE} specific, used for
- * TEXT data type
- *
Type: TEXT
+ * 通用数据列,其含义取决于 {@link #MIME_TYPE},用于文本数据类型
+ *
类型: 文本
*/
public static final String DATA4 = "data4";
/**
- * Generic data column, the meaning is {@link #MIMETYPE} specific, used for
- * TEXT data type
- *
Type: TEXT
+ * 通用数据列,其含义取决于 {@link #MIME_TYPE},用于文本数据类型
+ *
类型: 文本
*/
public static final String DATA5 = "data5";
}
+ /**
+ * 文本笔记类,实现了 DataColumns 接口
+ */
public static final class TextNote implements DataColumns {
/**
- * Mode to indicate the text in check list mode or not
- *
Type: Integer 1:check list mode 0: normal mode
+ * 指示文本是否处于待办事项模式的模式
+ *
类型: 整数 1:待办事项模式 0: 普通模式
*/
public static final String MODE = DATA1;
@@ -257,16 +267,19 @@ public class Notes {
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");
}
+ /**
+ * 通话笔记类,实现了 DataColumns 接口
+ */
public static final class CallNote implements DataColumns {
/**
- * Call date for this record
- *
Type: INTEGER (long)
+ * 通话记录的日期
+ *
类型: 整数 (长整型)
*/
public static final String CALL_DATE = DATA1;
/**
- * Phone number for this record
- *
Type: TEXT
+ * 通话记录的电话号码
+ *
类型: 文本
*/
public static final String PHONE_NUMBER = DATA3;
@@ -276,4 +289,4 @@ public class Notes {
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");
}
-}
+}
\ No newline at end of file
diff --git a/src/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/src/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java
new file mode 100644
index 0000000..9b7107c
--- /dev/null
+++ b/src/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java
@@ -0,0 +1,441 @@
+/*
+ * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * 用于处理小米便签应用的数据库操作的帮助类
+ */
+package net.micode.notes.data;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.util.Log;
+
+import net.micode.notes.data.Notes.DataColumns;
+import net.micode.notes.data.Notes.DataConstants;
+import net.micode.notes.data.Notes.NoteColumns;
+
+/**
+ * 数据库帮助类,用于管理小米便签应用中的数据库
+ */
+public class NotesDatabaseHelper extends SQLiteOpenHelper {
+ /**
+ * 数据库的名称
+ */
+ private static final String DB_NAME = "note.db";
+ /**
+ * 数据库的版本号
+ */
+ private static final int DB_VERSION = 5;//在这里,我们将数据库更新到第五代,加入了PASSWORD,CHANGE
+
+
+ /**
+ * 内部接口,用于定义数据库中的表名
+ */
+ public interface TABLE {
+ /**
+ * 笔记表
+ */
+ public static final String NOTE = "note";
+
+ /**
+ * 数据表
+ */
+ public static final String DATA = "data";
+ }
+
+ // 声明数据库帮助类的标签
+ private static final String TAG = "NotesDatabaseHelper";
+
+ // 单例模式实例
+ private static NotesDatabaseHelper mInstance;
+
+ // 创建笔记表的 SQL 语句
+ private static final String CREATE_NOTE_TABLE_SQL =
+ "CREATE TABLE " + TABLE.NOTE + "(" +
+ NoteColumns.ID + " INTEGER PRIMARY KEY," +
+ NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
+ NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
+ NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," +
+ NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," +
+ NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," +
+ NoteColumns.PASSCODE + " TEXT NOT NULL DEFAULT '',"+
+ NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0"+
+ NoteColumns.PASSWORD+"TEXT NOT NULL DEFAULT 1"+
+ NoteColumns.CHANGE+"TEXT NOT NULL DEFAULT 1"+
+ ")";
+//此处更新了数据库
+// 创建数据表的 SQL 语句
+private static final String CREATE_DATA_TABLE_SQL =
+ "CREATE TABLE " + TABLE.DATA + "(" +
+ DataColumns.ID + " INTEGER PRIMARY KEY," +
+ DataColumns.MIME_TYPE + " TEXT NOT NULL," +
+ DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," +
+ NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
+ NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," +
+ DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," +
+ DataColumns.DATA1 + " INTEGER," +
+ DataColumns.DATA2 + " INTEGER," +
+ DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," +
+ DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," +
+ DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" +
+ ")";
+
+ // 创建数据表中的笔记 ID 索引的 SQL 语句
+ private static final String CREATE_DATA_NOTE_ID_INDEX_SQL =
+ "CREATE INDEX IF NOT EXISTS note_id_index ON " +
+ TABLE.DATA + "(" + DataColumns.NOTE_ID + ");";
+
+ // 当将笔记移动到文件夹时,增加文件夹的笔记计数
+ private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER =
+ "CREATE TRIGGER increase_folder_count_on_update " +
+ " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE +
+ " BEGIN " +
+ " UPDATE " + TABLE.NOTE +
+ " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" +
+ " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" +
+ " END";
+
+ // 当从文件夹中移除笔记时,减少文件夹的笔记计数
+ private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER =
+ "CREATE TRIGGER decrease_folder_count_on_update " +
+ " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE +
+ " BEGIN " +
+ " UPDATE " + TABLE.NOTE +
+ " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" +
+ " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID +
+ " AND " + NoteColumns.NOTES_COUNT + ">0" + ";" +
+ " END";
+
+ // 当向文件夹中插入新笔记时,增加文件夹的笔记计数
+ private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER =
+ "CREATE TRIGGER increase_folder_count_on_insert " +
+ " AFTER INSERT ON " + TABLE.NOTE +
+ " BEGIN " +
+ " UPDATE " + TABLE.NOTE +
+ " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" +
+ " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" +
+ " END";
+ /**
+ * 在删除文件夹中的笔记时减少笔记计数
+ */
+ private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER =
+ "CREATE TRIGGER decrease_folder_count_on_delete " +
+ " AFTER DELETE ON " + TABLE.NOTE +
+ " BEGIN " +
+ " UPDATE " + TABLE.NOTE +
+ " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" +
+ " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID +
+ " AND " + NoteColumns.NOTES_COUNT + ">0;" +
+ " END";
+
+ /**
+ * 在使用类型为{@link DataConstants#NOTE}的数据插入时更新笔记内容
+ */
+ private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER =
+ "CREATE TRIGGER update_note_content_on_insert " +
+ " AFTER INSERT ON " + TABLE.DATA +
+ " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" +
+ " BEGIN" +
+ " UPDATE " + TABLE.NOTE +
+ " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT +
+ " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" +
+ " END";
+
+ /**
+ * 在使用类型为{@link DataConstants#NOTE}的数据更改时更新笔记内容
+ */
+ private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER =
+ "CREATE TRIGGER update_note_content_on_update " +
+ " AFTER UPDATE ON " + TABLE.DATA +
+ " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" +
+ " BEGIN" +
+ " UPDATE " + TABLE.NOTE +
+ " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT +
+ " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" +
+ " END";
+
+ /**
+ * 在删除类型为{@link DataConstants#NOTE}的数据时更新笔记内容
+ */
+ private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER =
+ "CREATE TRIGGER update_note_content_on_delete " +
+ " AFTER delete ON " + TABLE.DATA +
+ " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" +
+ " BEGIN" +
+ " UPDATE " + TABLE.NOTE +
+ " SET " + NoteColumns.SNIPPET + "=''" +
+ " WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" +
+ " END";
+
+ /**
+ * 删除属于已删除笔记的数据
+ */
+ private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER =
+ "CREATE TRIGGER delete_data_on_delete " +
+ " AFTER DELETE ON " + TABLE.NOTE +
+ " BEGIN" +
+ " DELETE FROM " + TABLE.DATA +
+ " WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" +
+ " END";
+
+ /**
+ * 删除属于已删除文件夹的笔记
+ */
+ private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER =
+ "CREATE TRIGGER folder_delete_notes_on_delete " +
+ " AFTER DELETE ON " + TABLE.NOTE +
+ " BEGIN" +
+ " DELETE FROM " + TABLE.NOTE +
+ " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" +
+ " END";
+
+ /**
+ * 将属于已移至垃圾箱文件夹的笔记移动
+ */
+ private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER =
+ "CREATE TRIGGER folder_move_notes_on_trash " +
+ " AFTER UPDATE ON " + TABLE.NOTE +
+ " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER +
+ " BEGIN" +
+ " UPDATE " + TABLE.NOTE +
+ " SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER +
+ " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" +
+ " END";
+
+ public NotesDatabaseHelper(Context context) {
+ super(context, DB_NAME, null, DB_VERSION);
+ }
+
+ public void createNoteTable(SQLiteDatabase db) {
+ db.execSQL(CREATE_NOTE_TABLE_SQL);
+ reCreateNoteTableTriggers(db);
+ createSystemFolder(db);
+ Log.d(TAG, "note table has been created");
+ }
+
+ /**
+ * 重新创建笔记表相关的触发器
+ *
+ * @param db SQLiteDatabase 实例
+ */
+ private void reCreateNoteTableTriggers(SQLiteDatabase db) {
+ // 删除旧的触发器
+ db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_update");
+ db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_update");
+ db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_delete");
+ db.execSQL("DROP TRIGGER IF EXISTS delete_data_on_delete");
+ db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_insert");
+ db.execSQL("DROP TRIGGER IF EXISTS folder_delete_notes_on_delete");
+ db.execSQL("DROP TRIGGER IF EXISTS folder_move_notes_on_trash");
+
+ // 创建新的触发器
+ db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER);
+ db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER);
+ db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER);
+ db.execSQL(NOTE_DELETE_DATA_ON_DELETE_TRIGGER);
+ db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER);
+ db.execSQL(FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER);
+ db.execSQL(FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER);
+ }
+
+ /**
+ * 创建系统文件夹,包括通话记录文件夹、根文件夹、临时文件夹和垃圾箱文件夹
+ *
+ * @param db SQLiteDatabase 实例
+ */
+ private void createSystemFolder(SQLiteDatabase db) {
+ ContentValues values = new ContentValues();
+
+ // 创建通话记录文件夹
+ values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER);
+ values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
+ db.insert(TABLE.NOTE, null, values);
+
+ // 创建根文件夹
+ values.clear();
+ values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER);
+ values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
+ db.insert(TABLE.NOTE, null, values);
+
+ // 创建临时文件夹
+ values.clear();
+ values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER);
+ values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
+ db.insert(TABLE.NOTE, null, values);
+
+ // 创建垃圾箱文件夹
+ values.clear();
+ values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER);
+ values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);
+ db.insert(TABLE.NOTE, null, values);
+ }
+
+ /**
+ * 创建数据表,并重新创建数据表相关的触发器
+ *
+ * @param db SQLiteDatabase 实例
+ */
+ public void createDataTable(SQLiteDatabase db) {
+ // 创建数据表
+ db.execSQL(CREATE_DATA_TABLE_SQL);
+ // 重新创建数据表相关的触发器
+ reCreateDataTableTriggers(db);
+ db.execSQL(CREATE_DATA_NOTE_ID_INDEX_SQL);
+ Log.d(TAG, "data table has been created");
+ }
+
+ /**
+ * 重新创建数据表相关的触发器
+ *
+ * @param db SQLiteDatabase 实例
+ */
+ private void reCreateDataTableTriggers(SQLiteDatabase db) {
+ // 删除旧的触发器
+ db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_insert");
+ db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_update");
+ db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_delete");
+
+ // 创建新的触发器
+ db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER);
+ db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER);
+ db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER);
+ }
+
+ /**
+ * 获取数据库帮助类的实例,采用单例模式
+ *
+ * @param context 上下文环境
+ * @return NotesDatabaseHelper 实例
+ */
+ static synchronized NotesDatabaseHelper getInstance(Context context) {
+ if (mInstance == null) {
+ mInstance = new NotesDatabaseHelper(context);
+ }
+ return mInstance;
+ }
+
+ @Override
+ public void onCreate(SQLiteDatabase db) {
+ // 创建笔记表和数据表
+ createNoteTable(db);
+ createDataTable(db);
+ }
+
+ @Override
+ /**
+ * 执行数据库升级操作。
+ *
+ * @param db 数据库对象
+ * @param oldVersion 旧版本号
+ * @param newVersion 新版本号
+ */
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+ boolean reCreateTriggers = false; // 是否重新创建触发器
+ boolean skipV2 = false; // 是否跳过 V2 版本
+
+ if (oldVersion == 1) { // 如果旧版本号为 1
+ upgradeToV2(db); // 升级到 V2 版本
+ // 跳过 V2 版本,直接升级到 V3 版本
+ skipV2 = true;
+ oldVersion++;
+ }
+
+ if (oldVersion == 2 && !skipV2) { // 如果旧版本号为 2 并且不跳过 V2 版本
+ upgradeToV3(db); // 升级到 V3 版本
+ reCreateTriggers = true; // 需要重新创建触发器
+ oldVersion++;
+ }
+
+ if (oldVersion == 3) { // 如果旧版本号为 3
+ upgradeToV4(db); // 升级到 V4 版本
+ oldVersion++;
+ }
+ if (oldVersion == 4) {// 如果旧版本号为 4
+ System.out.println("version 4");
+ upgradeToV5(db);// 升级到 V5 版本
+ oldVersion++;
+// 若版本较低,则升级
+ }
+
+ // 重新创建触发器
+ if (reCreateTriggers) {
+ reCreateNoteTableTriggers(db); // 重新创建笔记表的触发器
+ reCreateDataTableTriggers(db); // 重新创建数据表的触发器
+ }
+
+ // 版本不匹配,抛出异常
+ if (oldVersion != newVersion) {
+ throw new IllegalStateException("Upgrade notes database to version " + newVersion + " fails");
+ }
+ }
+ /**
+ * 数据库升级到v2版本的操作
+ *
+ * @param db SQLiteDatabase 实例
+ */
+ private void upgradeToV2(SQLiteDatabase db) {
+ // 删除旧的表
+ db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE);
+ db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA);
+ // 重新创建笔记表和数据表
+ createNoteTable(db);
+ createDataTable(db);
+ }
+
+ /**
+ * 升级数据库到 V3 版本。
+ *
+ * @param db 数据库对象
+ */
+ private void upgradeToV3(SQLiteDatabase db) {
+ db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert"); // 删除插入时更新修改日期的触发器
+ db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_delete"); // 删除删除时更新修改日期的触发器
+ db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_update"); // 删除更新时更新修改日期的触发器
+ db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''"); // 向 Note 表中添加 GTASK_ID 列
+ ContentValues values = new ContentValues();
+ values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); // 设置垃圾箱的 ID
+ values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); // 设置垃圾箱的类型为系统类型
+ db.insert(TABLE.NOTE, null, values); // 向 Note 表中插入垃圾箱数据
+ }
+
+ /**
+ * 数据库升级到v4版本的操作
+ *
+ * @param db SQLiteDatabase 实例
+ */
+ private void upgradeToV4(SQLiteDatabase db) {
+ // 增加一个版本号的字段
+ db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0");
+ }
+ private void upgradeToV5(SQLiteDatabase db){
+ db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.PASSWORD
+ + " INTEGER NOT NULL DEFAULT 1");
+ db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.CHANGE
+ + " INTEGER NOT NULL DEFAULT 1");
+ //更新版本,在数据库内加上新的行
+ }
+}
diff --git a/src/Notes-master/src/net/micode/notes/data/NotesProvider.java b/src/app/src/main/java/net/micode/notes/data/NotesProvider.java
similarity index 51%
rename from src/Notes-master/src/net/micode/notes/data/NotesProvider.java
rename to src/app/src/main/java/net/micode/notes/data/NotesProvider.java
index edb0a60..794755c 100644
--- a/src/Notes-master/src/net/micode/notes/data/NotesProvider.java
+++ b/src/app/src/main/java/net/micode/notes/data/NotesProvider.java
@@ -36,20 +36,39 @@ import net.micode.notes.data.NotesDatabaseHelper.TABLE;
public class NotesProvider extends ContentProvider {
+ /**
+ * 模块依赖注释
+ * 该类对应的模块依赖了Notes和SearchManager模块
+ */
private static final UriMatcher mMatcher;
+ /**
+ * 数据成员注释
+ * 用于辅助对URI进行匹配,以便进行相应的操作
+ */
private NotesDatabaseHelper mHelper;
+ /**
+ * 数据成员注释
+ * 用于标识日志输出的tag
+ */
private static final String TAG = "NotesProvider";
+ /**
+ * 接口注释
+ * 定义了不同URI对应的编号,用于在匹配时进行标识
+ */
private static final int URI_NOTE = 1;
private static final int URI_NOTE_ITEM = 2;
private static final int URI_DATA = 3;
private static final int URI_DATA_ITEM = 4;
-
private static final int URI_SEARCH = 5;
private static final int URI_SEARCH_SUGGEST = 6;
+ /**
+ * 实现注释
+ * 初始化UriMatcher,并为不同的URI添加相应的匹配规则
+ */
static {
mMatcher = new UriMatcher(UriMatcher.NO_MATCH);
mMatcher.addURI(Notes.AUTHORITY, "note", URI_NOTE);
@@ -62,215 +81,263 @@ public class NotesProvider extends ContentProvider {
}
/**
- * x'0A' represents the '\n' character in sqlite. For title and content in the search result,
- * we will trim '\n' and white space in order to show more information.
+ * 实现注释
+ * 定义了用于搜索结果的投影,包括需要显示的字段
*/
private static final String NOTES_SEARCH_PROJECTION = NoteColumns.ID + ","
- + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + ","
- + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + ","
- + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + ","
- + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + ","
- + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + ","
- + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA;
+ + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + ","
+ + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + ","
+ + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + ","
+ + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + ","
+ + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + ","
+ + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA;
+ /**
+ * 实现注释
+ * 查询的SQL语句,用于搜索匹配的笔记
+ */
private static String NOTES_SNIPPET_SEARCH_QUERY = "SELECT " + NOTES_SEARCH_PROJECTION
- + " FROM " + TABLE.NOTE
- + " WHERE " + NoteColumns.SNIPPET + " LIKE ?"
- + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER
- + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE;
+ + " FROM " + TABLE.NOTE
+ + " WHERE " + NoteColumns.SNIPPET + " LIKE ?"
+ + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER
+ + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE;
+ /**
+ * 实现注释
+ * 重写Provider的onCreate方法,初始化mHelper
+ */
@Override
public boolean onCreate() {
mHelper = NotesDatabaseHelper.getInstance(getContext());
return true;
}
+ /**
+ * 执行查询操作,根据指定的条件在数据库中进行查询,并返回 Cursor 对象。
+ *
+ * @param uri 查询的 URI
+ * @param projection 返回的列
+ * @param selection 查询条件
+ * @param selectionArgs 查询条件的参数
+ * @param sortOrder 排序方式
+ * @return 查询结果的 Cursor 对象
+ */
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
- String sortOrder) {
- Cursor c = null;
- SQLiteDatabase db = mHelper.getReadableDatabase();
- String id = null;
+ String sortOrder) {
+ Cursor c = null; // 查询结果的 Cursor 对象
+ SQLiteDatabase db = mHelper.getReadableDatabase(); // 获取可读的数据库对象
+ String id = null; // ID 变量
+
switch (mMatcher.match(uri)) {
case URI_NOTE:
- c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null,
- sortOrder);
+ c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null, sortOrder);
break;
case URI_NOTE_ITEM:
- id = uri.getPathSegments().get(1);
+ id = uri.getPathSegments().get(1); // 获取 URI 中的 ID
c = db.query(TABLE.NOTE, projection, NoteColumns.ID + "=" + id
+ parseSelection(selection), selectionArgs, null, null, sortOrder);
break;
case URI_DATA:
- c = db.query(TABLE.DATA, projection, selection, selectionArgs, null, null,
- sortOrder);
+ c = db.query(TABLE.DATA, projection, selection, selectionArgs, null, null, sortOrder);
break;
case URI_DATA_ITEM:
- id = uri.getPathSegments().get(1);
+ id = uri.getPathSegments().get(1); // 获取 URI 中的 ID
c = db.query(TABLE.DATA, projection, DataColumns.ID + "=" + id
+ parseSelection(selection), selectionArgs, null, null, sortOrder);
break;
case URI_SEARCH:
case URI_SEARCH_SUGGEST:
+ // 检查是否指定了排序方式、返回的列,如果指定了则抛出异常
if (sortOrder != null || projection != null) {
throw new IllegalArgumentException(
"do not specify sortOrder, selection, selectionArgs, or projection" + "with this query");
}
- String searchString = null;
+ String searchString = null; // 搜索字符串
+
if (mMatcher.match(uri) == URI_SEARCH_SUGGEST) {
- if (uri.getPathSegments().size() > 1) {
- searchString = uri.getPathSegments().get(1);
+ if (uri.getPathSegments().size() > 1) { // 如果 URI 包含多个 segment
+ searchString = uri.getPathSegments().get(1); // 获取第二个 segment
}
} else {
- searchString = uri.getQueryParameter("pattern");
+ searchString = uri.getQueryParameter("pattern"); // 获取 pattern 参数
}
- if (TextUtils.isEmpty(searchString)) {
+ if (TextUtils.isEmpty(searchString)) { // 如果搜索字符串为空,则返回空
return null;
}
try {
- searchString = String.format("%%%s%%", searchString);
+ searchString = String.format("%%%s%%", searchString); // 格式化搜索字符串
c = db.rawQuery(NOTES_SNIPPET_SEARCH_QUERY,
- new String[] { searchString });
+ new String[] { searchString }); // 执行原始查询操作
} catch (IllegalStateException ex) {
- Log.e(TAG, "got exception: " + ex.toString());
+ Log.e(TAG, "got exception: " + ex.toString()); // 捕获异常并记录日志
}
break;
default:
- throw new IllegalArgumentException("Unknown URI " + uri);
+ throw new IllegalArgumentException("Unknown URI " + uri); // 未知的 URI,抛出异常
}
+
if (c != null) {
- c.setNotificationUri(getContext().getContentResolver(), uri);
+ c.setNotificationUri(getContext().getContentResolver(), uri); // 设置查询结果的通知 URI
}
- return c;
+ return c; // 返回查询结果的 Cursor 对象
}
+ /**
+ * 执行插入操作,向数据库中插入数据,并返回插入的记录的URI。
+ *
+ * @param uri 插入的 URI
+ * @param values 需要插入的数据
+ * @return 插入记录的 URI
+ */
@Override
public Uri insert(Uri uri, ContentValues values) {
- SQLiteDatabase db = mHelper.getWritableDatabase();
- long dataId = 0, noteId = 0, insertedId = 0;
- switch (mMatcher.match(uri)) {
- case URI_NOTE:
- insertedId = noteId = db.insert(TABLE.NOTE, null, values);
+ SQLiteDatabase db = mHelper.getWritableDatabase(); // 获取可写数据库引用
+ long dataId = 0, noteId = 0, insertedId = 0; // 数据ID和笔记ID的初始化
+
+ switch (mMatcher.match(uri)) { // 根据URI匹配进行不同操作
+ case URI_NOTE: // 笔记URI
+ insertedId = noteId = db.insert(TABLE.NOTE, null, values); // 向笔记表中插入数据并获取插入的ID
break;
- case URI_DATA:
+ case URI_DATA: // 数据URI
if (values.containsKey(DataColumns.NOTE_ID)) {
- noteId = values.getAsLong(DataColumns.NOTE_ID);
+ noteId = values.getAsLong(DataColumns.NOTE_ID); // 获取数据对应的笔记ID
} else {
- Log.d(TAG, "Wrong data format without note id:" + values.toString());
+ Log.d(TAG, "Wrong data format without note id:" + values.toString()); // 记录错误日志
}
- insertedId = dataId = db.insert(TABLE.DATA, null, values);
+ insertedId = dataId = db.insert(TABLE.DATA, null, values); // 向数据表中插入数据并获取插入的ID
break;
default:
- throw new IllegalArgumentException("Unknown URI " + uri);
+ throw new IllegalArgumentException("Unknown URI " + uri); // 抛出未知URI异常
}
- // Notify the note uri
+
+ // 通知笔记URI发生了变化
if (noteId > 0) {
getContext().getContentResolver().notifyChange(
ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null);
}
- // Notify the data uri
+ // 通知数据URI发生了变化
if (dataId > 0) {
getContext().getContentResolver().notifyChange(
ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), null);
}
- return ContentUris.withAppendedId(uri, insertedId);
+ return ContentUris.withAppendedId(uri, insertedId); // 返回插入的URI
}
+
+ /**
+ * 执行删除操作,根据指定的条件在数据库中进行删除,并返回受影响的行数。
+ *
+ * @param uri 删除的 URI
+ * @param selection 删除条件
+ * @param selectionArgs 删除条件的参数
+ * @return 删除受影响的行数
+ */
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
- int count = 0;
- String id = null;
- SQLiteDatabase db = mHelper.getWritableDatabase();
- boolean deleteData = false;
- switch (mMatcher.match(uri)) {
- case URI_NOTE:
- selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 ";
- count = db.delete(TABLE.NOTE, selection, selectionArgs);
+ int count = 0; // 记录删除的行数
+ String id = null; // ID字符串
+ SQLiteDatabase db = mHelper.getWritableDatabase(); // 获取可写数据库引用
+ boolean deleteData = false; // 是否删除数据的标志位
+
+ switch (mMatcher.match(uri)) { // 根据URI匹配执行不同操作
+ case URI_NOTE: // 笔记URI
+ selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 "; // 构建查询语句
+ count = db.delete(TABLE.NOTE, selection, selectionArgs); // 删除符合条件的笔记
break;
- case URI_NOTE_ITEM:
- id = uri.getPathSegments().get(1);
- /**
- * ID that smaller than 0 is system folder which is not allowed to
- * trash
- */
- long noteId = Long.valueOf(id);
+ case URI_NOTE_ITEM: // 单个笔记URI
+ id = uri.getPathSegments().get(1); // 获取URI中的笔记ID
+ long noteId = Long.valueOf(id); // 转换成长整型
if (noteId <= 0) {
- break;
+ break; // 若ID小于等于0,则跳出
}
- count = db.delete(TABLE.NOTE,
- NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs);
+ count = db.delete(TABLE.NOTE, NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs); // 删除指定ID的笔记
break;
- case URI_DATA:
- count = db.delete(TABLE.DATA, selection, selectionArgs);
- deleteData = true;
+ case URI_DATA: // 数据URI
+ count = db.delete(TABLE.DATA, selection, selectionArgs); // 删除符合条件的数据
+ deleteData = true; // 设置删除数据的标志位
break;
- case URI_DATA_ITEM:
- id = uri.getPathSegments().get(1);
- count = db.delete(TABLE.DATA,
- DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs);
- deleteData = true;
+ case URI_DATA_ITEM: // 单个数据URI
+ id = uri.getPathSegments().get(1); // 获取URI中的数据ID
+ count = db.delete(TABLE.DATA, DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs); // 删除指定ID的数据
+ deleteData = true; // 设置删除数据的标志位
break;
default:
- throw new IllegalArgumentException("Unknown URI " + uri);
+ throw new IllegalArgumentException("Unknown URI " + uri); // 抛出未知URI异常
}
- if (count > 0) {
+
+ if (count > 0) { // 若删除成功
if (deleteData) {
- getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null);
+ getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); // 通知笔记URI变化
}
- getContext().getContentResolver().notifyChange(uri, null);
+ getContext().getContentResolver().notifyChange(uri, null); // 通知URI变化
}
- return count;
+ return count; // 返回删除行数
}
+ /**
+ * 执行更新操作,更新数据库中的数据,并返回受影响的行数。
+ *
+ * @param uri 更新的 URI
+ * @param values 需要更新的数据
+ * @param selection 更新的约束条件
+ * @param selectionArgs 更新的约束条件参数
+ * @return 受影响的行数
+ */
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
- int count = 0;
- String id = null;
- SQLiteDatabase db = mHelper.getWritableDatabase();
- boolean updateData = false;
- switch (mMatcher.match(uri)) {
- case URI_NOTE:
- increaseNoteVersion(-1, selection, selectionArgs);
- count = db.update(TABLE.NOTE, values, selection, selectionArgs);
+ int count = 0; // 记录更新行数
+ String id = null; // ID字符串
+ SQLiteDatabase db = mHelper.getWritableDatabase(); // 获取可写数据库引用
+ boolean updateData = false; // 是否更新数据的标志位
+
+ switch (mMatcher.match(uri)) { // 根据URI匹配执行不同操作
+ case URI_NOTE: // 笔记URI
+ increaseNoteVersion(-1, selection, selectionArgs); // 更新笔记版本号
+ count = db.update(TABLE.NOTE, values, selection, selectionArgs); // 更新符合条件的笔记数据
break;
- case URI_NOTE_ITEM:
- id = uri.getPathSegments().get(1);
- increaseNoteVersion(Long.valueOf(id), selection, selectionArgs);
- count = db.update(TABLE.NOTE, values, NoteColumns.ID + "=" + id
- + parseSelection(selection), selectionArgs);
+ case URI_NOTE_ITEM: // 单个笔记URI
+ id = uri.getPathSegments().get(1); // 获取URI中的笔记ID
+ increaseNoteVersion(Long.valueOf(id), selection, selectionArgs); // 更新笔记版本号
+ count = db.update(TABLE.NOTE, values, NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs); // 更新指定ID的笔记数据
break;
- case URI_DATA:
- count = db.update(TABLE.DATA, values, selection, selectionArgs);
- updateData = true;
+ case URI_DATA: // 数据URI
+ count = db.update(TABLE.DATA, values, selection, selectionArgs); // 更新符合条件的数据
+ updateData = true; // 设置更新数据的标志位
break;
- case URI_DATA_ITEM:
- id = uri.getPathSegments().get(1);
- count = db.update(TABLE.DATA, values, DataColumns.ID + "=" + id
- + parseSelection(selection), selectionArgs);
- updateData = true;
+ case URI_DATA_ITEM: // 单个数据URI
+ id = uri.getPathSegments().get(1); // 获取URI中的数据ID
+ count = db.update(TABLE.DATA, values, DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs); // 更新指定ID的数据
+ updateData = true; // 设置更新数据的标志位
break;
default:
- throw new IllegalArgumentException("Unknown URI " + uri);
+ throw new IllegalArgumentException("Unknown URI " + uri); // 抛出未知URI异常
}
- if (count > 0) {
+ if (count > 0) { // 若更新成功
if (updateData) {
- getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null);
+ getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); // 通知笔记URI变化
}
- getContext().getContentResolver().notifyChange(uri, null);
+ getContext().getContentResolver().notifyChange(uri, null); // 通知URI变化
}
- return count;
+ return count; // 返回更新行数
}
-
private String parseSelection(String selection) {
return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : "");
}
+ /**
+ * 更新笔记的版本号。
+ *
+ * @param id 笔记ID
+ * @param selection 更新的约束条件
+ * @param selectionArgs 更新的约束条件参数
+ */
private void increaseNoteVersion(long id, String selection, String[] selectionArgs) {
StringBuilder sql = new StringBuilder(120);
sql.append("UPDATE ");
diff --git a/src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java b/src/app/src/main/java/net/micode/notes/gtask/data/MetaData.java
similarity index 55%
rename from src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java
rename to src/app/src/main/java/net/micode/notes/gtask/data/MetaData.java
index 3a2050b..6e30464 100644
--- a/src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java
+++ b/src/app/src/main/java/net/micode/notes/gtask/data/MetaData.java
@@ -25,58 +25,122 @@ import org.json.JSONException;
import org.json.JSONObject;
+/**
+ * 元数据类,继承自任务类。
+ */
public class MetaData extends Task {
- private final static String TAG = MetaData.class.getSimpleName();
+ private final static String TAG = MetaData.class.getSimpleName(); // 类型标签
- private String mRelatedGid = null;
+ private String mRelatedGid = null; // 相关 GTask 的 GID
+ /**
+ * 设置元数据信息,将关联 GTask 的 GID 存入 metaInfo 中
+ *
+ * @param gid 关联 GTask 的 GID
+ * @param metaInfo 元数据信息 JSON 对象
+ */
public void setMeta(String gid, JSONObject metaInfo) {
try {
+ // 将关联 GTask 的 GID 存入元数据信息中
metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid);
} catch (JSONException e) {
+ // 捕获异常,并记录日志
Log.e(TAG, "failed to put related gid");
}
+
+ // 将元数据信息转换为字符串,并设置为笔记内容
setNotes(metaInfo.toString());
+
+ // 设置笔记名称为元数据的默认名称
setName(GTaskStringUtils.META_NOTE_NAME);
}
+ /**
+ * 获取相关 GTask 的 GID
+ *
+ * @return 相关 GTask 的 GID
+ */
public String getRelatedGid() {
return mRelatedGid;
}
+ /**
+ * 判断是否需要保存
+ *
+ * @return 是否需要保存
+ */
@Override
public boolean isWorthSaving() {
- return getNotes() != null;
+ return getNotes() != null; // 判定是否笔记内容不为空
}
+ /**
+ * 从远端 JSON 对象中获取内容并设置实例属性
+ *
+ * @param js 远端 JSON 对象
+ */
@Override
public void setContentByRemoteJSON(JSONObject js) {
+ // 调用父类的方法设置实例属性
super.setContentByRemoteJSON(js);
+
+ // 如果笔记内容不为空
if (getNotes() != null) {
try {
+ // 将笔记内容转换为 JSON 对象
JSONObject metaInfo = new JSONObject(getNotes().trim());
+ // 从 JSON 对象中获取关联 GTask 的 GID,并存入实例属性 mRelatedGid
mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID);
} catch (JSONException e) {
+ // 捕获异常,并记录日志
Log.w(TAG, "failed to get related gid");
mRelatedGid = null;
}
}
}
+ /**
+ * 从本地 JSON 对象中获取内容并设置实例属性
+ *
+ * 注意:此方法不应该被调用
+ *
+ *
+ * @param js 本地 JSON 对象
+ * @throws IllegalAccessError 不应该调用此方法
+ */
@Override
public void setContentByLocalJSON(JSONObject js) {
// this function should not be called
throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called");
}
+ /**
+ * 获取内容的本地 JSON 对象表示
+ *
+ * 注意:此方法不应该被调用
+ *
+ *
+ * @return 本地 JSON 对象
+ * @throws IllegalAccessError 不应该调用此方法
+ */
@Override
public JSONObject getLocalJSONFromContent() {
throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called");
}
+ /**
+ * 获取同步操作
+ *
+ * 注意:此方法不应该被调用
+ *
+ *
+ * @param c Cursor 对象
+ * @return 同步操作
+ * @throws IllegalAccessError 不应该调用此方法
+ */
@Override
public int getSyncAction(Cursor c) {
throw new IllegalAccessError("MetaData:getSyncAction should not be called");
}
-}
+}
\ No newline at end of file
diff --git a/src/app/src/main/java/net/micode/notes/gtask/data/Node.java b/src/app/src/main/java/net/micode/notes/gtask/data/Node.java
new file mode 100644
index 0000000..67c53e6
--- /dev/null
+++ b/src/app/src/main/java/net/micode/notes/gtask/data/Node.java
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * 接口注释:
+ * Node 类是抽象节点类,用于表示应用程序中的节点。
+ */
+
+/*
+ * 数据成员注释:
+ * 1. mGid: 节点的全局唯一标识
+ * 2. mName: 节点的名称
+ * 3. mLastModified: 节点最后修改时间
+ * 4. mDeleted: 节点是否被标记为已删除
+ */
+
+/*
+ * 实现注释:
+ * 1. getCreateAction(int actionId): 获取创建操作的 JSON 对象表示
+ * 2. getUpdateAction(int actionId): 获取更新操作的 JSON 对象表示
+ * 3. setContentByRemoteJSON(JSONObject js): 从远端 JSON 对象中获取内容并设置实例属性
+ * 4. setContentByLocalJSON(JSONObject js): 从本地 JSON 对象中获取内容并设置实例属性
+ * 5. getLocalJSONFromContent(): 获取内容的本地 JSON 对象表示
+ * 6. getSyncAction(Cursor c): 获取同步操作
+ * 7. setGid(String gid): 设置节点的全局唯一标识
+ * 8. setName(String name): 设置节点的名称
+ * 9. setLastModified(long lastModified): 设置节点的最后修改时间
+ * 10. setDeleted(boolean deleted): 设置节点是否被标记为已删除
+ * 11. getGid(): 获取节点的全局唯一标识
+ * 12. getName(): 获取节点的名称
+ * 13. getLastModified(): 获取节点的最后修改时间
+ * 14. getDeleted(): 获取节点是否被标记为已删除
+ */
+
+/*
+ * 模块依赖注释:
+ * 该类依赖于 android.database.Cursor 类和 org.json.JSONObject 类
+ */
+package net.micode.notes.gtask.data;
+
+import android.database.Cursor;
+
+import org.json.JSONObject;
+
+public abstract class Node {
+ // 同步操作常量
+ public static final int SYNC_ACTION_NONE = 0;
+ public static final int SYNC_ACTION_ADD_REMOTE = 1;
+ public static final int SYNC_ACTION_ADD_LOCAL = 2;
+ public static final int SYNC_ACTION_DEL_REMOTE = 3;
+ public static final int SYNC_ACTION_DEL_LOCAL = 4;
+ public static final int SYNC_ACTION_UPDATE_REMOTE = 5;
+ public static final int SYNC_ACTION_UPDATE_LOCAL = 6;
+ public static final int SYNC_ACTION_UPDATE_CONFLICT = 7;
+ public static final int SYNC_ACTION_ERROR = 8;
+
+ private String mGid; // 节点的全局唯一标识
+ private String mName; // 节点的名称
+ private long mLastModified; // 节点最后修改时间
+ private boolean mDeleted; // 节点是否被标记为已删除
+
+ public Node() {
+ mGid = null;
+ mName = "";
+ mLastModified = 0;
+ mDeleted = false;
+ }
+
+ // 获取创建操作的JSON对象表示
+ public abstract JSONObject getCreateAction(int actionId);
+
+ // 获取更新操作的JSON对象表示
+ public abstract JSONObject getUpdateAction(int actionId);
+
+ // 从远端JSON对象中获取内容并设置实例属性
+ public abstract void setContentByRemoteJSON(JSONObject js);
+
+ // 从本地JSON对象中获取内容并设置实例属性
+ public abstract void setContentByLocalJSON(JSONObject js);
+
+ // 获取内容的本地JSON对象表示
+ public abstract JSONObject getLocalJSONFromContent();
+
+ // 获取同步操作
+ /**
+ * 获取同步操作
+ *
+ * @param c Cursor 对象
+ * @return 同步操作
+ */
+ public abstract int getSyncAction(Cursor c);
+
+ /**
+ * 设置 GTask 的 GID
+ *
+ * @param gid GTask 的 GID
+ */
+ public void setGid(String gid) {
+ this.mGid = gid;
+ }
+
+ /**
+ * 设置任务名称
+ *
+ * @param name 任务名称
+ */
+ public void setName(String name) {
+ this.mName = name;
+ }
+
+ /**
+ * 设置最后修改时间戳
+ *
+ * @param lastModified 最后修改时间戳
+ */
+ public void setLastModified(long lastModified) {
+ this.mLastModified = lastModified;
+ }
+
+ /**
+ * 设置删除状态
+ *
+ * @param deleted 删除状态
+ */
+ public void setDeleted(boolean deleted) {
+ this.mDeleted = deleted;
+ }
+
+ /**
+ * 获取 GTask 的 GID
+ *
+ * @return GTask 的 GID
+ */
+ public String getGid() {
+ return this.mGid;
+ }
+
+ /**
+ * 获取任务名称
+ *
+ * @return 任务名称
+ */
+ public String getName() {
+ return this.mName;
+ }
+
+ /**
+ * 获取最后修改时间戳
+ *
+ * @return 最后修改时间戳
+ */
+ public long getLastModified() {
+ return this.mLastModified;
+ }
+
+ /**
+ * 获取删除状态
+ *
+ * @return 删除状态
+ */
+ public boolean getDeleted() {
+ return this.mDeleted;
+ }
+}
\ No newline at end of file
diff --git a/src/Notes-master/src/net/micode/notes/gtask/data/SqlData.java b/src/app/src/main/java/net/micode/notes/gtask/data/SqlData.java
similarity index 68%
rename from src/Notes-master/src/net/micode/notes/gtask/data/SqlData.java
rename to src/app/src/main/java/net/micode/notes/gtask/data/SqlData.java
index d3ec3be..f8f15ff 100644
--- a/src/Notes-master/src/net/micode/notes/gtask/data/SqlData.java
+++ b/src/app/src/main/java/net/micode/notes/gtask/data/SqlData.java
@@ -34,54 +34,63 @@ import net.micode.notes.gtask.exception.ActionFailureException;
import org.json.JSONException;
import org.json.JSONObject;
-
+/*定义了一个sqlData类*/
public class SqlData {
private static final String TAG = SqlData.class.getSimpleName();
+ // 无效ID
private static final int INVALID_ID = -99999;
+ // 数据列投影
public static final String[] PROJECTION_DATA = new String[] {
DataColumns.ID, DataColumns.MIME_TYPE, DataColumns.CONTENT, DataColumns.DATA1,
DataColumns.DATA3
};
+ // 数据列索引
public static final int DATA_ID_COLUMN = 0;
-
public static final int DATA_MIME_TYPE_COLUMN = 1;
-
public static final int DATA_CONTENT_COLUMN = 2;
-
public static final int DATA_CONTENT_DATA_1_COLUMN = 3;
-
public static final int DATA_CONTENT_DATA_3_COLUMN = 4;
+ // 内容解析器
private ContentResolver mContentResolver;
+ // 是否创建数据标识
private boolean mIsCreate;
+ // 数据ID
private long mDataId;
+ // 数据MIME类型
private String mDataMimeType;
+ // 数据内容
private String mDataContent;
+ // 数据内容1
private long mDataContentData1;
+ // 数据内容3
private String mDataContentData3;
+ // 差异数据值
private ContentValues mDiffDataValues;
+ // 构造函数,初始化默认值
public SqlData(Context context) {
- mContentResolver = context.getContentResolver();
- mIsCreate = true;
- mDataId = INVALID_ID;
- mDataMimeType = DataConstants.NOTE;
- mDataContent = "";
- mDataContentData1 = 0;
- mDataContentData3 = "";
- mDiffDataValues = new ContentValues();
+ mContentResolver = context.getContentResolver();// 获取内容解析器
+ mIsCreate = true;// 默认为创建数据
+ mDataId = INVALID_ID; // 设置数据ID为无效ID
+ mDataMimeType = DataConstants.NOTE; // 默认数据MIME类型为DataConstants.NOTE
+ mDataContent = "";// 默认数据内容为空字符串
+ mDataContentData1 = 0;// 默认数据内容1为0
+ mDataContentData3 = "";// 默认数据内容3为空字符串
+ mDiffDataValues = new ContentValues();// 创建一个差异数据值的 ContentValues 对象
}
+ // 构造函数,从Cursor加载数据
public SqlData(Context context, Cursor c) {
mContentResolver = context.getContentResolver();
mIsCreate = false;
@@ -89,63 +98,75 @@ public class SqlData {
mDiffDataValues = new ContentValues();
}
+ // 从Cursor加载数据
private void loadFromCursor(Cursor c) {
- mDataId = c.getLong(DATA_ID_COLUMN);
- mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN);
- mDataContent = c.getString(DATA_CONTENT_COLUMN);
- mDataContentData1 = c.getLong(DATA_CONTENT_DATA_1_COLUMN);
- mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN);
+ mDataId = c.getLong(DATA_ID_COLUMN); // 从游标获取数据 ID
+ mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN); // 从游标获取数据的 MIME 类型
+ mDataContent = c.getString(DATA_CONTENT_COLUMN); // 从游标获取数据内容
+ mDataContentData1 = c.getLong(DATA_CONTENT_DATA_1_COLUMN); // 从游标获取数据内容的数据1
+ mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN); // 从游标获取数据内容的数据3
}
+ // 设置内容
public void setContent(JSONObject js) throws JSONException {
+ // 提取JSON中的数据ID,若不存在则使用无效ID
long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID;
+ // 若是创建操作或数据ID不同,则将新数据放入差异值中
if (mIsCreate || mDataId != dataId) {
mDiffDataValues.put(DataColumns.ID, dataId);
}
mDataId = dataId;
+ // 提取JSON中的数据MIME类型,若不存在则使用默认值
String dataMimeType = js.has(DataColumns.MIME_TYPE) ? js.getString(DataColumns.MIME_TYPE)
: DataConstants.NOTE;
+ // 若是创建操作或MIME类型不同,则将新数据放入差异值中
if (mIsCreate || !mDataMimeType.equals(dataMimeType)) {
mDiffDataValues.put(DataColumns.MIME_TYPE, dataMimeType);
}
mDataMimeType = dataMimeType;
+ // 提取JSON中的数据内容,若不存在则使用空字符串
String dataContent = js.has(DataColumns.CONTENT) ? js.getString(DataColumns.CONTENT) : "";
+ // 若是创建操作或内容不同,则将新数据放入差异值中
if (mIsCreate || !mDataContent.equals(dataContent)) {
mDiffDataValues.put(DataColumns.CONTENT, dataContent);
}
mDataContent = dataContent;
+ // 提取JSON中的数据内容1,若不存在则使用默认值
long dataContentData1 = js.has(DataColumns.DATA1) ? js.getLong(DataColumns.DATA1) : 0;
+ // 若是创建操作或内容1不同,则将新数据放入差异值中
if (mIsCreate || mDataContentData1 != dataContentData1) {
mDiffDataValues.put(DataColumns.DATA1, dataContentData1);
}
mDataContentData1 = dataContentData1;
+ // 提取JSON中的数据内容3,若不存在则使用空字符串
String dataContentData3 = js.has(DataColumns.DATA3) ? js.getString(DataColumns.DATA3) : "";
+ // 若是创建操作或内容3不同,则将新数据放入差异值中
if (mIsCreate || !mDataContentData3.equals(dataContentData3)) {
mDiffDataValues.put(DataColumns.DATA3, dataContentData3);
}
mDataContentData3 = dataContentData3;
}
-
public JSONObject getContent() throws JSONException {
+ // 接口注释:获取数据内容
if (mIsCreate) {
Log.e(TAG, "it seems that we haven't created this in database yet");
return null;
}
JSONObject js = new JSONObject();
- js.put(DataColumns.ID, mDataId);
- js.put(DataColumns.MIME_TYPE, mDataMimeType);
- js.put(DataColumns.CONTENT, mDataContent);
- js.put(DataColumns.DATA1, mDataContentData1);
- js.put(DataColumns.DATA3, mDataContentData3);
+ js.put(DataColumns.ID, mDataId);// 数据成员注释:数据Id
+ js.put(DataColumns.MIME_TYPE, mDataMimeType);// 数据成员注释:数据类型
+ js.put(DataColumns.CONTENT, mDataContent);// 数据成员注释:数据内容
+ js.put(DataColumns.DATA1, mDataContentData1);// 数据成员注释:数据ContentData1
+ js.put(DataColumns.DATA3, mDataContentData3);// 数据成员注释:数据ContentData3
return js;
}
public void commit(long noteId, boolean validateVersion, long version) {
-
+ // 实现注释:提交数据
if (mIsCreate) {
if (mDataId == INVALID_ID && mDiffDataValues.containsKey(DataColumns.ID)) {
mDiffDataValues.remove(DataColumns.ID);
@@ -163,11 +184,12 @@ public class SqlData {
if (mDiffDataValues.size() > 0) {
int result = 0;
if (!validateVersion) {
+ // 模块依赖注释:更新数据
result = mContentResolver.update(ContentUris.withAppendedId(
Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, null, null);
} else {
result = mContentResolver.update(ContentUris.withAppendedId(
- Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues,
+ Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues,
" ? in (SELECT " + NoteColumns.ID + " FROM " + TABLE.NOTE
+ " WHERE " + NoteColumns.VERSION + "=?)", new String[] {
String.valueOf(noteId), String.valueOf(version)
@@ -184,6 +206,7 @@ public class SqlData {
}
public long getId() {
+ // 接口注释:获取数据Id
return mDataId;
}
}
diff --git a/src/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java b/src/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java
new file mode 100644
index 0000000..28e4b17
--- /dev/null
+++ b/src/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java
@@ -0,0 +1,502 @@
+/*
+ * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.micode.notes.gtask.data;
+
+import android.appwidget.AppWidgetManager;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.util.Log;
+
+import net.micode.notes.data.Notes;
+import net.micode.notes.data.Notes.DataColumns;
+import net.micode.notes.data.Notes.NoteColumns;
+import net.micode.notes.gtask.exception.ActionFailureException;
+import net.micode.notes.tool.GTaskStringUtils;
+import net.micode.notes.tool.ResourceParser;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+
+/**
+ * 数据成员注释:SqlNote类负责与数据库中的笔记数据进行交互处理。
+ */
+public class SqlNote {
+ private static final String TAG = SqlNote.class.getSimpleName();
+
+ private static final int INVALID_ID = -99999;
+
+ // 定义查询笔记使用的投影列数组
+ public static final String[] PROJECTION_NOTE = new String[] {
+ // 以下依次对应列的含义
+ NoteColumns.ID, NoteColumns.ALERTED_DATE, NoteColumns.BG_COLOR_ID,
+ NoteColumns.CREATED_DATE, NoteColumns.HAS_ATTACHMENT, NoteColumns.MODIFIED_DATE,
+ NoteColumns.NOTES_COUNT, NoteColumns.PARENT_ID, NoteColumns.SNIPPET, NoteColumns.TYPE,
+ NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, NoteColumns.SYNC_ID,
+ NoteColumns.LOCAL_MODIFIED, NoteColumns.ORIGIN_PARENT_ID, NoteColumns.GTASK_ID,
+ NoteColumns.VERSION
+ };
+
+ // 以下依次对应PROJECTION_NOTE中列的下标
+ public static final int ID_COLUMN = 0;
+ public static final int ALERTED_DATE_COLUMN = 1;
+ public static final int BG_COLOR_ID_COLUMN = 2;
+ public static final int CREATED_DATE_COLUMN = 3;
+ public static final int HAS_ATTACHMENT_COLUMN = 4;
+ public static final int MODIFIED_DATE_COLUMN = 5;
+ public static final int NOTES_COUNT_COLUMN = 6;
+ public static final int PARENT_ID_COLUMN = 7;
+ public static final int SNIPPET_COLUMN = 8;
+ public static final int TYPE_COLUMN = 9;
+ public static final int WIDGET_ID_COLUMN = 10;
+ public static final int WIDGET_TYPE_COLUMN = 11;
+ public static final int SYNC_ID_COLUMN = 12;
+ public static final int LOCAL_MODIFIED_COLUMN = 13;
+ public static final int ORIGIN_PARENT_ID_COLUMN = 14;
+ public static final int GTASK_ID_COLUMN = 15;
+ public static final int VERSION_COLUMN = 16;
+
+ private Context mContext;
+
+ private ContentResolver mContentResolver;
+
+ private boolean mIsCreate;
+
+ private long mId;
+ private long mAlertDate;
+ private int mBgColorId;
+ private long mCreatedDate;
+ private int mHasAttachment;
+ private long mModifiedDate;
+ private long mParentId;
+ private String mSnippet;
+ private int mType;
+ private int mWidgetId;
+ private int mWidgetType;
+ private long mOriginParent;
+ private long mVersion;
+ private ContentValues mDiffNoteValues;
+ private ArrayList mDataList;
+
+ /**
+ * 接口注释:SqlNote类用于对笔记数据进行数据库操作的封装。
+ *
+ * @param context 上下文环境
+ */
+ public SqlNote(Context context) {
+ mContext = context; // 上下文对象
+ mContentResolver = context.getContentResolver(); // 获取内容解析器
+ mIsCreate = true; // 是否是创建状态
+ mId = INVALID_ID; // ID 设置为无效值
+ mAlertDate = 0; // 提醒日期初始化为0
+ mBgColorId = ResourceParser.getDefaultBgId(context); // 背景颜色ID初始化为默认背景颜色
+ mCreatedDate = System.currentTimeMillis(); // 创建日期初始化为当前时间
+ mHasAttachment = 0; // 是否有附件初始化为0 - 表示没有附件
+ mModifiedDate = System.currentTimeMillis(); // 修改日期初始化为当前时间
+ mParentId = 0; // 父级ID初始化为0
+ mSnippet = ""; // 摘录初始化为空字符串
+ mType = Notes.TYPE_NOTE; // 类型为普通笔记类型
+ mWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; // 小部件ID初始化为无效ID
+ mWidgetType = Notes.TYPE_WIDGET_INVALIDE; // 小部件类型初始化为无效类型
+ mOriginParent = 0; // 原始父级ID初始化为0
+ mVersion = 0; // 版本号初始化为0
+ mDiffNoteValues = new ContentValues(); // 差异笔记值的容器
+ mDataList = new ArrayList(); // 数据列表容器
+ }
+
+ /**
+ * 实现注释:通过数据库游标加载SqlNote对象。
+ *
+ * @param context 上下文环境
+ * @param c 数据库游标
+ */
+ public SqlNote(Context context, Cursor c) {
+ mContext = context; // 上下文对象
+ mContentResolver = context.getContentResolver(); // 获取内容解析器
+ mIsCreate = false; // 是否是创建状态设置为false
+ loadFromCursor(c); // 从游标加载数据
+ mDataList = new ArrayList(); // 数据列表容器
+ if (mType == Notes.TYPE_NOTE) // 如果类型为普通笔记类型
+ loadDataContent(); // 加载数据内容
+ mDiffNoteValues = new ContentValues(); // 差异笔记值的容器
+ }
+
+ /**
+ * 实现注释:通过笔记ID加载SqlNote对象。
+ *
+ * @param context 上下文环境
+ * @param id 笔记ID
+ */
+ public SqlNote(Context context, long id) {
+ mContext = context; // 上下文对象
+ mContentResolver = context.getContentResolver(); // 获取内容解析器
+ mIsCreate = false; // 是否是创建状态设置为 false
+ loadFromCursor(id); // 根据ID从游标加载数据
+ mDataList = new ArrayList(); // 数据列表容器
+ if (mType == Notes.TYPE_NOTE) // 如果类型为普通笔记类型
+ loadDataContent(); // 加载数据内容
+ mDiffNoteValues = new ContentValues(); // 差异笔记值的容器
+ }
+
+ // ...(未完)
+
+ /**
+ * 从Cursor中加载指定id的笔记数据。
+ * @param id 笔记ID
+ */
+ private void loadFromCursor(long id) {
+ Cursor c = null;
+ try {
+ // 通过查询URI和ID获取匹配的Cursor对象
+ c = mContentResolver.query(Notes.CONTENT_NOTE_URI, PROJECTION_NOTE, "(_id=?)",
+ new String[] { String.valueOf(id) }, null);
+ if (c != null) {
+ c.moveToNext();
+ loadFromCursor(c);
+ } else {
+ Log.w(TAG, "loadFromCursor: cursor = null");
+ }
+ } finally {
+ if (c != null)
+ c.close();
+ }
+ }
+
+ /**
+ * 从Cursor中加载笔记数据并赋值给相应的成员变量。
+ * @param c 笔记Cursor对象
+ */
+ private void loadFromCursor(Cursor c) {
+ mId = c.getLong(ID_COLUMN); // 从游标中获取ID
+ mAlertDate = c.getLong(ALERTED_DATE_COLUMN); // 从游标中获取提醒日期
+ mBgColorId = c.getInt(BG_COLOR_ID_COLUMN); // 从游标中获取背景颜色ID
+ mCreatedDate = c.getLong(CREATED_DATE_COLUMN); // 从游标中获取创建日期
+ mHasAttachment = c.getInt(HAS_ATTACHMENT_COLUMN); // 从游标中获取是否有附件
+ mModifiedDate = c.getLong(MODIFIED_DATE_COLUMN); // 从游标中获取修改日期
+ mParentId = c.getLong(PARENT_ID_COLUMN); // 从游标中获取父级ID
+ mSnippet = c.getString(SNIPPET_COLUMN); // 从游标中获取摘录
+ mType = c.getInt(TYPE_COLUMN); // 从游标中获取类型
+ mWidgetId = c.getInt(WIDGET_ID_COLUMN); // 从游标中获取小部件ID
+ mWidgetType = c.getInt(WIDGET_TYPE_COLUMN); // 从游标中获取小部件类型
+ mVersion = c.getLong(VERSION_COLUMN); // 从游标中获取版本号
+ }
+ /**
+ * 加载笔记的附加数据。
+ */
+ private void loadDataContent() {
+ Cursor c = null;
+ mDataList.clear();
+ try {
+ // 通过查询URI和笔记ID获取匹配的笔记附加数据Cursor对象
+ c = mContentResolver.query(Notes.CONTENT_DATA_URI, SqlData.PROJECTION_DATA,
+ "(note_id=?)", new String[] { String.valueOf(mId) }, null);
+ if (c != null) {
+ if (c.getCount() == 0) {
+ Log.w(TAG, "it seems that the note has not data");
+ return;
+ }
+ // 遍历Cursor,构造SqlData对象并添加到附加数据列表中
+ while (c.moveToNext()) {
+ SqlData data = new SqlData(mContext, c);
+ mDataList.add(data);
+ }
+ } else {
+ Log.w(TAG, "loadDataContent: cursor = null");
+ }
+ } finally {
+ if (c != null)
+ c.close();
+ }
+ }
+
+
+
+ /**
+ * 设置笔记的内容,更新笔记的类型、小部件信息、原始父文件夹 ID 和附件数据
+ *
+ * @param js 包含笔记和数据的 JSON 对象
+ * @return 设置是否成功的布尔值
+ */
+ // 数据成员注释:
+ // mIsCreate:标记是否为创建新笔记的操作
+ // mType:笔记的类型
+ // mWidgetId:笔记的小部件 ID
+ // mWidgetType:笔记的小部件类型
+ // mOriginParent:笔记的原始父文件夹 ID
+ // mDiffNoteValues:记录与原始笔记不同的属性和值的映射关系
+ // mDataList:存储附件数据的列表
+ // 实现注释:
+ // 更新笔记属性:
+ // 更新笔记的类型(如果有改变)
+ // 更新笔记的小部件 ID(如果有改变)
+ // 更新笔记的小部件类型(如果有改变)
+ // 更新笔记的原始父文件夹 ID(如果有改变)
+ // 遍历附件数据,处理每一项:
+ // 如果附件数据已存在于 mDataList 中,则使用现有的 SqlData 对象
+ // 否则,创建新的 SqlData 对象并添加到 mDataList 中
+ // 设置附件数据的内容
+
+ // 模块依赖注释:
+ // 依赖的类:
+ // JSONObject:JSON 对象类
+ // JSONArray:JSON 数组类
+ // SqlData:自定义的 SQL 数据类
+ // 依赖的接口和方法:
+ // AppWidgetManager.INVALID_APPWIDGET_ID:无效的小部件 ID 值
+ // NoteColumns.TYPE:笔记类型在数据库中的列名
+ // NoteColumns.WIDGET_ID:小部件 ID 在数据库中的列名
+ // NoteColumns.WIDGET_TYPE:小部件类型在数据库中的列名
+ // NoteColumns.ORIGIN_PARENT_ID:原始父文件夹 ID 在数据库中的列名
+ // DataColumns.ID:附件数据 ID 在数据库中的列名
+ // SqlData.setContent(data):设置附件数据的内容的方法
+ public boolean setContent(JSONObject js) {
+ try {
+ // 提取笔记对象和数据数组
+ JSONObject note = js.getJSONObject("note"); // 提取笔记对象
+ JSONArray dataArray = js.getJSONArray("dataArray"); // 提取数据数组
+
+ // 更新笔记的类型
+ int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) : Notes.TYPE_NOTE;
+ if (mIsCreate || mType != type) {
+ mDiffNoteValues.put(NoteColumns.TYPE, type); // 将类型加入差异笔记值中
+ }
+ mType = type;
+
+ // 更新笔记的小部件 ID
+ int widgetId = note.has(NoteColumns.WIDGET_ID) ? note.getInt(NoteColumns.WIDGET_ID) : AppWidgetManager.INVALID_APPWIDGET_ID;
+ if (mIsCreate || mWidgetId != widgetId) {
+ mDiffNoteValues.put(NoteColumns.WIDGET_ID, widgetId); // 将小部件 ID 加入差异笔记值中
+ }
+ mWidgetId = widgetId;
+
+ // 更新笔记的小部件类型
+ int widgetType = note.has(NoteColumns.WIDGET_TYPE) ? note.getInt(NoteColumns.WIDGET_TYPE) : Notes.TYPE_WIDGET_INVALIDE;
+ if (mIsCreate || mWidgetType != widgetType) {
+ mDiffNoteValues.put(NoteColumns.WIDGET_TYPE, widgetType); // 将小部件类型加入差异笔记值中
+ }
+ mWidgetType = widgetType;
+
+ // 更新笔记的原始父文件夹 ID
+ long originParent = note.has(NoteColumns.ORIGIN_PARENT_ID) ? note.getLong(NoteColumns.ORIGIN_PARENT_ID) : 0;
+ if (mIsCreate || mOriginParent != originParent) {
+ mDiffNoteValues.put(NoteColumns.ORIGIN_PARENT_ID, originParent); // 将原始父文件夹 ID 加入差异笔记值中
+ }
+ mOriginParent = originParent;
+
+ // 更新笔记的附件数据
+ for (int i = 0; i < dataArray.length(); i++) {
+ JSONObject data = dataArray.getJSONObject(i);
+ SqlData sqlData = null;
+ if (data.has(DataColumns.ID)) {
+ long dataId = data.getLong(DataColumns.ID);
+ for (SqlData temp : mDataList) {
+ if (dataId == temp.getId()) {
+ sqlData = temp;
+ }
+ }
+ }
+
+ if (sqlData == null) {
+ sqlData = new SqlData(mContext);
+ mDataList.add(sqlData);
+ }
+
+ // 设置附件数据的内容
+ sqlData.setContent(data); // 设置附件数据的内容
+ }
+ } catch (JSONException e) {
+ Log.e(TAG, e.toString());
+ e.printStackTrace();
+ return false; // 解析失败,返回 false
+ }
+ return true; // 解析成功,返回 true
+ }
+ /**
+ * 获取笔记内容的 JSON 对象
+ *
+ * @return 笔记内容的 JSON 对象,或者返回 null 如果笔记未创建在数据库中
+ */
+ public JSONObject getContent() {
+ try {
+ JSONObject js = new JSONObject();
+
+ if (mIsCreate) {
+ Log.e(TAG, "在数据库中似乎还没有创建此笔记");
+ return null;
+ }
+
+ JSONObject note = new JSONObject();
+ if (mType == Notes.TYPE_NOTE) {
+ // 数据成员注释:
+ // NoteColumns.ID:笔记 ID
+ // NoteColumns.ALERTED_DATE:提醒日期
+ // NoteColumns.BG_COLOR_ID:背景颜色 ID
+ // NoteColumns.CREATED_DATE:创建日期
+ // NoteColumns.HAS_ATTACHMENT:是否有附件
+ // NoteColumns.MODIFIED_DATE:修改日期
+ // NoteColumns.PARENT_ID:父文件夹 ID
+ // NoteColumns.SNIPPET:内容摘要
+ // NoteColumns.TYPE:笔记类型
+ // NoteColumns.WIDGET_ID:小部件 ID
+ // NoteColumns.WIDGET_TYPE:小部件类型
+ // NoteColumns.ORIGIN_PARENT_ID:原始父文件夹 ID
+ note.put(NoteColumns.ID, mId);
+ note.put(NoteColumns.ALERTED_DATE, mAlertDate);
+ note.put(NoteColumns.BG_COLOR_ID, mBgColorId);
+ note.put(NoteColumns.CREATED_DATE, mCreatedDate);
+ note.put(NoteColumns.HAS_ATTACHMENT, mHasAttachment);
+ note.put(NoteColumns.MODIFIED_DATE, mModifiedDate);
+ note.put(NoteColumns.PARENT_ID, mParentId);
+ note.put(NoteColumns.SNIPPET, mSnippet);
+ note.put(NoteColumns.TYPE, mType);
+ note.put(NoteColumns.WIDGET_ID, mWidgetId);
+ note.put(NoteColumns.WIDGET_TYPE, mWidgetType);
+ note.put(NoteColumns.ORIGIN_PARENT_ID, mOriginParent);
+ js.put(GTaskStringUtils.META_HEAD_NOTE, note);
+
+ JSONArray dataArray = new JSONArray();
+ for (SqlData sqlData : mDataList) {
+ JSONObject data = sqlData.getContent();
+ if (data != null) {
+ dataArray.put(data);
+ }
+ }
+ js.put(GTaskStringUtils.META_HEAD_DATA, dataArray);
+ } else if (mType == Notes.TYPE_FOLDER || mType == Notes.TYPE_SYSTEM) {
+ // 数据成员注释:
+ // NoteColumns.ID:笔记 ID
+ // NoteColumns.TYPE:笔记类型
+ // NoteColumns.SNIPPET:内容摘要
+ note.put(NoteColumns.ID, mId);
+ note.put(NoteColumns.TYPE, mType);
+ note.put(NoteColumns.SNIPPET, mSnippet);
+ js.put(GTaskStringUtils.META_HEAD_NOTE, note);
+ }
+
+ return js;
+ } catch (JSONException e) {
+ Log.e(TAG, e.toString());
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public void setParentId(long id) {
+ mParentId = id;
+ mDiffNoteValues.put(NoteColumns.PARENT_ID, id);
+ }
+
+ public void setGtaskId(String gid) {
+ mDiffNoteValues.put(NoteColumns.GTASK_ID, gid);
+ }
+
+ public void setSyncId(long syncId) {
+ mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId);
+ }
+
+ public void resetLocalModified() {
+ mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0);
+ }
+
+ public long getId() {
+ return mId;
+ }
+
+ public long getParentId() {
+ return mParentId;
+ }
+
+ public String getSnippet() {
+ return mSnippet;
+ }
+
+ public boolean isNoteType() {
+ return mType == Notes.TYPE_NOTE;
+ }
+
+ /**
+ * 提交操作,根据不同情况执行创建或更新操作
+ *
+ * @param validateVersion 是否验证版本
+ */
+ public void commit(boolean validateVersion) {
+ if (mIsCreate) { // 如果是创建状态
+ if (mId == INVALID_ID && mDiffNoteValues.containsKey(NoteColumns.ID)) {
+ mDiffNoteValues.remove(NoteColumns.ID); // 移除差异笔记值中的 ID 键
+ }
+
+ Uri uri = mContentResolver.insert(Notes.CONTENT_NOTE_URI, mDiffNoteValues); // 将差异笔记值插入内容提供器
+ try {
+ mId = Long.valueOf(uri.getPathSegments().get(1)); // 从 URI 中获取插入的笔记 ID
+ } catch (NumberFormatException e) {
+ Log.e(TAG, "Get note id error :" + e.toString()); // 打印错误日志
+ throw new ActionFailureException("create note failed"); // 抛出操作失败异常
+ }
+ if (mId == 0) {
+ throw new IllegalStateException("Create thread id failed"); // 抛出非法状态异常
+ }
+
+ if (mType == Notes.TYPE_NOTE) { // 如果类型为普通笔记类型
+ for (SqlData sqlData : mDataList) { // 遍历数据列表
+ sqlData.commit(mId, false, -1); // 提交数据
+ }
+ }
+ } else {
+ if (mId <= 0 && mId != Notes.ID_ROOT_FOLDER && mId != Notes.ID_CALL_RECORD_FOLDER) {
+ Log.e(TAG, "No such note"); // 打印错误日志
+ throw new IllegalStateException("Try to update note with invalid id"); // 抛出非法状态异常
+ }
+ if (mDiffNoteValues.size() > 0) {
+ mVersion++; // 版本号加一
+ int result = 0;
+ if (!validateVersion) {
+ result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "("
+ + NoteColumns.ID + "=?)", new String[] {
+ String.valueOf(mId)
+ });
+ } else {
+ result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "("
+ + NoteColumns.ID + "=?) AND (" + NoteColumns.VERSION + "<=?)",
+ new String[] {
+ String.valueOf(mId), String.valueOf(mVersion)
+ });
+ }
+ if (result == 0) {
+ Log.w(TAG, "there is no update. maybe user updates note when syncing");
+ }
+ }
+
+ if (mType == Notes.TYPE_NOTE) { // 如果类型为普通笔记类型
+ for (SqlData sqlData : mDataList) { // 遍历数据列表
+ sqlData.commit(mId, validateVersion, mVersion); // 提交数据
+ }
+ }
+ }
+
+ // 刷新本地信息
+ loadFromCursor(mId);
+ if (mType == Notes.TYPE_NOTE)
+ loadDataContent();
+
+ mDiffNoteValues.clear(); // 清空差异笔记值
+ mIsCreate = false; // 设置为非创建状态
+ }
+}
diff --git a/src/app/src/main/java/net/micode/notes/gtask/data/Task.java b/src/app/src/main/java/net/micode/notes/gtask/data/Task.java
new file mode 100644
index 0000000..37aab6a
--- /dev/null
+++ b/src/app/src/main/java/net/micode/notes/gtask/data/Task.java
@@ -0,0 +1,447 @@
+/*
+ * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.micode.notes.gtask.data;
+
+import android.database.Cursor;
+import android.text.TextUtils;
+import android.util.Log;
+
+import net.micode.notes.data.Notes;
+import net.micode.notes.data.Notes.DataColumns;
+import net.micode.notes.data.Notes.DataConstants;
+import net.micode.notes.data.Notes.NoteColumns;
+import net.micode.notes.gtask.exception.ActionFailureException;
+import net.micode.notes.tool.GTaskStringUtils;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+
+/**
+ * 任务类,表示一个任务节点。
+ */
+public class Task extends Node {
+ private static final String TAG = Task.class.getSimpleName();
+
+ private boolean mCompleted; // 标识任务是否已完成
+
+ private String mNotes; // 任务的备注信息
+
+ private JSONObject mMetaInfo; // 任务的附加元数据
+
+ private Task mPriorSibling; // 任务列表中该任务的前一个任务节点
+
+ private TaskList mParent; // 该任务的父任务列表
+
+ /**
+ * 构造函数,创建一个具有默认值的 Task 对象。
+ */
+ public Task() {
+ super();
+ mCompleted = false;
+ mNotes = null;
+ mPriorSibling = null;
+ mParent = null;
+ mMetaInfo = null;
+ }
+
+ /**
+ * 生成创建任务的 JSON 对象。
+ *
+ * @param actionId 创建操作的 ID
+ * @return 创建操作的 JSON 对象
+ * @throws ActionFailureException 如果生成 JSON 对象失败
+ */
+ /**
+ * 生成创建任务的 JSON 对象。
+ *
+ * @param actionId 创建操作的 ID
+ * @return 创建操作的 JSON 对象
+ * @throws ActionFailureException 如果生成 JSON 对象失败
+ */
+ public JSONObject getCreateAction(int actionId) throws ActionFailureException {
+ JSONObject js = new JSONObject(); // 创建一个新的 JSON 对象
+
+ try {
+ // action_type
+ js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, // 设置 JSON 对象中的 action_type 字段
+ GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE);
+
+ // action_id
+ js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); // 设置 JSON 对象中的 action_id 字段
+
+ // index
+ js.put(GTaskStringUtils.GTASK_JSON_INDEX, mParent.getChildTaskIndex(this)); // 设置 JSON 对象中的 index 字段,调用 mParent 中的 getChildTaskIndex 方法获得任务的索引
+
+ // entity_delta
+ JSONObject entity = new JSONObject(); // 创建一个新的 JSON 对象 entity
+ entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); // 设置 entity 中的 name 字段为当前任务的名字
+ entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); // 设置 entity 中的 creator_id 字段为 null
+ entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, // 设置 entity 中的 entity_type 字段为类型为任务
+ GTaskStringUtils.GTASK_JSON_TYPE_TASK);
+ if (getNotes() != null) {
+ entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); // 如果任务有备注信息,则设置 entity 中的 notes 字段为任务的备注信息
+ }
+ js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); // 将 entity 对象作为 JSON 对象的 entity_delta 字段的值
+
+ // parent_id
+ js.put(GTaskStringUtils.GTASK_JSON_PARENT_ID, mParent.getGid()); // 设置 JSON 对象中的 parent_id 字段为该任务的父任务列表的 gid
+
+ // dest_parent_type
+ js.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT_TYPE, // 设置 JSON 对象中的 dest_parent_type 字段为组类型
+ GTaskStringUtils.GTASK_JSON_TYPE_GROUP);
+
+ // list_id
+ js.put(GTaskStringUtils.GTASK_JSON_LIST_ID, mParent.getGid()); // 设置 JSON 对象中的 list_id 字段为该任务的父任务列表的 gid
+
+ // prior_sibling_id
+ if (mPriorSibling != null) {
+ js.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, mPriorSibling.getGid()); // 如果存在前一个任务节点,则设置 prior_sibling_id 为前一个任务节点的 gid
+ }
+
+ } catch (JSONException e) {
+ Log.e(TAG, e.toString()); // 打印错误日志
+ e.printStackTrace(); // 输出异常信息
+ throw new ActionFailureException("生成任务创建 JSON 对象失败"); // 抛出生成任务创建 JSON 对象失败的异常
+ }
+
+ return js; // 返回创建的 JSON 对象
+ }
+
+
+ /**
+ * 生成更新任务的 JSON 对象。
+ *
+ * @param actionId 更新操作的 ID
+ * @return 更新操作的 JSON 对象
+ */
+ public JSONObject getUpdateAction(int actionId) {
+ JSONObject js = new JSONObject(); // 创建一个新的 JSON 对象
+
+ try {
+ // action_type
+ js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, // 设置 JSON 对象中的 action_type 字段为更新操作类型
+ GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE);
+
+ // action_id
+ js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); // 设置 JSON 对象中的 action_id 字段为指定的操作 ID
+
+ // id
+ js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); // 设置 JSON 对象中的 id 字段为当前任务的 gid
+
+ // entity_delta
+ JSONObject entity = new JSONObject(); // 创建一个新的 JSON 对象 entity
+ entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); // 设置 entity 中的 name 字段为当前任务的名字
+ if (getNotes() != null) {
+ entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); // 如果任务有备注信息,则设置 entity 中的 notes 字段为任务的备注
+ }
+ entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); // 设置 entity 中的 deleted 字段为当前任务的删除状态
+ js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); // 将 entity 对象作为 JSON 对象的 entity_delta 字段的值
+
+ } catch (JSONException e) {
+ Log.e(TAG, e.toString()); // 打印错误日志
+ e.printStackTrace(); // 输出异常信息
+ throw new ActionFailureException("fail to generate task-update jsonobject"); // 抛出生成任务更新 JSON 对象失败的异常
+ }
+
+ return js; // 返回创建的 JSON 对象
+ }
+
+ /**
+ * 从远程 JSON 对象设置内容。
+ *
+ * @param js 远程 JSON 对象
+ */
+ public void setContentByRemoteJSON(JSONObject js) {
+ if (js != null) {
+ try {
+ // id
+ if (js.has(GTaskStringUtils.GTASK_JSON_ID)) {
+ setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); // 如果 JSON 对象中包含 id 字段,则设置当前对象的 gid
+ }
+
+ // last_modified
+ if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) {
+ setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); // 如果 JSON 对象中包含 last_modified 字段,则设置当前对象的 last_modified
+ }
+
+ // name
+ if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) {
+ setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); // 如果 JSON 对象中包含 name 字段,则设置当前对象的 name
+ }
+
+ // notes
+ if (js.has(GTaskStringUtils.GTASK_JSON_NOTES)) {
+ setNotes(js.getString(GTaskStringUtils.GTASK_JSON_NOTES)); // 如果 JSON 对象中包含 notes 字段,则设置当前对象的 notes
+ }
+
+ // deleted
+ if (js.has(GTaskStringUtils.GTASK_JSON_DELETED)) {
+ setDeleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_DELETED)); // 如果 JSON 对象中包含 deleted 字段,则设置当前对象的 deleted
+ }
+
+ // completed
+ if (js.has(GTaskStringUtils.GTASK_JSON_COMPLETED)) {
+ setCompleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_COMPLETED)); // 如果 JSON 对象中包含 completed 字段,则设置当前对象的 completed
+ }
+ } catch (JSONException e) {
+ Log.e(TAG, e.toString()); // 打印错误日志
+ e.printStackTrace(); // 输出异常信息
+ throw new ActionFailureException("fail to get task content from jsonobject"); // 抛出从 JSON 对象获取任务内容失败的异常
+ }
+ }
+ }
+
+ /**
+ * 从本地 JSON 对象设置内容。
+ *
+ * @param js 本地 JSON 对象
+ */
+ public void setContentByLocalJSON(JSONObject js) {
+ if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)
+ || !js.has(GTaskStringUtils.META_HEAD_DATA)) {
+ Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); // 如果本地 JSON 对象为空,或者缺少必要的元数据,记录警告日志并返回
+ }
+
+ try {
+ JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); // 获取元数据中的笔记信息
+ JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); // 获取元数据中的数据数组
+
+ if (note.getInt(NoteColumns.TYPE) != Notes.TYPE_NOTE) {
+ Log.e(TAG, "invalid type"); // 如果笔记类型不是普通笔记,记录错误日志并返回
+ return;
+ }
+
+ for (int i = 0; i < dataArray.length(); i++) {
+ JSONObject data = dataArray.getJSONObject(i); // 获取数组中的每个数据对象
+ if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) {
+ setName(data.getString(DataColumns.CONTENT)); // 如果数据的 MIME 类型是笔记,设置当前对象的名称为数据的内容并结束循环
+ break;
+ }
+ }
+
+ } catch (JSONException e) {
+ Log.e(TAG, e.toString()); // 记录异常信息
+ e.printStackTrace(); // 输出异常信息
+ }
+ }
+ /**
+ * 从内容生成本地 JSON 对象。
+ *
+ * @return 本地 JSON 对象
+ */
+ public JSONObject getLocalJSONFromContent() {
+ String name = getName(); // 获取当前对象的名称
+
+ try {
+ if (mMetaInfo == null) {
+ // 从网络创建的新任务
+ if (name == null) {
+ Log.w(TAG, "the note seems to be an empty one"); // 如果名称为空,记录警告日志并返回 null
+ return null;
+ }
+
+ JSONObject js = new JSONObject(); // 创建新的 JSON 对象
+ JSONObject note = new JSONObject(); // 创建笔记的 JSON 对象
+ JSONArray dataArray = new JSONArray(); // 创建数据的 JSON 数组
+ JSONObject data = new JSONObject(); // 创建数据的 JSON 对象
+ data.put(DataColumns.CONTENT, name); // 设置数据的内容为名称
+ dataArray.put(data); // 将数据添加到数据数组中
+ js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); // 将数据数组添加到 JSON 对象中的元数据中
+ note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); // 设置笔记类型为普通笔记
+ js.put(GTaskStringUtils.META_HEAD_NOTE, note); // 将笔记添加到 JSON 对象中的元数据中
+ return js; // 返回 JSON 对象
+
+ } else {
+ // 同步的任务
+ JSONObject note = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); // 获取元数据中的笔记信息
+ JSONArray dataArray = mMetaInfo.getJSONArray(GTaskStringUtils.META_HEAD_DATA); // 获取元数据中的数据数组
+
+ for (int i = 0; i < dataArray.length(); i++) {
+ JSONObject data = dataArray.getJSONObject(i); // 获取数组中的每个数据对象
+ if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) {
+ data.put(DataColumns.CONTENT, getName()); // 如果数据的 MIME 类型是笔记,将内容设置为当前对象的名称并结束循环
+ break;
+ }
+ }
+
+ note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); // 设置笔记类型为普通笔记
+ return mMetaInfo; // 返回元数据 JSON 对象
+
+ }
+ } catch (JSONException e) {
+ Log.e(TAG, e.toString()); // 记录异常信息
+ e.printStackTrace(); // 输出异常信息
+ return null; // 返回 null
+ }
+ }
+
+ /**
+ * 设置元数据信息。
+ *
+ * @param metaData 元数据对象
+ */
+ public void setMetaInfo(MetaData metaData) {
+ if (metaData != null && metaData.getNotes() != null) { // 如果元数据不为空并且包含笔记信息
+ try {
+ mMetaInfo = new JSONObject(metaData.getNotes()); // 将笔记信息转换为 JSON 对象并赋给成员变量 mMetaInfo
+ } catch (JSONException e) {
+ Log.w(TAG, e.toString()); // 记录警告日志
+ mMetaInfo = null; // 转换失败时将 mMetaInfo 设为 null
+ }
+ }
+ }
+
+ /**
+ * 根据游标信息获取同步操作动作。
+ *
+ * @param c 数据库游标
+ * @return 同步操作动作的整型值
+ */
+ public int getSyncAction(Cursor c) {
+ try {
+ JSONObject noteInfo = null;
+ if (mMetaInfo != null && mMetaInfo.has(GTaskStringUtils.META_HEAD_NOTE)) { // 检查元数据中是否包含笔记信息
+ noteInfo = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); // 获取笔记信息的 JSON 对象
+ }
+
+ if (noteInfo == null) { // 如果笔记信息为 null,表示笔记元数据被删除
+ Log.w(TAG, "it seems that note meta has been deleted"); // 记录警告日志
+ return SYNC_ACTION_UPDATE_REMOTE; // 返回更新远程的操作动作
+ }
+
+ if (!noteInfo.has(NoteColumns.ID)) { // 如果笔记信息中不包含 ID
+ Log.w(TAG, "remote note id seems to be deleted"); // 记录警告日志
+ return SYNC_ACTION_UPDATE_LOCAL; // 返回更新本地的操作动作
+ }
+
+ // 验证笔记的 ID
+ if (c.getLong(SqlNote.ID_COLUMN) != noteInfo.getLong(NoteColumns.ID)) { // 如果数据库游标中的 ID 与笔记信息中的 ID 不匹配
+ Log.w(TAG, "note id doesn't match"); // 记录警告日志
+ return SYNC_ACTION_UPDATE_LOCAL; // 返回更新本地的操作动作
+ }
+
+ if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { // 如果本地未有更新
+ if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { // 如果数据库游标中的最后修改时间与当前对象的最后修改时间相同
+ return SYNC_ACTION_NONE; // 返回无操作的操作动作
+ } else {
+ return SYNC_ACTION_UPDATE_LOCAL; // 返回更新本地的操作动作
+ }
+ } else {
+ // 验证 GTask ID
+ if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { // 如果数据库游标中的 GTask ID 与当前对象的 GTask ID 不匹配
+ Log.e(TAG, "gtask id doesn't match"); // 记录错误日志
+ return SYNC_ACTION_ERROR; // 返回错误的操作动作
+ }
+ if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { // 如果数据库游标中的最后修改时间与当前对象的最后修改时间相同
+ return SYNC_ACTION_UPDATE_REMOTE; // 返回更新远程的操作动作
+ } else {
+ return SYNC_ACTION_UPDATE_CONFLICT; // 返回更新冲突的操作动作
+ }
+ }
+ } catch (Exception e) {
+ Log.e(TAG, e.toString()); // 记录异常日志
+ e.printStackTrace(); // 打印异常堆栈信息
+ }
+
+ return SYNC_ACTION_ERROR; // 返回错误的操作动作
+ }
+
+ /**
+ * 检查任务是否值得保存。
+ *
+ * @return 如果任务值得保存返回 true,否则返回 false
+ */
+ public boolean isWorthSaving() {
+ return mMetaInfo != null || (getName() != null && getName().trim().length() > 0)
+ || (getNotes() != null && getNotes().trim().length() > 0); // 判断任务是否值得保存的条件
+ }
+
+ /**
+ * 设置任务完成状态。
+ *
+ * @param completed 完成状态
+ */
+ public void setCompleted(boolean completed) {
+ this.mCompleted = completed;
+ }
+
+ /**
+ * 设置任务的笔记信息。
+ *
+ * @param notes 笔记信息
+ */
+ public void setNotes(String notes) {
+ this.mNotes = notes;
+ }
+
+ /**
+ * 设置任务的前一个兄弟节点。
+ *
+ * @param priorSibling 前一个兄弟节点
+ */
+ public void setPriorSibling(Task priorSibling) {
+ this.mPriorSibling = priorSibling;
+ }
+
+ /**
+ * 设置任务的父任务列表。
+ *
+ * @param parent 父任务列表
+ */
+ public void setParent(TaskList parent) {
+ this.mParent = parent;
+ }
+
+ /**
+ * 获取任务完成状态。
+ *
+ * @return 任务完成状态
+ */
+ public boolean getCompleted() {
+ return this.mCompleted;
+ }
+
+ /**
+ * 获取任务的笔记信息。
+ *
+ * @return 任务的笔记信息
+ */
+ public String getNotes() {
+ return this.mNotes;
+ }
+
+ /**
+ * 获取任务的前一个兄弟节点。
+ *
+ * @return 任务的前一个兄弟节点
+ */
+ public Task getPriorSibling() {
+ return this.mPriorSibling;
+ }
+
+ /**
+ * 获取任务的父任务列表。
+ *
+ * @return 任务的父任务列表
+ */
+ public TaskList getParent() {
+ return this.mParent;
+ }
+
+}
diff --git a/src/Notes-master/src/net/micode/notes/gtask/data/TaskList.java b/src/app/src/main/java/net/micode/notes/gtask/data/TaskList.java
similarity index 69%
rename from src/Notes-master/src/net/micode/notes/gtask/data/TaskList.java
rename to src/app/src/main/java/net/micode/notes/gtask/data/TaskList.java
index 4ea21c5..b8f7df1 100644
--- a/src/Notes-master/src/net/micode/notes/gtask/data/TaskList.java
+++ b/src/app/src/main/java/net/micode/notes/gtask/data/TaskList.java
@@ -30,20 +30,33 @@ import org.json.JSONObject;
import java.util.ArrayList;
+/**
+ * 任务列表类,继承自节点类
+ */
public class TaskList extends Node {
private static final String TAG = TaskList.class.getSimpleName();
- private int mIndex;
+ private int mIndex; // 任务列表的索引值
- private ArrayList mChildren;
+ private ArrayList mChildren; // 子任务列表
+ /**
+ * 构造函数,初始化任务列表和索引值
+ */
public TaskList() {
super();
mChildren = new ArrayList();
mIndex = 1;
}
- public JSONObject getCreateAction(int actionId) {
+ /**
+ * 获取创建任务列表的操作
+ *
+ * @param actionId 操作的 ID
+ * @return JSON 对象,包含创建任务列表的操作信息
+ * @throws ActionFailureException 当生成任务列表创建 JSON 对象失败时抛出异常
+ */
+ public JSONObject getCreateAction(int actionId) throws ActionFailureException {
JSONObject js = new JSONObject();
try {
@@ -73,8 +86,14 @@ public class TaskList extends Node {
return js;
}
-
- public JSONObject getUpdateAction(int actionId) {
+ /**
+ * 获取更新任务列表的操作
+ *
+ * @param actionId 操作的 ID
+ * @return JSON 对象,包含更新任务列表的操作信息
+ * @throws ActionFailureException 当生成任务列表更新 JSON 对象失败时抛出异常
+ */
+ public JSONObject getUpdateAction(int actionId) throws ActionFailureException {
JSONObject js = new JSONObject();
try {
@@ -103,20 +122,25 @@ public class TaskList extends Node {
return js;
}
+ /**
+ * 通过远程JSON设置任务列表的内容
+ *
+ * @param js 远程传入的JSON对象
+ */
public void setContentByRemoteJSON(JSONObject js) {
if (js != null) {
try {
- // id
+ // 从JSON对象中获取任务列表的ID并设置
if (js.has(GTaskStringUtils.GTASK_JSON_ID)) {
setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID));
}
- // last_modified
+ // 从JSON对象中获取任务列表的最后修改时间并设置
if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) {
setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED));
}
- // name
+ // 从JSON对象中获取任务列表的名称并设置
if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) {
setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME));
}
@@ -129,23 +153,29 @@ public class TaskList extends Node {
}
}
+ /**
+ * 通过本地JSON设置任务列表的内容
+ *
+ * @param js 本地传入的JSON对象
+ */
public void setContentByLocalJSON(JSONObject js) {
if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)) {
- Log.w(TAG, "setContentByLocalJSON: nothing is avaiable");
+ Log.w(TAG, "setContentByLocalJSON: nothing is available");
}
try {
JSONObject folder = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) {
+ // 如果是文件夹类型的笔记,获取名称并设置为任务列表的名称
String name = folder.getString(NoteColumns.SNIPPET);
setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + name);
} else if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) {
+ // 如果是系统类型的笔记
if (folder.getLong(NoteColumns.ID) == Notes.ID_ROOT_FOLDER)
setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT);
else if (folder.getLong(NoteColumns.ID) == Notes.ID_CALL_RECORD_FOLDER)
- setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX
- + GTaskStringUtils.FOLDER_CALL_NOTE);
+ setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_CALL_NOTE);
else
Log.e(TAG, "invalid system folder");
} else {
@@ -157,6 +187,11 @@ public class TaskList extends Node {
}
}
+ /**
+ * 从任务列表内容获取本地JSON对象
+ *
+ * @return 本地JSON对象
+ */
public JSONObject getLocalJSONFromContent() {
try {
JSONObject js = new JSONObject();
@@ -164,8 +199,9 @@ public class TaskList extends Node {
String folderName = getName();
if (getName().startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX))
- folderName = folderName.substring(GTaskStringUtils.MIUI_FOLDER_PREFFIX.length(),
- folderName.length());
+ folderName = folderName.substring(GTaskStringUtils.MIUI_FOLDER_PREFFIX.length(), folderName.length());
+
+ // 设置文件夹名称和类型到JSON对象中
folder.put(NoteColumns.SNIPPET, folderName);
if (folderName.equals(GTaskStringUtils.FOLDER_DEFAULT)
|| folderName.equals(GTaskStringUtils.FOLDER_CALL_NOTE))
@@ -183,28 +219,34 @@ public class TaskList extends Node {
}
}
+ /**
+ * 获取同步操作类型
+ *
+ * @param c 游标对象,用于获取数据库中的字段值
+ * @return 同步操作类型
+ */
public int getSyncAction(Cursor c) {
try {
if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) {
- // there is no local update
+ // 没有本地更新
if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) {
- // no update both side
+ // 两边都没有更新
return SYNC_ACTION_NONE;
} else {
- // apply remote to local
+ // 应用远程更新到本地
return SYNC_ACTION_UPDATE_LOCAL;
}
} else {
- // validate gtask id
+ // 验证 GTask ID 是否匹配
if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) {
Log.e(TAG, "gtask id doesn't match");
return SYNC_ACTION_ERROR;
}
if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) {
- // local modification only
+ // 只有本地修改
return SYNC_ACTION_UPDATE_REMOTE;
} else {
- // for folder conflicts, just apply local modification
+ // 对于文件夹冲突,只应用本地修改
return SYNC_ACTION_UPDATE_REMOTE;
}
}
@@ -220,20 +262,31 @@ public class TaskList extends Node {
return mChildren.size();
}
+ /**
+ * 添加子任务
+ *
+ * @param task 要添加的子任务
+ * @return 添加成功返回 true,否则返回 false
+ */
public boolean addChildTask(Task task) {
boolean ret = false;
if (task != null && !mChildren.contains(task)) {
ret = mChildren.add(task);
if (ret) {
- // need to set prior sibling and parent
- task.setPriorSibling(mChildren.isEmpty() ? null : mChildren
- .get(mChildren.size() - 1));
+ // 需要设置前一个兄弟和父任务
+ task.setPriorSibling(mChildren.isEmpty() ? null : mChildren.get(mChildren.size() - 1));
task.setParent(this);
}
}
return ret;
}
-
+ /**
+ * 添加指定位置的子任务
+ *
+ * @param task 要添加的子任务
+ * @param index 要添加的位置
+ * @return 添加成功返回 true,否则返回 false
+ */
public boolean addChildTask(Task task, int index) {
if (index < 0 || index > mChildren.size()) {
Log.e(TAG, "add child task: invalid index");
@@ -244,7 +297,7 @@ public class TaskList extends Node {
if (task != null && pos == -1) {
mChildren.add(index, task);
- // update the task list
+ // 更新任务列表
Task preTask = null;
Task afterTask = null;
if (index != 0)
@@ -260,6 +313,12 @@ public class TaskList extends Node {
return true;
}
+ /**
+ * 移除子任务
+ *
+ * @param task 要移除的子任务
+ * @return 移除成功返回 true,否则返回 false
+ */
public boolean removeChildTask(Task task) {
boolean ret = false;
int index = mChildren.indexOf(task);
@@ -267,20 +326,26 @@ public class TaskList extends Node {
ret = mChildren.remove(task);
if (ret) {
- // reset prior sibling and parent
+ // 重置前一个兄弟和父任务
task.setPriorSibling(null);
task.setParent(null);
- // update the task list
+ // 更新任务列表
if (index != mChildren.size()) {
- mChildren.get(index).setPriorSibling(
- index == 0 ? null : mChildren.get(index - 1));
+ mChildren.get(index).setPriorSibling(index == 0 ? null : mChildren.get(index - 1));
}
}
}
return ret;
}
+ /**
+ * 移动子任务到指定位置
+ *
+ * @param task 要移动的子任务
+ * @param index 目标位置
+ * @return 移动成功返回 true,否则返回 false
+ */
public boolean moveChildTask(Task task, int index) {
if (index < 0 || index >= mChildren.size()) {
@@ -290,7 +355,7 @@ public class TaskList extends Node {
int pos = mChildren.indexOf(task);
if (pos == -1) {
- Log.e(TAG, "move child task: the task should in the list");
+ Log.e(TAG, "move child task: the task should be in the list");
return false;
}
@@ -299,6 +364,12 @@ public class TaskList extends Node {
return (removeChildTask(task) && addChildTask(task, index));
}
+ /**
+ * 根据 gid 查找子任务
+ *
+ * @param gid 子任务的 gid
+ * @return 找到的子任务,如果不存在则返回 null
+ */
public Task findChildTaskByGid(String gid) {
for (int i = 0; i < mChildren.size(); i++) {
Task t = mChildren.get(i);
@@ -309,10 +380,22 @@ public class TaskList extends Node {
return null;
}
+ /**
+ * 获取子任务在列表中的索引
+ *
+ * @param task 子任务
+ * @return 子任务在列表中的索引,如果不存在则返回 -1
+ */
public int getChildTaskIndex(Task task) {
return mChildren.indexOf(task);
}
+ /**
+ * 根据索引获取子任务
+ *
+ * @param index 索引
+ * @return 索引对应的子任务,如果索引无效则返回 null
+ */
public Task getChildTaskByIndex(int index) {
if (index < 0 || index >= mChildren.size()) {
Log.e(TAG, "getTaskByIndex: invalid index");
@@ -321,7 +404,13 @@ public class TaskList extends Node {
return mChildren.get(index);
}
- public Task getChilTaskByGid(String gid) {
+ /**
+ * 根据 gid 获取子任务
+ *
+ * @param gid 子任务的 gid
+ * @return 找到的子任务,如果不存在则返回 null
+ */
+ public Task getChildTaskByGid(String gid) {
for (Task task : mChildren) {
if (task.getGid().equals(gid))
return task;
@@ -329,14 +418,29 @@ public class TaskList extends Node {
return null;
}
+ /**
+ * 获取子任务列表
+ *
+ * @return 子任务列表
+ */
public ArrayList getChildTaskList() {
return this.mChildren;
}
+ /**
+ * 设置索引
+ *
+ * @param index 索引
+ */
public void setIndex(int index) {
this.mIndex = index;
}
+ /**
+ * 获取索引
+ *
+ * @return 索引
+ */
public int getIndex() {
return this.mIndex;
}
diff --git a/src/Notes-master/src/net/micode/notes/gtask/exception/ActionFailureException.java b/src/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java
similarity index 68%
rename from src/Notes-master/src/net/micode/notes/gtask/exception/ActionFailureException.java
rename to src/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java
index 15504be..c6e0637 100644
--- a/src/Notes-master/src/net/micode/notes/gtask/exception/ActionFailureException.java
+++ b/src/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java
@@ -16,18 +16,38 @@
package net.micode.notes.gtask.exception;
+/**
+ * 表示操作失败的异常类
+ */
public class ActionFailureException extends RuntimeException {
+ /**
+ * 用于版本控制的序列化 ID
+ */
private static final long serialVersionUID = 4425249765923293627L;
+ /**
+ * 构造一个新的 ActionFailureException,不带详细信息
+ */
public ActionFailureException() {
super();
}
+ /**
+ * 构造一个新的 ActionFailureException,带详细信息
+ *
+ * @param paramString 异常详细信息
+ */
public ActionFailureException(String paramString) {
super(paramString);
}
+ /**
+ * 构造一个新的 ActionFailureException,带详细信息和原始异常
+ *
+ * @param paramString 异常详细信息
+ * @param paramThrowable 原始异常
+ */
public ActionFailureException(String paramString, Throwable paramThrowable) {
super(paramString, paramThrowable);
}
-}
+}
\ No newline at end of file
diff --git a/src/Notes-master/src/net/micode/notes/gtask/exception/NetworkFailureException.java b/src/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java
similarity index 67%
rename from src/Notes-master/src/net/micode/notes/gtask/exception/NetworkFailureException.java
rename to src/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java
index b08cfb1..4fa2c73 100644
--- a/src/Notes-master/src/net/micode/notes/gtask/exception/NetworkFailureException.java
+++ b/src/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java
@@ -16,17 +16,37 @@
package net.micode.notes.gtask.exception;
+/**
+ * 表示网络操作失败的异常类
+ */
public class NetworkFailureException extends Exception {
+ /**
+ * 用于版本控制的序列化 ID
+ */
private static final long serialVersionUID = 2107610287180234136L;
+ /**
+ * 构造一个新的 NetworkFailureException,不带详细信息
+ */
public NetworkFailureException() {
super();
}
+ /**
+ * 构造一个新的 NetworkFailureException,带详细信息
+ *
+ * @param paramString 异常详细信息
+ */
public NetworkFailureException(String paramString) {
super(paramString);
}
+ /**
+ * 构造一个新的 NetworkFailureException,带详细信息和原始异常
+ *
+ * @param paramString 异常详细信息
+ * @param paramThrowable 原始异常
+ */
public NetworkFailureException(String paramString, Throwable paramThrowable) {
super(paramString, paramThrowable);
}
diff --git a/src/Notes-master/src/net/micode/notes/gtask/remote/GTaskASyncTask.java b/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java
similarity index 59%
rename from src/Notes-master/src/net/micode/notes/gtask/remote/GTaskASyncTask.java
rename to src/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java
index b3b61e7..da4a67b 100644
--- a/src/Notes-master/src/net/micode/notes/gtask/remote/GTaskASyncTask.java
+++ b/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java
@@ -28,28 +28,38 @@ import net.micode.notes.R;
import net.micode.notes.ui.NotesListActivity;
import net.micode.notes.ui.NotesPreferenceActivity;
-
+/**
+ * 用于执行GTask异步任务的类,继承自AsyncTask。
+ */
public class GTaskASyncTask extends AsyncTask {
- private static int GTASK_SYNC_NOTIFICATION_ID = 5234235;
+ private static int GTASK_SYNC_NOTIFICATION_ID = 5234235; // GTask同步通知ID
+ /**
+ * 完成监听器接口
+ */
public interface OnCompleteListener {
void onComplete();
}
- private Context mContext;
+ private Context mContext;// 上下文对象
- private NotificationManager mNotifiManager;
+ private NotificationManager mNotifiManager;// 通知管理器
- private GTaskManager mTaskManager;
+ private GTaskManager mTaskManager;// GTask管理器
- private OnCompleteListener mOnCompleteListener;
+ private OnCompleteListener mOnCompleteListener;// 完成监听器对象
+ /**
+ * 构造一个新的GTaskASyncTask对象
+ *
+ * @param context 上下文对象
+ * @param listener 完成监听器
+ */
public GTaskASyncTask(Context context, OnCompleteListener listener) {
mContext = context;
mOnCompleteListener = listener;
- mNotifiManager = (NotificationManager) mContext
- .getSystemService(Context.NOTIFICATION_SERVICE);
+ mNotifiManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
mTaskManager = GTaskManager.getInstance();
}
@@ -59,61 +69,97 @@ public class GTaskASyncTask extends AsyncTask {
public void publishProgess(String message) {
publishProgress(new String[] {
- message
+ message
});
}
+ /**
+ * 显示通知
+ *
+ * @param tickerId 通知ID
+ * @param content 通知内容
+ */
private void showNotification(int tickerId, String content) {
- Notification notification = new Notification(R.drawable.notification, mContext
- .getString(tickerId), System.currentTimeMillis());
+ // 创建一个通知对象
+ Notification notification = new Notification(R.drawable.notification, mContext.getString(tickerId),
+ System.currentTimeMillis());
+ // 设置通知的默认行为为闪光灯提醒
notification.defaults = Notification.DEFAULT_LIGHTS;
+ // 设置通知的标志为自动取消
notification.flags = Notification.FLAG_AUTO_CANCEL;
PendingIntent pendingIntent;
+ // 如果通知ID不是成功通知的ID
if (tickerId != R.string.ticker_success) {
- pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
- NotesPreferenceActivity.class), 0);
-
+ // 创建一个启动设置偏好活动的PendingIntent
+ pendingIntent = PendingIntent.getActivity(mContext, 0,
+ new Intent(mContext, NotesPreferenceActivity.class), 0);
} else {
- pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
- NotesListActivity.class), 0);
+ // 创建一个启动笔记列表活动的PendingIntent
+ pendingIntent = PendingIntent.getActivity(mContext, 0,
+ new Intent(mContext, NotesListActivity.class), 0);
}
- notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content,
- pendingIntent);
+ // 设置通知的最新事件信息
+ notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content, pendingIntent);
+ // 发送通知
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
- .getSyncAccountName(mContext)));
+ // 发布登录同步进度消息
+ publishProgess(mContext.getString(R.string.sync_progress_login,
+ NotesPreferenceActivity.getSyncAccountName(mContext)));
+ // 执行同步任务并返回结果
return mTaskManager.sync(mContext, this);
}
+ /**
+ * 更新进度时的处理
+ *
+ * @param progress 进度消息
+ */
@Override
protected void onProgressUpdate(String... progress) {
+ // 显示同步中通知
showNotification(R.string.ticker_syncing, progress[0]);
+ // 如果上下文是GTaskSyncService的实例,发送广播
if (mContext instanceof GTaskSyncService) {
((GTaskSyncService) mContext).sendBroadcast(progress[0]);
}
}
+ /**
+ * 后台任务执行完成时的处理
+ *
+ * @param result 执行结果
+ */
@Override
protected void onPostExecute(Integer result) {
if (result == GTaskManager.STATE_SUCCESS) {
+ // 显示成功通知
showNotification(R.string.ticker_success, mContext.getString(
R.string.success_sync_account, mTaskManager.getSyncAccount()));
+ // 设置最后同步时间
NotesPreferenceActivity.setLastSyncTime(mContext, System.currentTimeMillis());
} else if (result == GTaskManager.STATE_NETWORK_ERROR) {
+ // 显示网络错误通知
showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_network));
} else if (result == GTaskManager.STATE_INTERNAL_ERROR) {
+ // 显示内部错误通知
showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_internal));
} else if (result == GTaskManager.STATE_SYNC_CANCELLED) {
- showNotification(R.string.ticker_cancel, mContext
- .getString(R.string.error_sync_cancelled));
+ // 显示同步取消通知
+ showNotification(R.string.ticker_cancel, mContext.getString(R.string.error_sync_cancelled));
}
+ // 如果存在完成监听器,则在新线程中执行完成操作
if (mOnCompleteListener != null) {
new Thread(new Runnable() {
-
public void run() {
mOnCompleteListener.onComplete();
}
diff --git a/src/Notes-master/src/net/micode/notes/gtask/remote/GTaskClient.java b/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java
similarity index 69%
rename from src/Notes-master/src/net/micode/notes/gtask/remote/GTaskClient.java
rename to src/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java
index c67dfdf..266bf46 100644
--- a/src/Notes-master/src/net/micode/notes/gtask/remote/GTaskClient.java
+++ b/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java
@@ -61,47 +61,71 @@ import java.util.zip.Inflater;
import java.util.zip.InflaterInputStream;
+/**
+ * GTaskClient类,用于管理Google任务的客户端
+ */
public class GTaskClient {
+ // 日志标签
private static final String TAG = GTaskClient.class.getSimpleName();
+ // Google任务的基础URL
private static final String GTASK_URL = "https://mail.google.com/tasks/";
+ // 获取Google任务的URL
private static final String GTASK_GET_URL = "https://mail.google.com/tasks/ig";
+ // 提交Google任务的URL
private static final String GTASK_POST_URL = "https://mail.google.com/tasks/r/ig";
+ // GTaskClient的单例实例
private static GTaskClient mInstance = null;
+ // 默认的HTTP客户端
private DefaultHttpClient mHttpClient;
+ // 获取任务的URL
private String mGetUrl;
+ // 提交任务的URL
private String mPostUrl;
+ // 客户端版本号
private long mClientVersion;
+ // 登录状态
private boolean mLoggedin;
+ // 上次登录时间
private long mLastLoginTime;
+ // 操作ID
private int mActionId;
+ // 账户信息
private Account mAccount;
+ // 待更新的任务数组
private JSONArray mUpdateArray;
-
+ /**
+ * 私有构造函数,初始化GTaskClient的实例
+ */
private GTaskClient() {
- mHttpClient = null;
- mGetUrl = GTASK_GET_URL;
- mPostUrl = GTASK_POST_URL;
- mClientVersion = -1;
- mLoggedin = false;
- mLastLoginTime = 0;
- mActionId = 1;
- mAccount = null;
- mUpdateArray = null;
+ mHttpClient = null; // HTTP客户端
+ mGetUrl = GTASK_GET_URL; // 获取任务的URL
+ mPostUrl = GTASK_POST_URL; // 提交任务的URL
+ mClientVersion = -1; // 客户端版本号
+ mLoggedin = false; // 登录状态
+ mLastLoginTime = 0; // 上次登录时间
+ mActionId = 1; // 操作ID
+ mAccount = null; // 账户信息
+ mUpdateArray = null; // 待更新的任务数组
}
+ /**
+ * 获取GTaskClient的单例实例
+ *
+ * @return GTaskClient的单例实例
+ */
public static synchronized GTaskClient getInstance() {
if (mInstance == null) {
mInstance = new GTaskClient();
@@ -109,18 +133,21 @@ public class GTaskClient {
return mInstance;
}
+ /**
+ * 登录Google账户
+ *
+ * @param activity 当前Activity
+ * @return 登录成功返回true,否则返回false
+ */
public boolean login(Activity activity) {
- // we suppose that the cookie would expire after 5 minutes
- // then we need to re-login
+ // 假设cookie在5分钟后过期,需要重新登录
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
- .getSyncAccountName(activity))) {
+ // 如果账户切换,则需要重新登录
+ if (mLoggedin && !TextUtils.equals(getSyncAccount().name, NotesPreferenceActivity.getSyncAccountName(activity))) {
mLoggedin = false;
}
@@ -136,9 +163,8 @@ public class GTaskClient {
return false;
}
- // login with custom domain if necessary
- if (!(mAccount.name.toLowerCase().endsWith("gmail.com") || mAccount.name.toLowerCase()
- .endsWith("googlemail.com"))) {
+ // 如果是自定义域名,则使用自定义域名登录
+ if (!(mAccount.name.toLowerCase().endsWith("gmail.com") || mAccount.name.toLowerCase().endsWith("googlemail.com"))) {
StringBuilder url = new StringBuilder(GTASK_URL).append("a/");
int index = mAccount.name.indexOf('@') + 1;
String suffix = mAccount.name.substring(index);
@@ -151,7 +177,7 @@ public class GTaskClient {
}
}
- // try to login with google official url
+ // 尝试使用Google官方的URL进行登录
if (!mLoggedin) {
mGetUrl = GTASK_GET_URL;
mPostUrl = GTASK_POST_URL;
@@ -164,6 +190,13 @@ public class GTaskClient {
return true;
}
+ /**
+ * 登录Google账户
+ *
+ * @param activity 当前Activity
+ * @param invalidateToken 是否使token无效
+ * @return 返回登录成功后的authToken,如果失败返回null
+ */
private String loginGoogleAccount(Activity activity, boolean invalidateToken) {
String authToken;
AccountManager accountManager = AccountManager.get(activity);
@@ -189,14 +222,14 @@ public class GTaskClient {
return null;
}
- // get the token now
- AccountManagerFuture accountManagerFuture = accountManager.getAuthToken(account,
- "goanna_mobile", null, activity, null, null);
+ // 获取token
+ AccountManagerFuture accountManagerFuture = accountManager.getAuthToken(account, "goanna_mobile", null, activity, null, null);
try {
Bundle authTokenBundle = accountManagerFuture.getResult();
authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN);
if (invalidateToken) {
accountManager.invalidateAuthToken("com.google", authToken);
+ // 使token无效后再次尝试登录
loginGoogleAccount(activity, false);
}
} catch (Exception e) {
@@ -207,10 +240,16 @@ public class GTaskClient {
return authToken;
}
+ /**
+ * 尝试登录Gtask
+ *
+ * @param activity 当前Activity
+ * @param authToken 要使用的authToken
+ * @return 登录成功返回true,否则返回false
+ */
private boolean tryToLoginGtask(Activity activity, String authToken) {
if (!loginGtask(authToken)) {
- // maybe the auth token is out of date, now let's invalidate the
- // token and try again
+ // 可能authToken已过期,现在让我们使token失效并重新尝试登录
authToken = loginGoogleAccount(activity, true);
if (authToken == null) {
Log.e(TAG, "login google account failed");
@@ -225,25 +264,35 @@ public class GTaskClient {
return true;
}
+ /**
+ * 登录GTask
+ *
+ * @param authToken 要使用的authToken
+ * @return 登录成功返回true,否则返回false
+ */
private boolean loginGtask(String authToken) {
int timeoutConnection = 10000;
int timeoutSocket = 15000;
+
+ // 设置HTTP连接和等待超时参数
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
+
+ // 创建HttpClient并设置Cookie存储
mHttpClient = new DefaultHttpClient(httpParameters);
BasicCookieStore localBasicCookieStore = new BasicCookieStore();
mHttpClient.setCookieStore(localBasicCookieStore);
HttpProtocolParams.setUseExpectContinue(mHttpClient.getParams(), false);
- // login gtask
+ // 登录GTask
try {
String loginUrl = mGetUrl + "?auth=" + authToken;
HttpGet httpGet = new HttpGet(loginUrl);
HttpResponse response = null;
response = mHttpClient.execute(httpGet);
- // get the cookie now
+ // 获取Cookie
List cookies = mHttpClient.getCookieStore().getCookies();
boolean hasAuthCookie = false;
for (Cookie cookie : cookies) {
@@ -255,7 +304,7 @@ public class GTaskClient {
Log.w(TAG, "it seems that there is no auth cookie");
}
- // get the client version
+ // 获取客户端版本
String resString = getResponseContent(response.getEntity());
String jsBegin = "_setup(";
String jsEnd = ")}";
@@ -272,7 +321,7 @@ public class GTaskClient {
e.printStackTrace();
return false;
} catch (Exception e) {
- // simply catch all exceptions
+ // 捕获所有异常
Log.e(TAG, "httpget gtask_url failed");
return false;
}
@@ -291,14 +340,24 @@ public class GTaskClient {
return httpPost;
}
+ /**
+ * 获取HTTP响应内容
+ *
+ * @param entity 响应实体对象
+ * @return 响应内容字符串
+ * @throws IOException 当读取响应内容时出现IO异常
+ */
private String getResponseContent(HttpEntity entity) throws IOException {
+ // 获取内容的编码方式
String contentEncoding = null;
if (entity.getContentEncoding() != null) {
contentEncoding = entity.getContentEncoding().getValue();
Log.d(TAG, "encoding: " + contentEncoding);
}
+ // 获取响应内容的输入流
InputStream input = entity.getContent();
+ // 根据编码方式解压缩输入流
if (contentEncoding != null && contentEncoding.equalsIgnoreCase("gzip")) {
input = new GZIPInputStream(entity.getContent());
} else if (contentEncoding != null && contentEncoding.equalsIgnoreCase("deflate")) {
@@ -311,6 +370,7 @@ public class GTaskClient {
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
+ // 逐行读取响应内容并拼接为字符串
while (true) {
String buff = br.readLine();
if (buff == null) {
@@ -319,208 +379,282 @@ public class GTaskClient {
sb = sb.append(buff);
}
} finally {
+ // 关闭输入流
input.close();
}
}
+ /**
+ * 发起POST请求并获取JSON格式的响应
+ *
+ * @param js 待发送的JSON对象
+ * @return 服务器响应的JSON对象
+ * @throws NetworkFailureException 当网络操作失败时抛出此异常
+ */
private JSONObject postRequest(JSONObject js) throws NetworkFailureException {
+ // 检查是否已登录
if (!mLoggedin) {
Log.e(TAG, "please login first");
throw new ActionFailureException("not logged in");
}
+ // 创建HTTP POST请求
HttpPost httpPost = createHttpPost();
try {
+ // 将JSON对象添加到POST请求中的参数中
LinkedList list = new LinkedList();
list.add(new BasicNameValuePair("r", js.toString()));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, "UTF-8");
httpPost.setEntity(entity);
- // execute the post
+ // 执行POST请求
HttpResponse response = mHttpClient.execute(httpPost);
+ // 获取响应内容并转换为JSON对象
String jsString = getResponseContent(response.getEntity());
return new JSONObject(jsString);
} catch (ClientProtocolException e) {
+ // 客户端协议异常,通常是因为无效的HTTP协议
Log.e(TAG, e.toString());
e.printStackTrace();
throw new NetworkFailureException("postRequest failed");
} catch (IOException e) {
+ // IO异常,包括网络连接问题等
Log.e(TAG, e.toString());
e.printStackTrace();
throw new NetworkFailureException("postRequest failed");
} catch (JSONException e) {
+ // JSON解析异常
Log.e(TAG, e.toString());
e.printStackTrace();
throw new ActionFailureException("unable to convert response content to jsonobject");
} catch (Exception e) {
+ // 其他异常
Log.e(TAG, e.toString());
e.printStackTrace();
throw new ActionFailureException("error occurs when posting request");
}
}
+ /**
+ * 创建任务
+ *
+ * @param task 待创建的任务对象
+ * @throws NetworkFailureException 当网络操作失败时抛出此异常
+ */
public void createTask(Task task) throws NetworkFailureException {
+ // 提交更新
commitUpdate();
try {
+ // 创建POST请求的JSON对象
JSONObject jsPost = new JSONObject();
JSONArray actionList = new JSONArray();
- // action_list
+ // 添加任务的创建动作到action_list中
actionList.put(task.getCreateAction(getActionId()));
jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList);
- // client_version
+ // 添加客户端版本号
jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
- // post
+ // 发起POST请求
JSONObject jsResponse = postRequest(jsPost);
+
+ // 处理响应数据
JSONObject jsResult = (JSONObject) jsResponse.getJSONArray(
GTaskStringUtils.GTASK_JSON_RESULTS).get(0);
task.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID));
} catch (JSONException e) {
+ // JSON解析异常
Log.e(TAG, e.toString());
e.printStackTrace();
- throw new ActionFailureException("create task: handing jsonobject failed");
+ throw new ActionFailureException("create task: handling jsonobject failed");
}
}
-
+ /**
+ * 创建任务列表
+ *
+ * @param tasklist 待创建的任务列表对象
+ * @throws NetworkFailureException 当网络操作失败时抛出此异常
+ */
public void createTaskList(TaskList tasklist) throws NetworkFailureException {
+ // 提交更新
commitUpdate();
try {
+ // 创建POST请求的JSON对象
JSONObject jsPost = new JSONObject();
JSONArray actionList = new JSONArray();
- // action_list
+ // 添加任务列表的创建动作到action_list中
actionList.put(tasklist.getCreateAction(getActionId()));
jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList);
- // client version
+ // 添加客户端版本号
jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
- // post
+ // 发起POST请求
JSONObject jsResponse = postRequest(jsPost);
+
+ // 处理响应数据
JSONObject jsResult = (JSONObject) jsResponse.getJSONArray(
GTaskStringUtils.GTASK_JSON_RESULTS).get(0);
tasklist.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID));
} catch (JSONException e) {
+ // JSON解析异常
Log.e(TAG, e.toString());
e.printStackTrace();
- throw new ActionFailureException("create tasklist: handing jsonobject failed");
+ throw new ActionFailureException("create tasklist: handling jsonobject failed");
}
}
+ /**
+ * 提交更新
+ * @throws NetworkFailureException 当网络操作失败时抛出此异常
+ */
public void commitUpdate() throws NetworkFailureException {
if (mUpdateArray != null) {
try {
JSONObject jsPost = new JSONObject();
- // action_list
+ // 添加更新操作数组到action_list中
jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, mUpdateArray);
- // client_version
+ // 添加客户端版本号
jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
+ // 发起POST请求
postRequest(jsPost);
mUpdateArray = null;
} catch (JSONException e) {
+ // JSON解析异常
Log.e(TAG, e.toString());
e.printStackTrace();
- throw new ActionFailureException("commit update: handing jsonobject failed");
+ throw new ActionFailureException("commit update: handling jsonobject failed");
}
}
}
-
+ /**
+ * 添加更新节点
+ * @param node 待添加的更新节点对象
+ * @throws NetworkFailureException 当网络操作失败时抛出此异常
+ */
public void addUpdateNode(Node node) throws NetworkFailureException {
if (node != null) {
- // too many update items may result in an error
- // set max to 10 items
+ // 处理更新操作数组长度超过限制的情况
+ // 最大限制为10个
if (mUpdateArray != null && mUpdateArray.length() > 10) {
commitUpdate();
}
if (mUpdateArray == null)
mUpdateArray = new JSONArray();
+
+ // 添加更新操作到更新操作数组中
mUpdateArray.put(node.getUpdateAction(getActionId()));
}
}
+ /**
+ * 移动任务到指定的任务列表
+ * @param task 待移动的任务对象
+ * @param preParent 移动前的父任务列表
+ * @param curParent 移动后的父任务列表
+ * @throws NetworkFailureException 当网络操作失败时抛出此异常
+ */
public void moveTask(Task task, TaskList preParent, TaskList curParent)
throws NetworkFailureException {
+ // 提交已有的更新操作
commitUpdate();
try {
JSONObject jsPost = new JSONObject();
JSONArray actionList = new JSONArray();
JSONObject action = new JSONObject();
- // action_list
+ // 设置移动操作的参数
action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE,
GTaskStringUtils.GTASK_JSON_ACTION_TYPE_MOVE);
action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId());
action.put(GTaskStringUtils.GTASK_JSON_ID, task.getGid());
+
+ // 判断是否在同一个任务列表内移动,并且不是第一个任务
+ // 只在这种情况下添加prior_sibing_id参数
if (preParent == curParent && task.getPriorSibling() != null) {
- // put prioring_sibing_id only if moving within the tasklist and
- // it is not the first one
action.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, task.getPriorSibling());
}
+
action.put(GTaskStringUtils.GTASK_JSON_SOURCE_LIST, preParent.getGid());
action.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT, curParent.getGid());
+
+ // 判断是否在不同的任务列表之间移动
+ // 只在这种情况下添加dest_list参数
if (preParent != curParent) {
- // put the dest_list only if moving between tasklists
action.put(GTaskStringUtils.GTASK_JSON_DEST_LIST, curParent.getGid());
}
actionList.put(action);
jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList);
- // client_version
+ // 添加客户端版本号
jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
+ // 发起POST请求
postRequest(jsPost);
} catch (JSONException e) {
+ // JSON解析异常
Log.e(TAG, e.toString());
e.printStackTrace();
- throw new ActionFailureException("move task: handing jsonobject failed");
+ throw new ActionFailureException("move task: handling jsonobject failed");
}
}
+ /**
+ * 删除节点
+ * @param node 待删除的节点对象
+ * @throws NetworkFailureException 当网络操作失败时抛出此异常
+ */
public void deleteNode(Node node) throws NetworkFailureException {
- commitUpdate();
+ commitUpdate(); // 提交已有的更新操作
try {
JSONObject jsPost = new JSONObject();
JSONArray actionList = new JSONArray();
- // action_list
+ // 设置节点删除状态并添加删除操作到操作列表中
node.setDeleted(true);
actionList.put(node.getUpdateAction(getActionId()));
- jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList);
+ jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); // 设置操作列表
- // client_version
+ // 设置客户端版本号
jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
+ // 发起POST请求
postRequest(jsPost);
- mUpdateArray = null;
+ mUpdateArray = null; // 清空更新操作数组
} catch (JSONException e) {
Log.e(TAG, e.toString());
e.printStackTrace();
- throw new ActionFailureException("delete node: handing jsonobject failed");
+ throw new ActionFailureException("delete node: handing jsonobject failed"); // 处理JSON对象失败时抛出异常
}
}
+ /**
+ * 获取任务列表
+ * @return 任务列表的JSONArray
+ * @throws NetworkFailureException 当网络操作失败时抛出此异常
+ */
public JSONArray getTaskLists() throws NetworkFailureException {
if (!mLoggedin) {
Log.e(TAG, "please login first");
throw new ActionFailureException("not logged in");
}
+ // 发起HttpGet请求获取任务列表
try {
HttpGet httpGet = new HttpGet(mGetUrl);
- HttpResponse response = null;
- response = mHttpClient.execute(httpGet);
+ HttpResponse response = mHttpClient.execute(httpGet);
- // get the task list
+ // 解析响应内容并获取任务列表
String resString = getResponseContent(response.getEntity());
String jsBegin = "_setup(";
String jsEnd = ")}";
@@ -543,35 +677,40 @@ public class GTaskClient {
} catch (JSONException e) {
Log.e(TAG, e.toString());
e.printStackTrace();
- throw new ActionFailureException("get task lists: handing jasonobject failed");
+ throw new ActionFailureException("get task lists: handing jasonobject failed"); // 处理JSON对象失败时抛出异常
}
}
+ /**
+ * 获取任务列表
+ *
+ * @param listGid 列表的唯一标识符
+ * @return 任务列表的JSONArray
+ * @throws NetworkFailureException 当网络操作失败时抛出此异常
+ */
public JSONArray getTaskList(String listGid) throws NetworkFailureException {
- commitUpdate();
+ commitUpdate(); // 提交已有的更新操作
try {
- JSONObject jsPost = new JSONObject();
- JSONArray actionList = new JSONArray();
- JSONObject action = new JSONObject();
+ JSONObject jsPost = new JSONObject(); // 创建请求JSON对象
+ JSONArray actionList = new JSONArray(); // 创建操作列表JSON数组
+ JSONObject action = new JSONObject(); // 创建操作JSON对象
- // action_list
- action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE,
- GTaskStringUtils.GTASK_JSON_ACTION_TYPE_GETALL);
+ // 设置操作类型和其他参数,并将操作对象添加到操作列表中
+ action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, GTaskStringUtils.GTASK_JSON_ACTION_TYPE_GETALL);
action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId());
action.put(GTaskStringUtils.GTASK_JSON_LIST_ID, listGid);
action.put(GTaskStringUtils.GTASK_JSON_GET_DELETED, false);
actionList.put(action);
- jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList);
+ jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); // 设置操作列表到请求JSON对象中
- // client_version
- jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion);
+ jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); // 设置客户端版本号
- JSONObject jsResponse = postRequest(jsPost);
- return jsResponse.getJSONArray(GTaskStringUtils.GTASK_JSON_TASKS);
+ JSONObject jsResponse = postRequest(jsPost); // 发起POST请求并获取响应
+ return jsResponse.getJSONArray(GTaskStringUtils.GTASK_JSON_TASKS); // 从响应中获取任务列表JSONArray
} catch (JSONException e) {
Log.e(TAG, e.toString());
e.printStackTrace();
- throw new ActionFailureException("get task list: handing jsonobject failed");
+ throw new ActionFailureException("get task list: handing jsonobject failed"); // 处理JSON对象失败时抛出异常
}
}
diff --git a/src/Notes-master/src/net/micode/notes/gtask/remote/GTaskManager.java b/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java
similarity index 53%
rename from src/Notes-master/src/net/micode/notes/gtask/remote/GTaskManager.java
rename to src/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java
index d2b4082..3be9cf9 100644
--- a/src/Notes-master/src/net/micode/notes/gtask/remote/GTaskManager.java
+++ b/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java
@@ -49,44 +49,57 @@ import java.util.Map;
public class GTaskManager {
+
+ // 日志标签
private static final String TAG = GTaskManager.class.getSimpleName();
+ // 同步状态常量
public static final int STATE_SUCCESS = 0;
-
public static final int STATE_NETWORK_ERROR = 1;
-
public static final int STATE_INTERNAL_ERROR = 2;
-
public static final int STATE_SYNC_IN_PROGRESS = 3;
-
public static final int STATE_SYNC_CANCELLED = 4;
+ // 单例实例
private static GTaskManager mInstance = null;
+ // 当前的Activity
private Activity mActivity;
+ // 应用程序的上下文
private Context mContext;
+ // 用于访问应用程序的数据存储
private ContentResolver mContentResolver;
+ // 指示是否正在进行同步
private boolean mSyncing;
+ // 指示同步是否被取消
private boolean mCancelled;
+ // 已同步的任务列表的哈希映射
private HashMap mGTaskListHashMap;
+ // 已同步的任务的哈希映射
private HashMap mGTaskHashMap;
+ // 任务元数据的哈希映射
private HashMap mMetaHashMap;
+ // 元数据列表
private TaskList mMetaList;
+ // 本地已删除任务的ID集合
private HashSet mLocalDeleteIdMap;
+ // Google任务ID到本地任务ID的映射
private HashMap mGidToNid;
+ // 本地任务ID到Google任务ID的映射
private HashMap mNidToGid;
+ // 私有构造函数
private GTaskManager() {
mSyncing = false;
mCancelled = false;
@@ -99,6 +112,7 @@ public class GTaskManager {
mNidToGid = new HashMap();
}
+ // 获取GTaskManager的单例实例
public static synchronized GTaskManager getInstance() {
if (mInstance == null) {
mInstance = new GTaskManager();
@@ -107,87 +121,97 @@ public class GTaskManager {
}
public synchronized void setActivityContext(Activity activity) {
- // used for getting authtoken
+ // 用于获取 auth token 的活动上下文
mActivity = activity;
}
+ // 同步方法,用于同步数据
public int sync(Context context, GTaskASyncTask asyncTask) {
if (mSyncing) {
- Log.d(TAG, "Sync is in progress");
- return STATE_SYNC_IN_PROGRESS;
+ Log.d(TAG, "Sync is in progress"); // 打印日志,表示同步正在进行中
+ return STATE_SYNC_IN_PROGRESS; // 返回同步状态为进行中
}
mContext = context;
mContentResolver = mContext.getContentResolver();
- mSyncing = true;
- mCancelled = false;
- mGTaskListHashMap.clear();
- mGTaskHashMap.clear();
- mMetaHashMap.clear();
- mLocalDeleteIdMap.clear();
- mGidToNid.clear();
- mNidToGid.clear();
+ mSyncing = true; // 设置同步标志为 true
+ mCancelled = false; // 设置取消标志为 false
+ mGTaskListHashMap.clear(); // 清除任务列表哈希图
+ mGTaskHashMap.clear(); // 清除任务哈希图
+ mMetaHashMap.clear(); // 清除元数据哈希图
+ mLocalDeleteIdMap.clear(); // 清除本地删除 id 映射
+ mGidToNid.clear(); // 清除 gid 到 nid 的映射
+ mNidToGid.clear(); // 清除 nid 到 gid 的映射
try {
GTaskClient client = GTaskClient.getInstance();
- client.resetUpdateArray();
+ client.resetUpdateArray(); // 重置更新数组
- // login google task
+ // 登录 Google 任务
if (!mCancelled) {
- if (!client.login(mActivity)) {
- throw new NetworkFailureException("login google task failed");
+ if (!client.login(mActivity)) { // 如果登录任务失败
+ throw new NetworkFailureException("login google task failed"); // 抛出网络失败异常
}
}
- // get the task list from google
- asyncTask.publishProgess(mContext.getString(R.string.sync_progress_init_list));
- initGTaskList();
+ // 从 Google 获取任务列表
+ asyncTask.publishProgess(mContext.getString(R.string.sync_progress_init_list)); // 发布进度,初始化任务列表
+ initGTaskList(); // 初始化任务列表
- // do content sync work
- asyncTask.publishProgess(mContext.getString(R.string.sync_progress_syncing));
- syncContent();
+ // 执行内容同步任务
+ asyncTask.publishProgess(mContext.getString(R.string.sync_progress_syncing)); // 发布进度,正在同步任务内容
+ syncContent(); // 同步内容
} catch (NetworkFailureException e) {
Log.e(TAG, e.toString());
- return STATE_NETWORK_ERROR;
+ return STATE_NETWORK_ERROR; // 返回网络错误状态
} catch (ActionFailureException e) {
Log.e(TAG, e.toString());
- return STATE_INTERNAL_ERROR;
+ return STATE_INTERNAL_ERROR; // 返回内部错误状态
} catch (Exception e) {
Log.e(TAG, e.toString());
e.printStackTrace();
- return STATE_INTERNAL_ERROR;
+ return STATE_INTERNAL_ERROR; // 返回内部错误状态
} finally {
+ // 清除所有的哈希图和映射
mGTaskListHashMap.clear();
mGTaskHashMap.clear();
mMetaHashMap.clear();
mLocalDeleteIdMap.clear();
mGidToNid.clear();
mNidToGid.clear();
+ // 设置同步标志为 false
mSyncing = false;
}
- return mCancelled ? STATE_SYNC_CANCELLED : STATE_SUCCESS;
+ return mCancelled ? STATE_SYNC_CANCELLED : STATE_SUCCESS; // 如果被取消,返回取消状态,否则返回成功状态
}
+ /**
+ * 初始化 Google 任务列表
+ *
+ * @throws NetworkFailureException 网络请求失败异常
+ */
private void initGTaskList() throws NetworkFailureException {
if (mCancelled)
return;
GTaskClient client = GTaskClient.getInstance();
try {
+ // 获取任务列表的 JSON 数组
JSONArray jsTaskLists = client.getTaskLists();
- // init meta list first
+ // 初始化元数据列表
mMetaList = null;
for (int i = 0; i < jsTaskLists.length(); i++) {
JSONObject object = jsTaskLists.getJSONObject(i);
String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID);
String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME);
+ // 根据名称判断是否是元数据列表
if (name
.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_META)) {
mMetaList = new TaskList();
mMetaList.setContentByRemoteJSON(object);
- // load meta data
+ // 加载元数据
JSONArray jsMetas = client.getTaskList(gid);
for (int j = 0; j < jsMetas.length(); j++) {
object = (JSONObject) jsMetas.getJSONObject(j);
@@ -203,29 +227,28 @@ public class GTaskManager {
}
}
- // create meta list if not existed
+ // 若元数据列表不存在,则创建元数据列表
if (mMetaList == null) {
mMetaList = new TaskList();
- mMetaList.setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX
- + GTaskStringUtils.FOLDER_META);
+ mMetaList.setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_META);
GTaskClient.getInstance().createTaskList(mMetaList);
}
- // init task list
+ // 初始化任务列表
for (int i = 0; i < jsTaskLists.length(); i++) {
JSONObject object = jsTaskLists.getJSONObject(i);
String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID);
String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME);
+ // 根据名称判断是否是任务列表
if (name.startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX)
- && !name.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX
- + GTaskStringUtils.FOLDER_META)) {
+ && !name.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_META)) {
TaskList tasklist = new TaskList();
tasklist.setContentByRemoteJSON(object);
mGTaskListHashMap.put(gid, tasklist);
mGTaskHashMap.put(gid, tasklist);
- // load tasks
+ // 加载任务
JSONArray jsTasks = client.getTaskList(gid);
for (int j = 0; j < jsTasks.length(); j++) {
object = (JSONObject) jsTasks.getJSONObject(j);
@@ -247,19 +270,23 @@ public class GTaskManager {
}
}
+ /**
+ * 同步内容方法,用于同步笔记内容到远程服务器
+ * @throws NetworkFailureException 网络异常时抛出此异常
+ */
private void syncContent() throws NetworkFailureException {
- int syncType;
- Cursor c = null;
- String gid;
- Node node;
+ int syncType; // 同步操作类型
+ Cursor c = null; // 数据查询游标
+ String gid; // 笔记在远程服务器的唯一标识
+ Node node; // 笔记对应的节点
- mLocalDeleteIdMap.clear();
+ mLocalDeleteIdMap.clear(); // 清空本地已删除笔记的集合
if (mCancelled) {
- return;
+ return; // 如果取消了同步操作,直接返回
}
- // for local deleted note
+ // 查询本地已删除的笔记
try {
c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
"(type<>? AND parent_id=?)", new String[] {
@@ -271,25 +298,25 @@ public class GTaskManager {
node = mGTaskHashMap.get(gid);
if (node != null) {
mGTaskHashMap.remove(gid);
- doContentSync(Node.SYNC_ACTION_DEL_REMOTE, node, c);
+ doContentSync(Node.SYNC_ACTION_DEL_REMOTE, node, c); // 执行内容同步方法,删除远程服务器中对应的笔记
}
- mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN));
+ mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); // 将本地已删除笔记的 ID 添加到集合中
}
} else {
Log.w(TAG, "failed to query trash folder");
}
} finally {
if (c != null) {
- c.close();
- c = null;
+ c.close(); // 关闭查询游标
+ c = null; // 置空查询游标
}
}
- // sync folder first
- syncFolder();
+ // 先同步文件夹
+ syncFolder(); // 同步文件夹信息
- // for note existing in database
+ // 查询数据库中已存在的笔记
try {
c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
"(type=? AND parent_id<>?)", new String[] {
@@ -301,19 +328,19 @@ public class GTaskManager {
node = mGTaskHashMap.get(gid);
if (node != null) {
mGTaskHashMap.remove(gid);
- mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN));
- mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid);
- syncType = node.getSyncAction(c);
+ mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); // 存储远程服务器 ID 到本地数据库 ID 的映射关系
+ mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); // 存储本地数据库 ID 到远程服务器 ID 的映射关系
+ syncType = node.getSyncAction(c); // 获取此笔记的同步操作类型
} else {
if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) {
- // local add
- syncType = Node.SYNC_ACTION_ADD_REMOTE;
+ // 本地添加
+ syncType = Node.SYNC_ACTION_ADD_REMOTE; // 设置同步操作类型为向远程服务器添加笔记
} else {
- // remote delete
- syncType = Node.SYNC_ACTION_DEL_LOCAL;
+ // 远程删除
+ syncType = Node.SYNC_ACTION_DEL_LOCAL; // 设置同步操作类型为从本地删除笔记
}
}
- doContentSync(syncType, node, c);
+ doContentSync(syncType, node, c); // 执行内容同步方法,同步笔记内容
}
} else {
Log.w(TAG, "failed to query existing note in database");
@@ -321,67 +348,66 @@ public class GTaskManager {
} finally {
if (c != null) {
- c.close();
- c = null;
+ c.close(); // 关闭查询游标
+ c = null; // 置空查询游标
}
}
- // go through remaining items
+ // 遍历剩余的节点
Iterator> iter = mGTaskHashMap.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = iter.next();
node = entry.getValue();
- doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null);
+ doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); // 执行内容同步方法,向远程服务器添加本地的剩余笔记
}
- // mCancelled can be set by another thread, so we neet to check one by
- // one
- // clear local delete table
- if (!mCancelled) {
+ // 逐个检查取消标志位,因为可能在另一个线程中被设置
+ // 清除本地已删除笔记表
+ if (!mCancelled) { // 如果没有取消同步
if (!DataUtils.batchDeleteNotes(mContentResolver, mLocalDeleteIdMap)) {
- throw new ActionFailureException("failed to batch-delete local deleted notes");
+ throw new ActionFailureException("failed to batch-delete local deleted notes"); // 抛出操作失败异常,无法批量删除本地已删除笔记
}
}
- // refresh local sync id
- if (!mCancelled) {
- GTaskClient.getInstance().commitUpdate();
- refreshLocalSyncId();
+ // 刷新本地同步 ID
+ if (!mCancelled) { // 如果没有取消同步
+ GTaskClient.getInstance().commitUpdate(); // 提交更新到远程服务器
+ refreshLocalSyncId(); // 刷新本地同步 ID
}
}
private void syncFolder() throws NetworkFailureException {
- Cursor c = null;
- String gid;
- Node node;
- int syncType;
+ Cursor c = null; // 数据成员注释: 创建一个游标实例
+ String gid; // 数据成员注释: 定义字符串类型变量 gid
+ Node node; // 数据成员注释: 定义 Node 类型的变量 node
+ int syncType; // 数据成员注释: 定义整型变量 syncType
- if (mCancelled) {
+ if (mCancelled) { // 语句注释: 如果取消标志位为 true,则返回
return;
}
// for root folder
try {
c = mContentResolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI,
- Notes.ID_ROOT_FOLDER), SqlNote.PROJECTION_NOTE, null, null, null);
+ Notes.ID_ROOT_FOLDER), SqlNote.PROJECTION_NOTE, null, null, null); // 实现注释: 查询根文件夹的内容
if (c != null) {
- c.moveToNext();
- gid = c.getString(SqlNote.GTASK_ID_COLUMN);
- node = mGTaskHashMap.get(gid);
- if (node != null) {
- mGTaskHashMap.remove(gid);
- mGidToNid.put(gid, (long) Notes.ID_ROOT_FOLDER);
- mNidToGid.put((long) Notes.ID_ROOT_FOLDER, gid);
+ c.moveToNext(); // 实现注释: 将游标移动到下一行
+ gid = c.getString(SqlNote.GTASK_ID_COLUMN); // 实现注释: 获取游标列索引为 SqlNote.GTASK_ID_COLUMN 的字符串值
+ node = mGTaskHashMap.get(gid); // 实现注释: 从哈希映射中获取 gid 对应的 Node 实例
+ if (node != null) { // 语句注释: 如果 Node 存在
+ mGTaskHashMap.remove(gid); // 实现注释: 从哈希映射中移除 gid 对应的 Node 实例
+ mGidToNid.put(gid, (long) Notes.ID_ROOT_FOLDER); // 实现注释: 将 gid 映射到 Notes.ID_ROOT_FOLDER
+ mNidToGid.put((long) Notes.ID_ROOT_FOLDER, gid); // 实现注释: 将 Notes.ID_ROOT_FOLDER 映射到 gid
// for system folder, only update remote name if necessary
if (!node.getName().equals(
GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT))
- doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c);
+ doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); // 实现注释: 执行内容同步操作,更新远程名称
} else {
- doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c);
+ doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); // 实现注释: 执行内容同步操作,添加远程节点
}
} else {
- Log.w(TAG, "failed to query root folder");
+ Log.w(TAG, "failed to query root folder"); // 实现注释: 记录日志,查询根目录失败
}
} finally {
if (c != null) {
@@ -394,28 +420,27 @@ public class GTaskManager {
try {
c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, "(_id=?)",
new String[] {
- String.valueOf(Notes.ID_CALL_RECORD_FOLDER)
- }, null);
+ String.valueOf(Notes.ID_CALL_RECORD_FOLDER)
+ }, null); // 实现注释: 查询通话记录文件夹的内容
if (c != null) {
if (c.moveToNext()) {
- gid = c.getString(SqlNote.GTASK_ID_COLUMN);
- node = mGTaskHashMap.get(gid);
- if (node != null) {
- mGTaskHashMap.remove(gid);
- mGidToNid.put(gid, (long) Notes.ID_CALL_RECORD_FOLDER);
- mNidToGid.put((long) Notes.ID_CALL_RECORD_FOLDER, gid);
- // for system folder, only update remote name if
- // necessary
+ gid = c.getString(SqlNote.GTASK_ID_COLUMN); // 实现注释: 获取游标列索引为 SqlNote.GTASK_ID_COLUMN 的字符串值
+ node = mGTaskHashMap.get(gid); // 实现注释: 从哈希映射中获取 gid 对应的 Node 实例
+ if (node != null) { // 实现注释: 如果 Node 存在
+ mGTaskHashMap.remove(gid); // 实现注释: 从哈希映射中移除 gid 对应的 Node 实例
+ mGidToNid.put(gid, (long) Notes.ID_CALL_RECORD_FOLDER); // 实现注释: 将 gid 映射到 Notes.ID_CALL_RECORD_FOLDER
+ mNidToGid.put((long) Notes.ID_CALL_RECORD_FOLDER, gid); // 实现注释: 将 Notes.ID_CALL_RECORD_FOLDER 映射到 gid
+ // for system folder, only update remote name if necessary
if (!node.getName().equals(
GTaskStringUtils.MIUI_FOLDER_PREFFIX
+ GTaskStringUtils.FOLDER_CALL_NOTE))
- doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c);
+ doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); // 实现注释: 执行内容同步操作,更新远程名称
} else {
- doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c);
+ doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); // 实现注释: 执行内容同步操作,添加远程节点
}
}
} else {
- Log.w(TAG, "failed to query call note folder");
+ Log.w(TAG, "failed to query call note folder"); // 实现注释: 记录日志,查询通话记录文件夹失败
}
} finally {
if (c != null) {
@@ -429,29 +454,29 @@ public class GTaskManager {
c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
"(type=? AND parent_id<>?)", new String[] {
String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER)
- }, NoteColumns.TYPE + " DESC");
+ }, NoteColumns.TYPE + " DESC"); // 实现注释: 查询本地已存在的文件夹的内容
if (c != null) {
while (c.moveToNext()) {
- gid = c.getString(SqlNote.GTASK_ID_COLUMN);
- node = mGTaskHashMap.get(gid);
- if (node != null) {
- mGTaskHashMap.remove(gid);
- mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN));
- mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid);
- syncType = node.getSyncAction(c);
+ gid = c.getString(SqlNote.GTASK_ID_COLUMN); // 实现注释: 获取游标列索引为 SqlNote.GTASK_ID_COLUMN 的字符串值
+ node = mGTaskHashMap.get(gid); // 实现注释: 从哈希映射中获取 gid 对应的 Node 实例
+ if (node != null) { // 实现注释: 如果 Node 存在
+ mGTaskHashMap.remove(gid); // 实现注释: 从哈希映射中移除 gid 对应的 Node 实例
+ mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); // 实现注释: 将 gid 映射到游标列索引为 SqlNote.ID_COLUMN 的值
+ mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); // 实现注释: 将游标列索引为 SqlNote.ID_COLUMN 的值映射到 gid
+ syncType = node.getSyncAction(c); // 实现注释: 获取 Node 的同步操作类型
} else {
if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) {
// local add
- syncType = Node.SYNC_ACTION_ADD_REMOTE;
+ syncType = Node.SYNC_ACTION_ADD_REMOTE; // 实现注释: 本地添加
} else {
// remote delete
- syncType = Node.SYNC_ACTION_DEL_LOCAL;
+ syncType = Node.SYNC_ACTION_DEL_LOCAL; // 实现注释: 远程删除
}
}
- doContentSync(syncType, node, c);
+ doContentSync(syncType, node, c); // 实现注释: 执行内容同步操作
}
} else {
- Log.w(TAG, "failed to query existing folder");
+ Log.w(TAG, "failed to query existing folder"); // 实现注释: 记录日志,查询已存在的文件夹失败
}
} finally {
if (c != null) {
@@ -461,95 +486,129 @@ public class GTaskManager {
}
// for remote add folders
- Iterator> iter = mGTaskListHashMap.entrySet().iterator();
+ Iterator> iter = mGTaskListHashMap.entrySet().iterator(); // 实现注释: 获取迭代器实例
while (iter.hasNext()) {
- Map.Entry entry = iter.next();
- gid = entry.getKey();
- node = entry.getValue();
- if (mGTaskHashMap.containsKey(gid)) {
- mGTaskHashMap.remove(gid);
- doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null);
+ Map.Entry entry = iter.next(); // 实现注释: 获取迭代器下一个键值对
+ gid = entry.getKey(); // 实现注释: 获取键值对的键
+ node = entry.getValue(); // 实现注释: 获取键值对的值
+ if (mGTaskHashMap.containsKey(gid)) { // 实现注释: 如果哈希映射中包含 gid
+ mGTaskHashMap.remove(gid); // 实现注释: 从哈希映射中移除 gid 对应的 Node 实例
+ doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); // 实现注释: 执行内容同步操作,添加本地节点
}
}
if (!mCancelled)
- GTaskClient.getInstance().commitUpdate();
+ GTaskClient.getInstance().commitUpdate(); // 实现注释: 提交更新操作
}
+ /**
+ * 方法用于执行内容同步操作,根据不同的同步类型执行相应的操作。
+ * @param syncType 同步类型,用于标识执行何种同步操作
+ * @param node 待同步的节点对象
+ * @param c 游标对象,用于操作数据库结果集
+ * @throws NetworkFailureException 网络异常时抛出该异常
+ */
private void doContentSync(int syncType, Node node, Cursor c) throws NetworkFailureException {
+ // 如果任务已取消,则直接返回
if (mCancelled) {
return;
}
MetaData meta;
switch (syncType) {
+ // 添加本地节点操作
case Node.SYNC_ACTION_ADD_LOCAL:
addLocalNode(node);
break;
+ // 添加远程节点操作
case Node.SYNC_ACTION_ADD_REMOTE:
addRemoteNode(node, c);
break;
+ // 删除本地节点操作
case Node.SYNC_ACTION_DEL_LOCAL:
+ // 获取与游标中的任务 ID 对应的元数据
meta = mMetaHashMap.get(c.getString(SqlNote.GTASK_ID_COLUMN));
+ // 如果元数据不为空,则通过 GTaskClient 删除节点
if (meta != null) {
GTaskClient.getInstance().deleteNode(meta);
}
+ // 将本地删除的任务 ID 添加到本地删除 ID 映射表中
mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN));
break;
+ // 删除远程节点操作
case Node.SYNC_ACTION_DEL_REMOTE:
+ // 获取与节点的全局唯一标识符对应的元数据
meta = mMetaHashMap.get(node.getGid());
+ // 如果元数据不为空,则通过 GTaskClient 删除节点
if (meta != null) {
GTaskClient.getInstance().deleteNode(meta);
}
+ // 通过 GTaskClient 删除节点
GTaskClient.getInstance().deleteNode(node);
break;
+ // 更新本地节点操作
case Node.SYNC_ACTION_UPDATE_LOCAL:
updateLocalNode(node, c);
break;
+ // 更新远程节点操作
case Node.SYNC_ACTION_UPDATE_REMOTE:
updateRemoteNode(node, c);
break;
+ // 更新冲突时的操作,当前实现简单地采用本地更新
case Node.SYNC_ACTION_UPDATE_CONFLICT:
- // merging both modifications maybe a good idea
- // right now just use local update simply
+ // 可能合并两种修改,但目前仅简单地使用本地更新
updateRemoteNode(node, c);
break;
+ // 无需执行任何同步操作
case Node.SYNC_ACTION_NONE:
break;
+ // 同步操作错误或未知类型时抛出异常
case Node.SYNC_ACTION_ERROR:
default:
- throw new ActionFailureException("unkown sync action type");
+ throw new ActionFailureException("未知的同步操作类型");
}
}
+ /**
+ * 方法用于将本地节点添加到数据库中,并更新相关的元数据和映射信息。
+ * @param node 待添加的本地节点对象
+ * @throws NetworkFailureException 网络异常时抛出该异常
+ */
private void addLocalNode(Node node) throws NetworkFailureException {
if (mCancelled) {
- return;
+ return; // 如果任务已取消,则直接返回
}
- SqlNote sqlNote;
+ SqlNote sqlNote; // 数据库操作对象
+
+ // 根据节点类型进行不同的处理
if (node instanceof TaskList) {
+ // 如果节点是任务列表
if (node.getName().equals(
GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) {
- sqlNote = new SqlNote(mContext, Notes.ID_ROOT_FOLDER);
+ // 如果节点是默认文件夹
+ sqlNote = new SqlNote(mContext, Notes.ID_ROOT_FOLDER); // 创建根文件夹
} else if (node.getName().equals(
GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_CALL_NOTE)) {
- sqlNote = new SqlNote(mContext, Notes.ID_CALL_RECORD_FOLDER);
+ // 如果节点是通话备忘录文件夹
+ sqlNote = new SqlNote(mContext, Notes.ID_CALL_RECORD_FOLDER); // 创建通话备忘录文件夹
} else {
- sqlNote = new SqlNote(mContext);
- sqlNote.setContent(node.getLocalJSONFromContent());
- sqlNote.setParentId(Notes.ID_ROOT_FOLDER);
+ sqlNote = new SqlNote(mContext); // 创建一般的节点
+ sqlNote.setContent(node.getLocalJSONFromContent()); // 设置节点内容数据
+ sqlNote.setParentId(Notes.ID_ROOT_FOLDER); // 设置父节点为根文件夹
}
} else {
- sqlNote = new SqlNote(mContext);
- JSONObject js = node.getLocalJSONFromContent();
+ // 如果节点是普通任务
+ sqlNote = new SqlNote(mContext); // 创建一般的节点
+ JSONObject js = node.getLocalJSONFromContent(); // 获取节点的本地 JSON 数据
try {
+ // 处理元数据中的ID冲突问题
if (js.has(GTaskStringUtils.META_HEAD_NOTE)) {
JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
if (note.has(NoteColumns.ID)) {
long id = note.getLong(NoteColumns.ID);
if (DataUtils.existInNoteDatabase(mContentResolver, id)) {
- // the id is not available, have to create a new one
+ // 如果ID已存在于数据库中,则移除已存在的ID,在数据库中创建新的ID
note.remove(NoteColumns.ID);
}
}
@@ -562,92 +621,105 @@ public class GTaskManager {
if (data.has(DataColumns.ID)) {
long dataId = data.getLong(DataColumns.ID);
if (DataUtils.existInDataDatabase(mContentResolver, dataId)) {
- // the data id is not available, have to create
- // a new one
+ // 如果ID已存在于数据库中,则移除已存在的ID,在数据库中创建新的ID
data.remove(DataColumns.ID);
}
}
}
-
}
} catch (JSONException e) {
Log.w(TAG, e.toString());
e.printStackTrace();
}
+ // 设置节点内容数据
sqlNote.setContent(js);
+ // 通过全局唯一标识符获取父节点的本地ID
Long parentId = mGidToNid.get(((Task) node).getParent().getGid());
if (parentId == null) {
Log.e(TAG, "cannot find task's parent id locally");
throw new ActionFailureException("cannot add local node");
}
- sqlNote.setParentId(parentId.longValue());
+ sqlNote.setParentId(parentId.longValue()); // 设置父节点ID
}
- // create the local node
+ // 设置节点的全局唯一标识符
sqlNote.setGtaskId(node.getGid());
+ // 将节点添加到数据库中
sqlNote.commit(false);
- // update gid-nid mapping
+ // 更新全局唯一标识符到本地ID的映射关系
mGidToNid.put(node.getGid(), sqlNote.getId());
mNidToGid.put(sqlNote.getId(), node.getGid());
- // update meta
+ // 更新元数据信息
updateRemoteMeta(node.getGid(), sqlNote);
}
+ /**
+ * 更新本地节点信息,并将更新后的信息提交到数据库中。
+ * @param node 待更新的节点对象
+ * @param c 游标对象,用于更新本地节点信息
+ * @throws NetworkFailureException 当网络异常时抛出该异常
+ */
private void updateLocalNode(Node node, Cursor c) throws NetworkFailureException {
if (mCancelled) {
- return;
+ return; // 如果任务已取消,则直接返回
}
- SqlNote sqlNote;
- // update the note locally
- sqlNote = new SqlNote(mContext, c);
- sqlNote.setContent(node.getLocalJSONFromContent());
+ SqlNote sqlNote; // 数据库操作对象
+ // 更新本地节点信息
+ sqlNote = new SqlNote(mContext, c); // 通过游标对象构造数据库操作对象
+ sqlNote.setContent(node.getLocalJSONFromContent()); // 设置节点内容数据
+ // 获取父节点的本地ID
Long parentId = (node instanceof Task) ? mGidToNid.get(((Task) node).getParent().getGid())
: new Long(Notes.ID_ROOT_FOLDER);
if (parentId == null) {
Log.e(TAG, "cannot find task's parent id locally");
throw new ActionFailureException("cannot update local node");
}
- sqlNote.setParentId(parentId.longValue());
- sqlNote.commit(true);
+ sqlNote.setParentId(parentId.longValue()); // 设置父节点ID
+ sqlNote.commit(true); // 提交更新后的信息到数据库
- // update meta info
- updateRemoteMeta(node.getGid(), sqlNote);
+ // 更新元数据信息
+ updateRemoteMeta(node.getGid(), sqlNote); // 更新远程元数据信息
}
-
+ /**
+ * 添加远程节点,并更新本地数据和远程数据。
+ * @param node 待添加的节点对象
+ * @param c 游标对象,用于操作数据库
+ * @throws NetworkFailureException 当网络异常时抛出该异常
+ */
private void addRemoteNode(Node node, Cursor c) throws NetworkFailureException {
if (mCancelled) {
- return;
+ return; // 如果任务已取消,则直接返回
}
- SqlNote sqlNote = new SqlNote(mContext, c);
- Node n;
+ SqlNote sqlNote = new SqlNote(mContext, c); // 数据库操作对象
+ Node n; // 节点对象
- // update remotely
- if (sqlNote.isNoteType()) {
- Task task = new Task();
- task.setContentByLocalJSON(sqlNote.getContent());
+ // 远程更新操作
+ if (sqlNote.isNoteType()) { // 如果是笔记类型节点
+ Task task = new Task(); // 创建任务对象
+ task.setContentByLocalJSON(sqlNote.getContent()); // 通过本地JSON内容设置任务的内容
- String parentGid = mNidToGid.get(sqlNote.getParentId());
+ String parentGid = mNidToGid.get(sqlNote.getParentId()); // 获取父节点的全局ID
if (parentGid == null) {
Log.e(TAG, "cannot find task's parent tasklist");
throw new ActionFailureException("cannot add remote task");
}
- mGTaskListHashMap.get(parentGid).addChildTask(task);
+ mGTaskListHashMap.get(parentGid).addChildTask(task); // 将任务添加到对应的父任务列表中
- GTaskClient.getInstance().createTask(task);
- n = (Node) task;
+ GTaskClient.getInstance().createTask(task); // 在远程创建任务
+ n = (Node) task; // 将任务对象转换为节点对象
- // add meta
+ // 添加元数据信息
updateRemoteMeta(task.getGid(), sqlNote);
- } else {
- TaskList tasklist = null;
+ } else { // 如果是文件夹类型节点
+ TaskList tasklist = null; // 任务列表对象
- // we need to skip folder if it has already existed
+ // 如果文件夹已存在,则跳过
String folderName = GTaskStringUtils.MIUI_FOLDER_PREFFIX;
if (sqlNote.getId() == Notes.ID_ROOT_FOLDER)
folderName += GTaskStringUtils.FOLDER_DEFAULT;
@@ -662,139 +734,163 @@ public class GTaskManager {
String gid = entry.getKey();
TaskList list = entry.getValue();
- if (list.getName().equals(folderName)) {
+ if (list.getName().equals(folderName)) { // 如果文件夹已存在
tasklist = list;
if (mGTaskHashMap.containsKey(gid)) {
- mGTaskHashMap.remove(gid);
+ mGTaskHashMap.remove(gid); // 移除对应的任务映射
}
break;
}
}
- // no match we can add now
+ // 如果文件夹不存在,则添加
if (tasklist == null) {
- tasklist = new TaskList();
- tasklist.setContentByLocalJSON(sqlNote.getContent());
- GTaskClient.getInstance().createTaskList(tasklist);
- mGTaskListHashMap.put(tasklist.getGid(), tasklist);
+ tasklist = new TaskList(); // 创建新的任务列表对象
+ tasklist.setContentByLocalJSON(sqlNote.getContent()); // 通过本地JSON内容设置任务列表的内容
+ GTaskClient.getInstance().createTaskList(tasklist); // 在远程创建任务列表
+ mGTaskListHashMap.put(tasklist.getGid(), tasklist); // 将任务列表添加到任务列表哈希映射中
}
- n = (Node) tasklist;
+ n = (Node) tasklist; // 将任务列表对象转换为节点对象
}
- // update local note
- sqlNote.setGtaskId(n.getGid());
- sqlNote.commit(false);
- sqlNote.resetLocalModified();
- sqlNote.commit(true);
+ // 更新本地笔记信息
+ sqlNote.setGtaskId(n.getGid()); // 设置笔记的全局ID
+ sqlNote.commit(false); // 提交未修改的笔记信息到数据库
+ sqlNote.resetLocalModified(); // 重置本地修改标志
+ sqlNote.commit(true); // 提交更新后的笔记信息到数据库
- // gid-id mapping
- mGidToNid.put(n.getGid(), sqlNote.getId());
- mNidToGid.put(sqlNote.getId(), n.getGid());
+ // 更新全局ID和本地ID的映射关系
+ mGidToNid.put(n.getGid(), sqlNote.getId()); // 全局ID到本地ID的映射
+ mNidToGid.put(sqlNote.getId(), n.getGid()); // 本地ID到全局ID的映射
}
+ /**
+ * 更新远程节点信息并同步本地数据。
+ * @param node 待更新的节点对象
+ * @param c 游标对象,用于操作数据库
+ * @throws NetworkFailureException 当网络异常时抛出该异常
+ */
private void updateRemoteNode(Node node, Cursor c) throws NetworkFailureException {
if (mCancelled) {
- return;
+ return; // 如果任务已取消,则直接返回
}
- SqlNote sqlNote = new SqlNote(mContext, c);
+ SqlNote sqlNote = new SqlNote(mContext, c); // 创建数据库操作对象
- // update remotely
- node.setContentByLocalJSON(sqlNote.getContent());
- GTaskClient.getInstance().addUpdateNode(node);
+ // 更新远程节点
+ node.setContentByLocalJSON(sqlNote.getContent()); // 通过本地JSON内容更新节点信息
+ GTaskClient.getInstance().addUpdateNode(node); // 在远程更新节点信息
- // update meta
- updateRemoteMeta(node.getGid(), sqlNote);
+ // 更新元数据信息
+ updateRemoteMeta(node.getGid(), sqlNote); // 更新远程元数据信息
- // move task if necessary
+ // 如果是任务类型节点,则进行移动操作
if (sqlNote.isNoteType()) {
- Task task = (Task) node;
- TaskList preParentList = task.getParent();
+ Task task = (Task) node; // 强制类型转换为任务对象
+ TaskList preParentList = task.getParent(); // 获取任务的原父任务列表
- String curParentGid = mNidToGid.get(sqlNote.getParentId());
+ String curParentGid = mNidToGid.get(sqlNote.getParentId()); // 获取当前父任务列表的全局ID
if (curParentGid == null) {
Log.e(TAG, "cannot find task's parent tasklist");
throw new ActionFailureException("cannot update remote task");
}
- TaskList curParentList = mGTaskListHashMap.get(curParentGid);
+ TaskList curParentList = mGTaskListHashMap.get(curParentGid); // 获取当前父任务列表对象
if (preParentList != curParentList) {
- preParentList.removeChildTask(task);
- curParentList.addChildTask(task);
- GTaskClient.getInstance().moveTask(task, preParentList, curParentList);
+ preParentList.removeChildTask(task); // 从原父任务列表中移除任务
+ curParentList.addChildTask(task); // 将任务添加到当前父任务列表中
+ GTaskClient.getInstance().moveTask(task, preParentList, curParentList); // 在远程执行任务移动操作
}
}
- // clear local modified flag
- sqlNote.resetLocalModified();
- sqlNote.commit(true);
+ // 清除本地修改标记
+ sqlNote.resetLocalModified(); // 重置本地修改标志
+ sqlNote.commit(true); // 提交更新后的笔记信息到数据库
}
+ /**
+ * 更新远程元数据信息。
+ * @param gid 全局ID
+ * @param sqlNote 笔记对象
+ * @throws NetworkFailureException 当网络异常时抛出该异常
+ */
private void updateRemoteMeta(String gid, SqlNote sqlNote) throws NetworkFailureException {
if (sqlNote != null && sqlNote.isNoteType()) {
- MetaData metaData = mMetaHashMap.get(gid);
+ MetaData metaData = mMetaHashMap.get(gid); // 获取指定全局ID的元数据对象
if (metaData != null) {
- metaData.setMeta(gid, sqlNote.getContent());
- GTaskClient.getInstance().addUpdateNode(metaData);
+ metaData.setMeta(gid, sqlNote.getContent()); // 更新元数据信息
+ GTaskClient.getInstance().addUpdateNode(metaData); // 在远程更新元数据信息
} else {
- metaData = new MetaData();
- metaData.setMeta(gid, sqlNote.getContent());
- mMetaList.addChildTask(metaData);
- mMetaHashMap.put(gid, metaData);
- GTaskClient.getInstance().createTask(metaData);
+ metaData = new MetaData(); // 创建新的元数据对象
+ metaData.setMeta(gid, sqlNote.getContent()); // 设置元数据信息
+ mMetaList.addChildTask(metaData); // 将元数据对象添加到元数据列表中
+ mMetaHashMap.put(gid, metaData); // 在元数据哈希映射中添加元数据对象
+ GTaskClient.getInstance().createTask(metaData); // 在远程创建元数据对象
}
}
}
+ /**
+ * 刷新本地同步 ID。
+ * @throws NetworkFailureException 当网络异常时抛出该异常
+ */
private void refreshLocalSyncId() throws NetworkFailureException {
if (mCancelled) {
- return;
+ return; // 如果任务已取消,则直接返回
}
- // get the latest gtask list
- mGTaskHashMap.clear();
- mGTaskListHashMap.clear();
- mMetaHashMap.clear();
- initGTaskList();
+ // 获取最新的 GTask 列表
+ mGTaskHashMap.clear(); // 清空 GTask 哈希映射
+ mGTaskListHashMap.clear(); // 清空 GTask 列表哈希映射
+ mMetaHashMap.clear(); // 清空元数据哈希映射
+ initGTaskList(); // 初始化 GTask 列表
Cursor c = null;
try {
+ // 查询本地笔记数据,排除系统类型和回收站中的笔记
c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE,
"(type<>? AND parent_id<>?)", new String[] {
String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER)
}, NoteColumns.TYPE + " DESC");
if (c != null) {
while (c.moveToNext()) {
- String gid = c.getString(SqlNote.GTASK_ID_COLUMN);
- Node node = mGTaskHashMap.get(gid);
+ String gid = c.getString(SqlNote.GTASK_ID_COLUMN); // 获取 GTask ID
+ Node node = mGTaskHashMap.get(gid); // 在 GTask 哈希映射中查找对应的节点
if (node != null) {
- mGTaskHashMap.remove(gid);
- ContentValues values = new ContentValues();
- values.put(NoteColumns.SYNC_ID, node.getLastModified());
+ mGTaskHashMap.remove(gid); // 从 GTask 哈希映射中移除对应的节点
+ ContentValues values = new ContentValues(); // 创建待更新的数值对象
+ values.put(NoteColumns.SYNC_ID, node.getLastModified()); // 设置更新的同步 ID
mContentResolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI,
- c.getLong(SqlNote.ID_COLUMN)), values, null, null);
+ c.getLong(SqlNote.ID_COLUMN)), values, null, null); // 更新本地的同步 ID
} else {
- Log.e(TAG, "something is missed");
+ Log.e(TAG, "something is missed"); // 输出错误日志
throw new ActionFailureException(
- "some local items don't have gid after sync");
+ "some local items don't have gid after sync"); // 抛出同步过程中丢失 GID 的异常
}
}
} else {
- Log.w(TAG, "failed to query local note to refresh sync id");
+ Log.w(TAG, "failed to query local note to refresh sync id"); // 输出警告日志
}
} finally {
if (c != null) {
- c.close();
- c = null;
+ c.close(); // 关闭游标对象
+ c = null; // 将游标对象置为 null
}
}
}
+ /**
+ * 获取同步账户信息。
+ * @return 返回同步账户名称
+ */
public String getSyncAccount() {
- return GTaskClient.getInstance().getSyncAccount().name;
+ return GTaskClient.getInstance().getSyncAccount().name; // 获取同步账户的名称
}
+ /**
+ * 取消同步操作。
+ */
public void cancelSync() {
- mCancelled = true;
+ mCancelled = true; // 将取消标志设置为 true
}
}
diff --git a/src/Notes-master/src/net/micode/notes/gtask/remote/GTaskSyncService.java b/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java
similarity index 84%
rename from src/Notes-master/src/net/micode/notes/gtask/remote/GTaskSyncService.java
rename to src/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java
index cca36f7..c9d892f 100644
--- a/src/Notes-master/src/net/micode/notes/gtask/remote/GTaskSyncService.java
+++ b/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java
@@ -14,6 +14,9 @@
* limitations under the License.
*/
+/**
+ * GTaskSyncService 是用于与 Google Tasks 同步任务的服务。
+ */
package net.micode.notes.gtask.remote;
import android.app.Activity;
@@ -23,25 +26,32 @@ import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
+/**
+ * GTaskSyncService 是用于与Google Tasks同步任务的服务。
+ */
public class GTaskSyncService extends Service {
+ // 用于同步操作类型的动作字符串名称
public final static String ACTION_STRING_NAME = "sync_action_type";
+ // 用于同步操作的常量
public final static int ACTION_START_SYNC = 0;
-
public final static int ACTION_CANCEL_SYNC = 1;
-
public final static int ACTION_INVALID = 2;
+ // GTask 服务的广播名称
public final static String GTASK_SERVICE_BROADCAST_NAME = "net.micode.notes.gtask.remote.gtask_sync_service";
+ // 广播额外信息的键
public final static String GTASK_SERVICE_BROADCAST_IS_SYNCING = "isSyncing";
-
public final static String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = "progressMsg";
+ // 用于同步的 AsyncTask
private static GTaskASyncTask mSyncTask = null;
+ // 同步过程中的进度消息
private static String mSyncProgress = "";
+ // 开始同步过程
private void startSync() {
if (mSyncTask == null) {
mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() {
@@ -56,6 +66,7 @@ public class GTaskSyncService extends Service {
}
}
+ // 取消同步过程
private void cancelSync() {
if (mSyncTask != null) {
mSyncTask.cancelSync();
@@ -93,10 +104,14 @@ public class GTaskSyncService extends Service {
}
}
+ /**
+ * onBind 方法在这个服务中没有被使用
+ */
public IBinder onBind(Intent intent) {
return null;
}
+ // 发送带有同步状态和进度消息的广播
public void sendBroadcast(String msg) {
mSyncProgress = msg;
Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME);
@@ -105,6 +120,7 @@ public class GTaskSyncService extends Service {
sendBroadcast(intent);
}
+ // 从 Activity 开始同步过程
public static void startSync(Activity activity) {
GTaskManager.getInstance().setActivityContext(activity);
Intent intent = new Intent(activity, GTaskSyncService.class);
@@ -112,17 +128,20 @@ public class GTaskSyncService extends Service {
activity.startService(intent);
}
+ // 从 Context 取消同步过程
public static void cancelSync(Context context) {
Intent intent = new Intent(context, GTaskSyncService.class);
intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC);
context.startService(intent);
}
+ // 检查当前是否正在同步
public static boolean isSyncing() {
return mSyncTask != null;
}
+ // 获取同步过程中的进度消息
public static String getProgressString() {
return mSyncProgress;
}
-}
+}
\ No newline at end of file
diff --git a/src/Notes-master/src/net/micode/notes/model/Note.java b/src/app/src/main/java/net/micode/notes/model/Note.java
similarity index 99%
rename from src/Notes-master/src/net/micode/notes/model/Note.java
rename to src/app/src/main/java/net/micode/notes/model/Note.java
index 17f7256..5a47732 100644
--- a/src/Notes-master/src/net/micode/notes/model/Note.java
+++ b/src/app/src/main/java/net/micode/notes/model/Note.java
@@ -153,7 +153,7 @@ public class Note {
mTextDataId = 0;
mCallDataId = 0;
}
-// 函数实现部分
+ // 函数实现部分
boolean isLocalModified() {
return mTextDataValues.size() > 0 || mCallDataValues.size() > 0;
}//判断是否本地修改,即是否有新电话号码数据或文本数据
diff --git a/src/Notes-master/src/net/micode/notes/model/WorkingNote.java b/src/app/src/main/java/net/micode/notes/model/WorkingNote.java
similarity index 84%
rename from src/Notes-master/src/net/micode/notes/model/WorkingNote.java
rename to src/app/src/main/java/net/micode/notes/model/WorkingNote.java
index 7b347da..c16bbfc 100644
--- a/src/Notes-master/src/net/micode/notes/model/WorkingNote.java
+++ b/src/app/src/main/java/net/micode/notes/model/WorkingNote.java
@@ -34,35 +34,38 @@ import net.micode.notes.tool.ResourceParser.NoteBgResources;
//定义WorkingNote
public class WorkingNote {
// Note for the working note
- private Note mNote;
+ private static String mPassword=null;
+ private static Note mNote;
// Note Id
private long mNoteId;
// Note content
- private String mContent;
+ public String mContent;
// Note mode
private int mMode;
-//模式值,初始化为0
+
+ //模式值,初始化为0
private long mAlertDate;
-//警戒值
+ //警戒值
private long mModifiedDate;
-//修改值
+ //修改值
private int mBgColorId;
-//颜色
+ //颜色
private int mWidgetId;
//宽 ID
private int mWidgetType;
-//宽大小
private long mFolderId;
-//文件夹ID
+
private Context mContext;
-//内容
+
private static final String TAG = "WorkingNote";
-//标签
+
private boolean mIsDeleted;
-//删除时改变
- private NoteSettingChangedListener mNoteSettingStatusListener;
-//判断设置是否改变,默认为0
+ //删除时改变
+ private boolean mchange=true;//是否可写
+ private NoteSettingChangedListener mNoteSettingStatusListener;
+ //判断设置是否改变,默认为0
+ private String mPasscode;
// 声明 DATA_PROJECTION字符串数组
public static final String[] DATA_PROJECTION = new String[] {
@@ -74,9 +77,6 @@ public class WorkingNote {
DataColumns.DATA3,
DataColumns.DATA4,
};
-
-
-
// 声明 NOTE_PROJECTION字符串数组
public static final String[] NOTE_PROJECTION = new String[] {
NoteColumns.PARENT_ID,
@@ -106,9 +106,7 @@ public class WorkingNote {
private static final int NOTE_WIDGET_TYPE_COLUMN = 4;
private static final int NOTE_MODIFIED_DATE_COLUMN = 5;
-
-
-// WorkingNote的构造函数
+ // WorkingNote的构造函数
// New note construct
private WorkingNote(Context context, long folderId) {
mContext = context;
@@ -131,16 +129,15 @@ public class WorkingNote {
mNote = new Note();
loadNote();
}
-
- // 加载Note
// 通过数据库调用query函数找到第一个条目
+ // 加载Note
+
private void loadNote() {
+// 用游标访问数据库
Cursor cursor = mContext.getContentResolver().query(
ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null,
null, null);
-
- // 若存在,储存相应信
if (cursor != null) {
if (cursor.moveToFirst()) {
mFolderId = cursor.getLong(NOTE_PARENT_ID_COLUMN);
@@ -149,6 +146,7 @@ public class WorkingNote {
mWidgetType = cursor.getInt(NOTE_WIDGET_TYPE_COLUMN);
mAlertDate = cursor.getLong(NOTE_ALERTED_DATE_COLUMN);
mModifiedDate = cursor.getLong(NOTE_MODIFIED_DATE_COLUMN);
+
}
cursor.close();
// 若不存在,报错
@@ -158,8 +156,6 @@ public class WorkingNote {
}
loadNoteData();
}
-
-
// 加载NoteData
private void loadNoteData() {
Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION,
@@ -167,10 +163,8 @@ public class WorkingNote {
String.valueOf(mNoteId)
}, null);
//根据ID加载note
- if (cursor != null) {
- // 查到信息不为空
- if (cursor.moveToFirst()) {
- // 查看第一项是否存在
+ if (cursor != null) { // 查到信息不为空
+ if (cursor.moveToFirst()) { // 查看第一项是否存在
do {
String type = cursor.getString(DATA_MIME_TYPE_COLUMN);
if (DataConstants.NOTE.equals(type)) {
@@ -182,12 +176,10 @@ public class WorkingNote {
} else {
Log.d(TAG, "Wrong note type with type:" + type);
}
- } while (cursor.moveToNext());
- //查阅所有项,直到为空
+ } while (cursor.moveToNext()); //查阅所有项,直到为空
}
cursor.close();
- } else {
- //没有便签则报错
+ } else { //没有便签则报错
Log.e(TAG, "No data with id:" + mNoteId);
throw new IllegalArgumentException("Unable to find note's data with id " + mNoteId);
}
@@ -198,24 +190,23 @@ public class WorkingNote {
public static WorkingNote createEmptyNote(Context context, long folderId, int widgetId,
int widgetType, int defaultBgColorId) {
WorkingNote note = new WorkingNote(context, folderId);
- // 设定颜色,widget
- note.setBgColorId(defaultBgColorId);
+ note.setBgColorId(defaultBgColorId);// 设定颜色,widget
note.setWidgetId(widgetId);
note.setWidgetType(widgetType);
return note;
}
-//根据id加载note
+ //根据id加载note
public static WorkingNote load(Context context, long id) {
return new WorkingNote(context, id, 0);
}
-//保存Note
+ //保存Note
public synchronized boolean saveNote() {
- if (isWorthSaving()) {
- //是否值得保存
- if (!existInDatabase()) {
- //是否存在数据库中
- if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) {
- //ID为0,报错
+ if(!mchange){//是否为只读模式
+ return true;
+ }
+ if (isWorthSaving()) {////是否值得保存
+ if (!existInDatabase()) {//是否存在数据库中
+ if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) { //ID为0,报错
Log.e(TAG, "Create new note fail with id:" + mNoteId);
return false;
}
@@ -230,6 +221,7 @@ public class WorkingNote {
&& mWidgetType != Notes.TYPE_WIDGET_INVALIDE
&& mNoteSettingStatusListener != null) {
mNoteSettingStatusListener.onWidgetChanged();// 状态变为已保存
+
}
return true;
} else {
@@ -237,12 +229,10 @@ public class WorkingNote {
}
}
- //判断数据库是否存在该便签
public boolean existInDatabase() {
return mNoteId > 0;
}
-
- //是否值得保存
+ //判断数据库是否存在该便签
private boolean isWorthSaving() {
// 被删除,或(不在数据库中 内容为空),或 本地已保存过
if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent))
@@ -252,7 +242,6 @@ public class WorkingNote {
return true;
}
}
-
// 设置mNoteSettingStatusListener
public void setOnSettingStatusChangedListener(NoteSettingChangedListener l) {
mNoteSettingStatusListener = l;
@@ -269,21 +258,18 @@ public class WorkingNote {
mNoteSettingStatusListener.onClockAlertChanged(date, set);
}
}
-
// 设定删除标记
public void markDeleted(boolean mark) {
- //设定标记
- mIsDeleted = mark;
+ mIsDeleted = mark; //设定标记
if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID
&& mWidgetType != Notes.TYPE_WIDGET_INVALIDE && mNoteSettingStatusListener != null) {
mNoteSettingStatusListener.onWidgetChanged();
- // 调用mNoteSettingStatusListener的 onWidgetChanged方法
+ // 调用mNoteSettingStatusListener的 onWidgetChanged方法
}
}
-
// 设定背景颜色
public void setBgColorId(int id) {
- if (id != mBgColorId) {//设定条件 id != mBgColorId
+ if (id != mBgColorId) {
mBgColorId = id;
if (mNoteSettingStatusListener != null) {
mNoteSettingStatusListener.onBackgroundColorChanged();
@@ -291,12 +277,10 @@ public class WorkingNote {
mNote.setNoteValue(NoteColumns.BG_COLOR_ID, String.valueOf(id));
}
}
-
// 设定检查列表模式
// 参数:mode
public void setCheckListMode(int mode) {
- //设定条件 mMode != mode,才改变
- if (mMode != mode) {
+ if (mMode != mode) { //设定条件 mMode != mode,才改变
if (mNoteSettingStatusListener != null) {
mNoteSettingStatusListener.onCheckListModeChanged(mMode, mode);
}
@@ -341,10 +325,9 @@ public class WorkingNote {
mNote.setCallData(CallNote.PHONE_NUMBER, phoneNumber);
mNote.setNoteValue(NoteColumns.PARENT_ID, String.valueOf(Notes.ID_CALL_RECORD_FOLDER));
}
-
// 判断是否有时钟题型
public boolean hasClockAlert() {
- return (mAlertDate > 0 ? true : false);
+ return (mAlertDate > 0);
}
// 获取Content
@@ -402,9 +385,23 @@ public class WorkingNote {
public int getWidgetType() {
return mWidgetType;
}
+ /**判断是否已经设置密码*/
+ public boolean hasPasscode() {
+ return !mPasscode.equals("");
+ }
+
+ /**设置便签访问密码,并存入数据库*/
+ public void setPasscode(String passcode) {
+ mPasscode = passcode;
+ mNote.setNoteValue(NoteColumns.PASSCODE, passcode);
+ }
// 创建接口 NoteSettingChangedListener,便签更新监视
// 为NoteEditActivity提供接口
// 提供函数有
+ /**获取设置的密码*/
+ public String getPasscode() {
+ return mPasscode;
+ }
public interface NoteSettingChangedListener {
/**
* Called when the background color of current note has just changed
@@ -427,5 +424,26 @@ public class WorkingNote {
* @param newMode is new mode
*/
void onCheckListModeChanged(int oldMode, int newMode);
+
+ }
+ public static void setPassword(String password){
+ //将该类的mPassword属性设置为新的访问密码
+ mPassword = password;
+ //将修改后的便签密码写入到便签数据库中
+ mNote.setNoteValue(NoteColumns.PASSWORD,String.valueOf(mPassword));
+ }
+ public String getmPassword(){
+//返回便签密码
+ return mPassword;
+ }
+ public void deletePassword(){
+// 将密码重新置为空
+ mPassword=null;
+ mNote.setNoteValue(NoteColumns.PASSWORD,String.valueOf(mPassword));
+ }
+ public void change(){
+// 改变可写状态
+ mchange=!(mchange);
+ mNote.setNoteValue(NoteColumns.CHANGE,String.valueOf(mchange));
}
}
diff --git a/src/Notes-master/src/net/micode/notes/tool/BackupUtils.java b/src/app/src/main/java/net/micode/notes/tool/BackupUtils.java
similarity index 91%
rename from src/Notes-master/src/net/micode/notes/tool/BackupUtils.java
rename to src/app/src/main/java/net/micode/notes/tool/BackupUtils.java
index 7062f51..4fef28b 100644
--- a/src/Notes-master/src/net/micode/notes/tool/BackupUtils.java
+++ b/src/app/src/main/java/net/micode/notes/tool/BackupUtils.java
@@ -35,6 +35,7 @@ import java.io.FileOutputStream;//导入 Java 的文件输出流(FileOutputStrea
import java.io.IOException;//导入 Java 的输入输出异常(IOException)类,用于处理输入输出操作中可能发生的异常情况。
import java.io.PrintStream;//导入 Java 的打印流(PrintStream)类,用于向标准输出流打印输出。
+
//备份的处理
public class BackupUtils {
private static final String TAG = "BackupUtils";//定义了一个私有的静态字符串常量 TAG,用于日志输出。
@@ -42,7 +43,7 @@ public class BackupUtils {
private static BackupUtils sInstance;//定义了一个私有的静态成员变量 sInstance,表示单例对象。
public static synchronized BackupUtils getInstance(Context context) {
- if (sInstance == null) {
+ if (sInstance == null) {
//如果当前备份不存在,则新声明一个
sInstance = new BackupUtils(context);//并将传入的上下文参数赋值给它
@@ -67,6 +68,7 @@ public class BackupUtils {
//备份或恢复成功。
private TextExport mTextExport;//声明了一个私有成员变量 mTextExport,表示文本导出对象。
+
//初始化函数
private BackupUtils(Context context) {
mTextExport = new TextExport(context);
@@ -81,15 +83,16 @@ public class BackupUtils {
public int exportToText() {
return mTextExport.exportToText();
}
-//用于导出数据到文本文件。该方法调用了 mTextExport 对象的 exportToText() 方法,并返回结果。
+ //用于导出数据到文本文件。该方法调用了 mTextExport 对象的 exportToText() 方法,并返回结果。
public String getExportedTextFileName() {
return mTextExport.mFileName;
}
-// 用于获取导出的文本文件名。该方法返回 mTextExport 对象的 mFileName 属性。
+ // 用于获取导出的文本文件名。该方法返回 mTextExport 对象的 mFileName 属性。
public String getExportedTextFileDir() {
return mTextExport.mFileDirectory;
}
-// 用于获取导出的文本文件目录。该方法返回 mTextExport 对象的 mFileDirectory 属性。 private static class TextExport {
+ // 用于获取导出的文本文件目录。该方法返回 mTextExport 对象的 mFileDirectory 属性。
+ private static class TextExport {
private static final String[] NOTE_PROJECTION = {
NoteColumns.ID,//表示笔记的唯一标识符。
NoteColumns.MODIFIED_DATE,//表示笔记的修改日期。
@@ -128,7 +131,6 @@ public class BackupUtils {
private Context mContext;
private String mFileName;
private String mFileDirectory;
-
//导出文本功能,将其作为字符串形式导出
public TextExport(Context context) {
TEXT_FORMAT = context.getResources().getStringArray(R.array.format_for_exported_note);
@@ -148,7 +150,7 @@ public class BackupUtils {
// Query notes belong to this folder通过查询parent id是文件夹id的note来选出制定ID文件夹下的Note
Cursor notesCursor = mContext.getContentResolver().query(Notes.CONTENT_NOTE_URI,
NOTE_PROJECTION, NoteColumns.PARENT_ID + "=?", new String[] {
- folderId
+ folderId
}, null);
if (notesCursor != null) {//有内容
@@ -177,14 +179,12 @@ public class BackupUtils {
noteId
}, null);
-// if (dataCursor != null) { //利用光标来扫描内容,区别为callnote和note两种,靠ps.printline输出
-// 如果类型为 DataConstants.CALL_NOTE,则获取电话号码、通话时间、附件位置等信息,并使用 ps.println() 方法输出到文本文件中。
-// 如果类型为 DataConstants.NOTE,则获取笔记内容信息,并使用 ps.println() 方法输出到文本文件中。
-// 在每个笔记结束后,输出一行分隔符(由 Character.LINE_SEPARATOR, Character.LETTER_NUMBER 组成),以便区分不同笔记的内容
+ if (dataCursor != null) {
if (dataCursor.moveToFirst()) {
do {
String mimeType = dataCursor.getString(DATA_COLUMN_MIME_TYPE);
if (DataConstants.CALL_NOTE.equals(mimeType)) {//是否类型相同
+ // Print phone number
// Print phone number
String phoneNumber = dataCursor.getString(DATA_COLUMN_PHONE_NUMBER);
long callDate = dataCursor.getLong(DATA_COLUMN_CALL_DATE);
@@ -238,7 +238,7 @@ public class BackupUtils {
Log.e(TAG, "get print stream error");
return STATE_SYSTEM_ERROR;
}
- // First export folder and its notes 导出文件夹,就是导出里面包含的便签
+ // First export folder and its notes 导出文件夹,就是导出里面包含的便签
Cursor folderCursor = mContext.getContentResolver().query(
Notes.CONTENT_NOTE_URI,
NOTE_PROJECTION,
@@ -266,7 +266,7 @@ public class BackupUtils {
folderCursor.close();
}
- // Export notes in root's folder 将根目录里的便签导出(由于不属于任何文件夹,因此无法通过文件夹导出来实现这一部分便签的导出)
+ // Export notes in root's folder将根目录里的便签导出(由于不属于任何文件夹,因此无法通过文件夹导出来实现这一部分便签的导出)
Cursor noteCursor = mContext.getContentResolver().query(
Notes.CONTENT_NOTE_URI,
NOTE_PROJECTION,
@@ -331,8 +331,7 @@ public class BackupUtils {
DateFormat.format(context.getString(R.string.format_date_ymd),
System.currentTimeMillis())));//将资源 ID 为 fileNameFormatResId 的字符串添加到 sb 中,该字符串是文件名的格式化模板,其中使用了当前时间进行格式化。
File file = new File(sb.toString());
-
- try { //如果这些文件不存在,则新建
+ try { //如果这些文件不存在,则新建
if (!filedir.exists()) {
filedir.mkdir();
}
diff --git a/src/Notes-master/src/net/micode/notes/tool/DataUtils.java b/src/app/src/main/java/net/micode/notes/tool/DataUtils.java
similarity index 97%
rename from src/Notes-master/src/net/micode/notes/tool/DataUtils.java
rename to src/app/src/main/java/net/micode/notes/tool/DataUtils.java
index 33e5f26..cc1a787 100644
--- a/src/Notes-master/src/net/micode/notes/tool/DataUtils.java
+++ b/src/app/src/main/java/net/micode/notes/tool/DataUtils.java
@@ -86,7 +86,7 @@ public class DataUtils {
//批量移动
public static boolean batchMoveToFolder(ContentResolver resolver, HashSet ids,
- long folderId) {
+ long folderId) {
if (ids == null) {
Log.d(TAG, "the ids is null");
return true;
@@ -160,7 +160,7 @@ public class DataUtils {
}
return exist;
}
-///判定是否有指定note,即不需条件条件:type符合,且不属于垃圾文件夹
+ ///判定是否有指定note,即不需条件条件:type符合,且不属于垃圾文件夹
public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) {
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId),
null, null, null, null);
@@ -174,7 +174,7 @@ public class DataUtils {
}
return exist;
}
-//判定是否有指定的data
+ //判定是否有指定的data
public static boolean existInDataDatabase(ContentResolver resolver, long dataId) {
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId),
null, null, null, null);
@@ -188,12 +188,12 @@ public class DataUtils {
}
return exist;
}
-//判定是否有指定的可见folder
+ //判定是否有指定的可见folder
public static boolean checkVisibleFolderName(ContentResolver resolver, String name) {
Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null,
NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER +
- " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER +
- " AND " + NoteColumns.SNIPPET + "=?",
+ " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER +
+ " AND " + NoteColumns.SNIPPET + "=?",
new String[] { name }, null);
//通过名字查询文件是否存在
boolean exist = false;
@@ -258,7 +258,7 @@ public class DataUtils {
Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI,
new String [] { CallNote.NOTE_ID },
CallNote.CALL_DATE + "=? AND " + CallNote.MIME_TYPE + "=? AND PHONE_NUMBERS_EQUAL("
- + CallNote.PHONE_NUMBER + ",?)",
+ + CallNote.PHONE_NUMBER + ",?)",
new String [] { String.valueOf(callDate), CallNote.CONTENT_ITEM_TYPE, phoneNumber },
null);//在查询条件中限定了通话日期(CallNote.CALL_DATE)、便签类型(CallNote.MIME_TYPE)以及电话号码(CallNote.PHONE_NUMBER)。//使用了占位符(?)和参数数组来避免SQL注入攻击,并使用PHONE_NUMBERS_EQUAL函数来比较电话号码。
//通过数据库操作,查询条件是(callDate和phoneNumber匹配传入参数的值)
diff --git a/src/Notes-master/src/net/micode/notes/tool/GTaskStringUtils.java b/src/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java
similarity index 97%
rename from src/Notes-master/src/net/micode/notes/tool/GTaskStringUtils.java
rename to src/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java
index 3dae2b5..4898d03 100644
--- a/src/Notes-master/src/net/micode/notes/tool/GTaskStringUtils.java
+++ b/src/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java
@@ -18,7 +18,7 @@
package net.micode.notes.tool;
//这个类就是定义了一堆static string,实际就是为jsonObject提供Key,把这些定义全部写到一个类里,方便查看管理
public class GTaskStringUtils {
-// 前面一部分常量名称都以"GTASK_JSON_"开头,表示它们是Google Tasks API中JSON格式的字段名称。
+ // 前面一部分常量名称都以"GTASK_JSON_"开头,表示它们是Google Tasks API中JSON格式的字段名称。
public final static String GTASK_JSON_ACTION_ID = "action_id";//操作的ID
public final static String GTASK_JSON_ACTION_LIST = "action_list";//操作列表
diff --git a/src/Notes-master/src/net/micode/notes/tool/ResourceParser.java b/src/app/src/main/java/net/micode/notes/tool/ResourceParser.java
similarity index 84%
rename from src/Notes-master/src/net/micode/notes/tool/ResourceParser.java
rename to src/app/src/main/java/net/micode/notes/tool/ResourceParser.java
index 7e656a5..fb3095e 100644
--- a/src/Notes-master/src/net/micode/notes/tool/ResourceParser.java
+++ b/src/app/src/main/java/net/micode/notes/tool/ResourceParser.java
@@ -39,7 +39,7 @@ import net.micode.notes.ui.NotesPreferenceActivity;
public class ResourceParser {
-//定义颜色编号
+ //定义颜色编号
public static final int YELLOW = 0;
public static final int BLUE = 1;
public static final int WHITE = 2;
@@ -47,7 +47,7 @@ public class ResourceParser {
public static final int RED = 4;
public static final int BG_DEFAULT_COLOR = YELLOW;
-//定义大小编号
+ //定义大小编号
public static final int TEXT_SMALL = 0;
public static final int TEXT_MEDIUM = 1;
public static final int TEXT_LARGE = 2;
@@ -56,7 +56,7 @@ public class ResourceParser {
public static final int BG_DEFAULT_FONT_SIZE = TEXT_MEDIUM;
public static class NoteBgResources {
-// 表示笔记编辑界面的不同背景颜色
+ // 表示笔记编辑界面的不同背景颜色
private final static int [] BG_EDIT_RESOURCES = new int [] {
R.drawable.edit_yellow,
R.drawable.edit_blue,
@@ -64,7 +64,7 @@ public class ResourceParser {
R.drawable.edit_green,
R.drawable.edit_red
};
-//标题栏背景颜色
+ //标题栏背景颜色
private final static int [] BG_EDIT_TITLE_RESOURCES = new int [] {
R.drawable.edit_title_yellow,
R.drawable.edit_title_blue,
@@ -83,7 +83,7 @@ public class ResourceParser {
}
//直接获取默认的背景颜色。这个PREFERENCE_SET_BG_COLOR_KEY是个final string,也就是说getBoolean肯定执行else,为什么要这么写
-// getDefaultBgId方法是一个公共静态方法,它接收一个Context对象作为参数,并根据应用程序的偏好设置确定默认的背景颜色ID。如果偏好设置中设置了背景颜色,则随机选择一个背景颜色ID;否则,返回一个默认的背景颜色ID。
+ // getDefaultBgId方法是一个公共静态方法,它接收一个Context对象作为参数,并根据应用程序的偏好设置确定默认的背景颜色ID。如果偏好设置中设置了背景颜色,则随机选择一个背景颜色ID;否则,返回一个默认的背景颜色ID。
public static int getDefaultBgId(Context context) {
if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean(
NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) {
@@ -93,7 +93,7 @@ public class ResourceParser {
}
}
-// NoteItemBgResources类类似于NoteBgResources类,它也包含一个私有的静态整型数组BG_FIRST_RESOURCES,用于表示笔记列表项的不同背景颜色。这些资源文件ID代表了笔记列表项在不同状态下的背景样式。
+ // NoteItemBgResources类类似于NoteBgResources类,它也包含一个私有的静态整型数组BG_FIRST_RESOURCES,用于表示笔记列表项的不同背景颜色。这些资源文件ID代表了笔记列表项在不同状态下的背景样式。
public static class NoteItemBgResources {
private final static int [] BG_FIRST_RESOURCES = new int [] {
R.drawable.list_yellow_up,
@@ -148,7 +148,7 @@ public class ResourceParser {
}
}
-// 这些数组存储了一组资源文件的ID,用于表示小部件(widget)的不同背景颜色。其中,BG_2X_RESOURCES数组存储了用于2x尺寸的小部件背景颜色的资源文件ID,而BG_4X_RESOURCES数组存储了用于4x尺寸的小部件背景颜色的资源文件ID。
+ // 这些数组存储了一组资源文件的ID,用于表示小部件(widget)的不同背景颜色。其中,BG_2X_RESOURCES数组存储了用于2x尺寸的小部件背景颜色的资源文件ID,而BG_4X_RESOURCES数组存储了用于4x尺寸的小部件背景颜色的资源文件ID。
public static class WidgetBgResources {
private final static int [] BG_2X_RESOURCES = new int [] {
R.drawable.widget_2x_yellow,
@@ -175,9 +175,9 @@ public class ResourceParser {
}
}
-// 用于存储一组文本外观(TextAppearance)的资源文件ID。这些资源文件ID代表了不同文本样式的设置,如正常字体、中等字体、大号字体、超大号字体等
+ // 用于存储一组文本外观(TextAppearance)的资源文件ID。这些资源文件ID代表了不同文本样式的设置,如正常字体、中等字体、大号字体、超大号字体等
public static class TextAppearanceResources {
-// 可以根据给定的索引获取对应的文本样式的资源文件ID。注意这里有一个容错的函数,当传入的索引大于等于资源数量时,会返回默认的字体大小设置。
+ // 可以根据给定的索引获取对应的文本样式的资源文件ID。注意这里有一个容错的函数,当传入的索引大于等于资源数量时,会返回默认的字体大小设置。
private final static int [] TEXTAPPEARANCE_RESOURCES = new int [] {
R.style.TextAppearanceNormal,
R.style.TextAppearanceMedium,
diff --git a/src/Notes-master/src/net/micode/notes/ui/AlarmAlertActivity.java b/src/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java
similarity index 95%
rename from src/Notes-master/src/net/micode/notes/ui/AlarmAlertActivity.java
rename to src/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java
index c2d683d..e1bea67 100644
--- a/src/Notes-master/src/net/micode/notes/ui/AlarmAlertActivity.java
+++ b/src/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java
@@ -47,8 +47,8 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD
private static final int SNIPPET_PREW_MAX_LEN = 60;// 文本片段预览的最大长度
MediaPlayer mPlayer;// 媒体播放器
- @Override
- protected void on2Create(Bundle savedInstanceState) //当一个Activity被创建时系统会调用该的onCreate()方法,在onCreate()方法的参数savedInstanceState是一个Bundle对象,用于保存Activity的状态。当Activity因为某种原因(例如屏幕旋转、内存不足等)被销毁时,系统会将Activity的状态保存在savedInstanceState中。当Activity重新创建时,系统会将savedInstanceState传递给onCreate()方法,以便恢复之前保存的状态。
+
+ protected void on2Create(Bundle savedInstanceState) //当一个Activity被创建时系统会调用该的onCreate()方法
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题栏
diff --git a/src/Notes-master/src/net/micode/notes/ui/AlarmInitReceiver.java b/src/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java
similarity index 100%
rename from src/Notes-master/src/net/micode/notes/ui/AlarmInitReceiver.java
rename to src/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java
diff --git a/src/Notes-master/src/net/micode/notes/ui/AlarmReceiver.java b/src/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java
similarity index 100%
rename from src/Notes-master/src/net/micode/notes/ui/AlarmReceiver.java
rename to src/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java
diff --git a/src/Notes-master/src/net/micode/notes/ui/DateTimePicker.java b/src/app/src/main/java/net/micode/notes/ui/DateTimePicker.java
similarity index 98%
rename from src/Notes-master/src/net/micode/notes/ui/DateTimePicker.java
rename to src/app/src/main/java/net/micode/notes/ui/DateTimePicker.java
index f41a158..b289371 100644
--- a/src/Notes-master/src/net/micode/notes/ui/DateTimePicker.java
+++ b/src/app/src/main/java/net/micode/notes/ui/DateTimePicker.java
@@ -176,6 +176,7 @@ public class DateTimePicker extends FrameLayout {
onDateTimeChanged(); // 触发日期时间变化监听器
}
};
+
public interface OnDateTimeChangedListener {
/**
* 当日期时间发生变化时调用
@@ -202,9 +203,9 @@ public class DateTimePicker extends FrameLayout {
/**
* 构造方法,创建一个 DateTimePicker 对象,并设置指定的日期时间和小时制
*
- * @param context 上下文环境
- * @param date 指定的日期时间,以毫秒为单位
- * @param is24HourView 是否为 24 小时制显示
+ * @param context 上下文环境
+ * @param date 指定的日期时间,以毫秒为单位
+ * @param is24HourView 是否为 24 小时制显示
*/
public DateTimePicker(Context context, long date) {
this(context, date, DateFormat.is24HourFormat(context));
@@ -224,7 +225,7 @@ public class DateTimePicker extends FrameLayout {
mHourSpinner = (NumberPicker) findViewById(R.id.hour); // 获取小时选择器视图
mHourSpinner.setOnValueChangedListener(mOnHourChangedListener); // 设置小时选择器值变化的监听器
- mMinuteSpinner = (NumberPicker) findViewById(R.id.minute); // 获取分钟选择器视图
+ mMinuteSpinner = (NumberPicker) findViewById(R.id.minute); // 获取分钟选择器视图
mMinuteSpinner.setMinValue(MINUT_SPINNER_MIN_VAL); // 设置分钟选择器的最小值
mMinuteSpinner.setMaxValue(MINUT_SPINNER_MAX_VAL); // 设置分钟选择器的最大值
mMinuteSpinner.setOnLongPressUpdateInterval(100); // 设置长按更新间隔
@@ -302,11 +303,11 @@ public class DateTimePicker extends FrameLayout {
/**
* Set the current date
*
- * @param year The current year
- * @param month The current month
+ * @param year The current year
+ * @param month The current month
* @param dayOfMonth The current dayOfMonth
- * @param hourOfDay The current hourOfDay
- * @param minute The current minute
+ * @param hourOfDay The current hourOfDay
+ * @param minute The current minute
*/
public void setCurrentDate(int year, int month, int dayOfMonth, int hourOfDay, int minute) {
setCurrentYear(year); // 设置当前年份
@@ -489,6 +490,7 @@ public class DateTimePicker extends FrameLayout {
setCurrentHour(hour); // 设置当前的小时
updateAmPmControl(); // 更新上午/下午选择控件
}
+
private void updateDateControl() {
Calendar cal = Calendar.getInstance(); // 创建一个新的Calendar对象
cal.setTimeInMillis(mDate.getTimeInMillis()); // 将mDate的时间设置给新的Calendar对象
@@ -504,6 +506,7 @@ public class DateTimePicker extends FrameLayout {
mDateSpinner.setValue(DAYS_IN_ALL_WEEK / 2); // 设置日期选择控件的当前值为DAYS_IN_ALL_WEEK / 2
mDateSpinner.invalidate(); // 使日期选择控件无效,以便重绘
}
+
private void updateAmPmControl() {
if (mIs24HourView) {
mAmPmSpinner.setVisibility(View.GONE); // 如果是24小时制,隐藏上午/下午选择控件
@@ -539,3 +542,4 @@ public class DateTimePicker extends FrameLayout {
getCurrentMonth(), getCurrentDay(), getCurrentHourOfDay(), getCurrentMinute());
}
}
+}
\ No newline at end of file
diff --git a/src/Notes-master/src/net/micode/notes/ui/DateTimePickerDialog.java b/src/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java
similarity index 100%
rename from src/Notes-master/src/net/micode/notes/ui/DateTimePickerDialog.java
rename to src/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java
diff --git a/src/Notes-master/src/net/micode/notes/ui/DropdownMenu.java b/src/app/src/main/java/net/micode/notes/ui/DropdownMenu.java
similarity index 100%
rename from src/Notes-master/src/net/micode/notes/ui/DropdownMenu.java
rename to src/app/src/main/java/net/micode/notes/ui/DropdownMenu.java
diff --git a/src/Notes-master/src/net/micode/notes/ui/FoldersListAdapter.java b/src/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java
similarity index 100%
rename from src/Notes-master/src/net/micode/notes/ui/FoldersListAdapter.java
rename to src/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java
diff --git a/src/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java b/src/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java
similarity index 53%
rename from src/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java
rename to src/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java
index 96a9ff8..5cdff40 100644
--- a/src/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java
+++ b/src/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java
@@ -19,22 +19,39 @@ package net.micode.notes.ui;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
+import android.app.Dialog;
import android.app.PendingIntent;
import android.app.SearchManager;
import android.appwidget.AppWidgetManager;
+import android.content.ContentResolver;
import android.content.ContentUris;
+import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Matrix;
import android.graphics.Paint;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
+import android.os.Environment;
import android.preference.PreferenceManager;
+import android.provider.DocumentsContract;
+import android.provider.MediaStore;
+import android.text.Editable;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
+import android.text.TextWatcher;
import android.text.format.DateUtils;
import android.text.style.BackgroundColorSpan;
+import android.text.style.ImageSpan;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -43,14 +60,20 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
+import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
+import android.speech.tts.TextToSpeech;
+import android.speech.tts.TextToSpeech.OnInitListener;
+import android.graphics.Typeface;
import net.micode.notes.R;
import net.micode.notes.data.Notes;
@@ -65,15 +88,84 @@ import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener;
import net.micode.notes.widget.NoteWidgetProvider_2x;
import net.micode.notes.widget.NoteWidgetProvider_4x;
+import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Locale;
import java.util.Map;
+import java.util.Vector;
+import java.util.Stack;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class NoteEditActivity extends Activity implements OnClickListener,
NoteSettingChangedListener, OnTextViewChangeListener {
+ private TextToSpeech mTTs;
+ private EditText editText;
+ private TextView textView;
+// private static final int MAX_OF_RVOKE_TIME=5;
+// private boolean mIsRevoke=false;
+// private Vector