diff --git a/doc/开源代码的质量分析报告-刘桓希-201802509005.docx b/doc/开源代码的质量分析报告-刘桓希-201802509005.docx
index fb6f9cc..a4190ac 100644
Binary files a/doc/开源代码的质量分析报告-刘桓希-201802509005.docx and b/doc/开源代码的质量分析报告-刘桓希-201802509005.docx differ
diff --git a/doc/阅读和维护开源软件的考评表——刘桓希、张括.xlsx b/doc/阅读和维护开源软件的考评表——刘桓希、张括.xlsx
index b43b419..6b870f7 100644
Binary files a/doc/阅读和维护开源软件的考评表——刘桓希、张括.xlsx and b/doc/阅读和维护开源软件的考评表——刘桓希、张括.xlsx differ
diff --git a/src/.idea/sonarlint/issuestore/5/7/577f30d26378ec8a2bd2e4a43f3c79b3f04c402c b/src/.idea/sonarlint/issuestore/5/7/577f30d26378ec8a2bd2e4a43f3c79b3f04c402c
index aba08ef..e84df14 100644
--- a/src/.idea/sonarlint/issuestore/5/7/577f30d26378ec8a2bd2e4a43f3c79b3f04c402c
+++ b/src/.idea/sonarlint/issuestore/5/7/577f30d26378ec8a2bd2e4a43f3c79b3f04c402c
@@ -1,84 +1,84 @@
-d java:S899 "BDo something with the "boolean" value returned by "createNewFile".(8.
-D
-java:S1075 "&Remove this hard-coded path-delimiter.(8.
-M
-java:S2093
-"*Change this "try" to a try-with-resources.(8.
-e
-java:S1126"BReplace this if-then-else statement by a single method invocation.(8.
-U
-java:S1135"2Complete the task associated to this TODO comment.(8.
-U
-java:S1135
-"2Complete the task associated to this TODO comment.(̐8.
-n java:S117"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(8.
-j
-java:S1192 "LDefine a constant instead of duplicating this literal "").(8.
-U
-java:S1135"2Complete the task associated to this TODO comment.(8.
-w
-java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(艥8.
-_
-java:S1126"AReplace this if-then-else statement by a single return statement.(8.
-\
-java:S1874"9Remove this use of "setTextAppearance"; it is deprecated.(8.
+s java:S117"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ӏ8.
|
java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(8.
-u
-java:S3776"RRefactor this method to reduce its Cognitive Complexity from 27 to the 15 allowed.(ݨ8.
k
java:S3252"MUse static access with "android.provider.MediaStore$MediaColumns" for "DATA".(8.
+
+java:S1149"_Replace the synchronized class "StringBuffer" by an unsynchronized one such as "StringBuilder".(᯲8.
+r
+java:S1104"OMake mId a static final constant or non-public and provide accessors if needed.(8.
+\
+java:S1874"9Remove this use of "setTextAppearance"; it is deprecated.(8.
+k
+java:S3252 "MUse static access with "android.text.Spanned" for "SPAN_INCLUSIVE_EXCLUSIVE".(8.
+[
+java:S1874"=Remove this use of "EXTRA_SHORTCUT_INTENT"; it is deprecated.(ð8.
+y
+java:S1104p"WMake ivAlertIcon a static final constant or non-public and provide accessors if needed.(න8і.
+k
+java:S3252"MUse static access with "android.text.Spanned" for "SPAN_INCLUSIVE_EXCLUSIVE".(8.
+w
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(艥8.
+w
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(8.
+V
+java:S1874"9Remove this use of "setTextAppearance"; it is deprecated.((8.
?
java:S1116"Remove this empty statement.(8.
-x
-java:S1104n"VMake tvModified a static final constant or non-public and provide accessors if needed.(ԣ8.
+e
+java:S1126"BReplace this if-then-else statement by a single method invocation.(8.
+p
+java:S3252"MUse static access with "android.provider.MediaStore$MediaColumns" for "DATA".(ԡ8.
+z
+java:S1104t"XMake ibSetBgColor a static final constant or non-public and provide accessors if needed.(8і.
+|
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(8.
^ java:S125"").(ӏ8.
-w
-java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(8.
\ No newline at end of file
+java:S2293w"YReplace the type specification in this constructor call with the diamond operator ("<>").(ӏ8.
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/7/e/7e95080e97eb945562bad95d376a9dbe3224954d b/src/.idea/sonarlint/issuestore/7/e/7e95080e97eb945562bad95d376a9dbe3224954d
index 0007dc9..54a4739 100644
--- a/src/.idea/sonarlint/issuestore/7/e/7e95080e97eb945562bad95d376a9dbe3224954d
+++ b/src/.idea/sonarlint/issuestore/7/e/7e95080e97eb945562bad95d376a9dbe3224954d
@@ -1,24 +1,24 @@
M
java:S1854!"7Remove this useless assignment to local variable "dim".(
+b
+java:S2259T"@A "NullPointerException" could be thrown; "bm" is nullable here.(Ȳ8ڣ.
+j
+java:S4042"NUse "java.nio.file.Files#delete" here for better messages on error conditions.(
+G
+java:S1874"0Remove this use of "inDither"; it is deprecated.(Ծ
N
java:S2589"7Remove this expression which always evaluates to "true"(
-=
-java:S1905"&Remove this unnecessary cast to "int".(
+R java:S125"Remove this use of "setDrawingCacheEnabled"; it is deprecated.(
M
java:S1874D"7Remove this use of "getDrawingCache"; it is deprecated.(
O
-java:S1874C"9Remove this use of "buildDrawingCache"; it is deprecated.(ݛ
+java:S1874T"9Remove this use of "buildDrawingCache"; it is deprecated.(ݛ
U
java:S1118":Add a private constructor to hide the implicit public one.(
-Q
-java:S1874^";Remove this use of "destroyDrawingCache"; it is deprecated.(
+M
+java:S1874U"7Remove this use of "getDrawingCache"; it is deprecated.(
+Y
+java:S1874B">Remove this use of "setDrawingCacheEnabled"; it is deprecated.(
Q
java:S1874I";Remove this use of "destroyDrawingCache"; it is deprecated.(
-Y
-java:S1874B">Remove this use of "setDrawingCacheEnabled"; it is deprecated.(
\ No newline at end of file
+Q
+java:S1874^";Remove this use of "destroyDrawingCache"; it is deprecated.(
+O
+java:S1874C"9Remove this use of "buildDrawingCache"; it is deprecated.(ݛ
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/a/d/ad72331a1bed265bb9c0fe838faa74dbf69fce32 b/src/.idea/sonarlint/issuestore/a/d/ad72331a1bed265bb9c0fe838faa74dbf69fce32
index ca56fed..f224bde 100644
--- a/src/.idea/sonarlint/issuestore/a/d/ad72331a1bed265bb9c0fe838faa74dbf69fce32
+++ b/src/.idea/sonarlint/issuestore/a/d/ad72331a1bed265bb9c0fe838faa74dbf69fce32
@@ -1,94 +1,94 @@
-w
-java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(艥8.
-s java:S117 "QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(8.
+J
+java:S1199"-Extract this nested code block into a method.(Փ58.
+U
+java:S1135"2Complete the task associated to this TODO comment.(8.
+U
+java:S1135"2Complete the task associated to this TODO comment.(8.
+U
+java:S1135"2Complete the task associated to this TODO comment.(8.
+K
+java:S1199"-Extract this nested code block into a method.(8.
+u
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(핺8.
+^ java:S125"").(艥8.
P
-java:S1199"-Extract this nested code block into a method.(8.
-`
-java:S1126"BReplace this if-then-else statement by a single method invocation.(8.
-H
-java:S3398"%Move this method into "ModeCallback".(핺8.
-x java:S116"[Rename this field "gestures_overlay" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(8ܬ.
-9
-java:S3626"Remove this redundant jump.(݅8.
-u
-java:S3776"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(핺8.
-\
-java:S1124"EReorder the modifiers to comply with the Java Language Specification.(۞ƣ
+java:S1199"-Extract this nested code block into a method.(̀8.
U
-java:S1135"2Complete the task associated to this TODO comment.(8.
+java:S1135"2Complete the task associated to this TODO comment.(8.
+o java:S101"MRename this class name to match the regular expression '^[A-Z][a-zA-Z0-9]*$'.(8.
+R
+java:S3398"/Move this method into "BackgroundQueryHandler".(8.
+P
+java:S1199"-Extract this nested code block into a method.(8.
+P
+java:S1199"-Extract this nested code block into a method.(ڿ8.
+O
+java:S1874"1Remove this use of "getHeight"; it is deprecated.(Á8.
+K
+java:S1199"-Extract this nested code block into a method.(8.
+s java:S117 "QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(8.
+o java:S101"MRename this class name to match the regular expression '^[A-Z][a-zA-Z0-9]*$'.(8.
P
java:S1199"-Extract this nested code block into a method.(8.
+h
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(я8.
+K
+java:S1199"-Extract this nested code block into a method.(ȓ8.
+`
+java:S1126"BReplace this if-then-else statement by a single method invocation.(8.
n
java:S1301"KReplace this "switch" statement by "if" statements to increase readability.(ד8.
-K
-java:S1199"-Extract this nested code block into a method.(8.
+H
+java:S3398"%Move this method into "ModeCallback".(핺8.
e
java:S1126 "BReplace this if-then-else statement by a single method invocation.(8.
-R
-java:S3398"/Move this method into "BackgroundQueryHandler".(8.
-U
-java:S1135"2Complete the task associated to this TODO comment.(8.
+x java:S116"[Rename this field "gestures_overlay" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(8ܬ.
U
-java:S1135"2Complete the task associated to this TODO comment.(8.
-K
-java:S1199"-Extract this nested code block into a method.(8.
-J
-java:S1199"-Extract this nested code block into a method.(Փ58.
-u
-java:S3776"RRefactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed.(8.
\ No newline at end of file
+java:S1135 "2Complete the task associated to this TODO comment.(8.
+o
+java:S3776 "RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(-8.
+k java:S100"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(8.
\ No newline at end of file
diff --git a/src/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a b/src/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a
index 06d7f85..2d5f494 100644
--- a/src/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a
+++ b/src/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a
@@ -1,9 +1,9 @@
-Y java:S125"").(ʩ
-X java:S125~"