From ad99b36c4a93a3aaabf0722db6496ee01dfc4a1c Mon Sep 17 00:00:00 2001 From: emptystack1024 <3339811384@qq.com> Date: Fri, 14 Apr 2023 14:45:48 +0800 Subject: [PATCH] src --- doc/~$便签开源代码的泛读报告.docx | Bin 0 -> 162 bytes ...米便签开源代码的泛读报告.docx | Bin 455368 -> 452468 bytes .../.idea/sonarlint/issuestore/index.pb | 0 .../sonarlint/securityhotspotstore/index.pb | 0 .../java/net/micode/notes/model/Note.java | 98 ++++++++++-------- 5 files changed, 56 insertions(+), 42 deletions(-) create mode 100644 doc/~$便签开源代码的泛读报告.docx create mode 100644 src/Notes-master/.idea/sonarlint/issuestore/index.pb create mode 100644 src/Notes-master/.idea/sonarlint/securityhotspotstore/index.pb diff --git a/doc/~$便签开源代码的泛读报告.docx b/doc/~$便签开源代码的泛读报告.docx new file mode 100644 index 0000000000000000000000000000000000000000..3aded6bf2d8b5251c9f4e390df0e1813cbe53f33 GIT binary patch literal 162 zcmZQObl~8gH~Se#1I!GfA^A;n3K$p~z#4^17AG#B#K2JUoDIbwCMXXke(>kM_*r>3 h87J34)IZHUFEIzm@0czA0Hn74RrC9w^(aO#002noAGrVk literal 0 HcmV?d00001 diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx index eda715639fd7f9c773f7fde51f8bf48ea0277078..6e1623fc9943e846227b8e6a324af7d1aa40d343 100644 GIT binary patch delta 28227 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 delta 31481 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
NU&z9q$t%ok_FWZJYaAvM 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 diff --git a/src/Notes-master/.idea/sonarlint/issuestore/index.pb b/src/Notes-master/.idea/sonarlint/issuestore/index.pb new file mode 100644 index 0000000..e69de29 diff --git a/src/Notes-master/.idea/sonarlint/securityhotspotstore/index.pb b/src/Notes-master/.idea/sonarlint/securityhotspotstore/index.pb new file mode 100644 index 0000000..e69de29 diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/model/Note.java b/src/Notes-master/app/src/main/java/net/micode/notes/model/Note.java index 7f95be2..704054c 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/model/Note.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/model/Note.java @@ -56,60 +56,62 @@ public class Note { values.put(NoteColumns.LOCAL_MODIFIED, 1);//把LOCAL_MODIFIED 本地修改 的值赋为1 values.put(NoteColumns.PARENT_ID, folderId);//把文件夹id赋给PARENT_ID 父类id Uri uri = context.getContentResolver().insert(Notes.CONTENT_NOTE_URI, values); + //getContentResolver()函数是实现外部应用对于ContentProvider中的数据进行增删查改的操作 - long noteId = 0; + long noteId = 0;//用于标记错误信息 try { noteId = Long.valueOf(uri.getPathSegments().get(1)); } catch (NumberFormatException e) { Log.e(TAG, "Get note id error :" + e.toString()); noteId = 0; - } + }//异常处理 + if (noteId == -1) { throw new IllegalStateException("Wrong note id:" + noteId); - } + } // 如果发生错误,输出错误ID return noteId; } public Note() { - mNoteDiffValues = new ContentValues(); - mNoteData = new NoteData(); + mNoteDiffValues = new ContentValues(); //定义一个新变量,存储便签属性 + mNoteData = new NoteData();//定义一个新变量,存出便签内容 } public void setNoteValue(String key, String value) { - mNoteDiffValues.put(key, value); - mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); - mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + mNoteDiffValues.put(key, value); //设置便签属性传入ket和value + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); //设置新创建的便签更改次数为1 + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); //设置新创建的更改日期为系统当前时间 } public void setTextData(String key, String value) { - mNoteData.setTextData(key, value); + mNoteData.setTextData(key, value); //设置便签的内容和数据 } public void setTextDataId(long id) { - mNoteData.setTextDataId(id); + mNoteData.setTextDataId(id); //设置便签数据的ID } public long getTextDataId() { - return mNoteData.mTextDataId; + return mNoteData.mTextDataId; //获取便签数据的ID } public void setCallDataId(long id) { - mNoteData.setCallDataId(id); + mNoteData.setCallDataId(id); //设置电话的数据的ID } public void setCallData(String key, String value) { - mNoteData.setCallData(key, value); + mNoteData.setCallData(key, value); //设置电话的内容和数据 } public boolean isLocalModified() { - return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified(); - } + return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified(); // + }//判断是否为本地产生的修改 public boolean syncNote(Context context, long noteId) { if (noteId <= 0) { throw new IllegalArgumentException("Wrong note id:" + noteId); - } + } //报告错误信息 if (!isLocalModified()) { return true; @@ -120,6 +122,13 @@ public class Note { * {@link NoteColumns#MODIFIED_DATE}. For data safety, though update note fails, we also update the * note data info */ + + /* + 理论上,一旦数据发生变化,应在{@link NoteColumns#LOCAL_MODIFIED}和 + {@link NotesColumns#MODIFIED_DATE}上更新注释。为了数据安全, + 虽然更新笔记失败,但我们也会更新笔记数据信息 + */ + if (context.getContentResolver().update( ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), mNoteDiffValues, null, null) == 0) { @@ -134,16 +143,16 @@ public class Note { } return true; - } + }//用于判断便签是否正确同步 private class NoteData { - private long mTextDataId; + private long mTextDataId; //定义便签数据的文件数据ID - private ContentValues mTextDataValues; + private ContentValues mTextDataValues; //定义文件数据 - private long mCallDataId; + private long mCallDataId;//定义便签电话ID - private ContentValues mCallDataValues; + private ContentValues mCallDataValues;//定义便签电话数据 private static final String TAG = "NoteData"; @@ -152,57 +161,62 @@ public class Note { mCallDataValues = new ContentValues(); mTextDataId = 0; mCallDataId = 0; - } + } //构造函数,定义文件数据ID和电话数据ID为0,创建便签电话数据和文件数据类 boolean isLocalModified() { return mTextDataValues.size() > 0 || mCallDataValues.size() > 0; - } + }//判断是否被本地修改,返回是否修改文本数据或者电话数据 void setTextDataId(long id) { if (id <= 0) { throw new IllegalArgumentException("Text data id should larger than 0"); - } - mTextDataId = id; + } //为文本数据ID的定义提供错误判断 + mTextDataId = id; //设置文本数据ID } void setCallDataId(long id) { if (id <= 0) { throw new IllegalArgumentException("Call data id should larger than 0"); - } - mCallDataId = id; + }//为电话数据ID的定义提供错误判断 + mCallDataId = id;//设置电话数据ID } void setCallData(String key, String value) { - mCallDataValues.put(key, value); - mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); - mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + mCallDataValues.put(key, value); //设置电话数据的数据和内容 + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); //设置电话数据的本地修改为1 + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); //设置修改时间为本地时间 } void setTextData(String key, String value) { - mTextDataValues.put(key, value); - mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); - mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + mTextDataValues.put(key, value); //设置文本数据 + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1);//设置文本数据的本地修改为1 + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis());//设置修改时间为本地时间 } Uri pushIntoContentResolver(Context context, long noteId) { + + /* + *下面函数的作用是将新的数据通过Uri的操作存储到数据库 + */ + /** * Check for safety */ if (noteId <= 0) { throw new IllegalArgumentException("Wrong note id:" + noteId); - } + }//显示错误代码 - ArrayList operationList = new ArrayList(); - ContentProviderOperation.Builder builder = null; + ArrayList operationList = new ArrayList(); //定义一个新的可变数组 + ContentProviderOperation.Builder builder = null; //数据库的操作列表设置为空 - if (mTextDataValues.size() > 0) { - mTextDataValues.put(DataColumns.NOTE_ID, noteId); + if (mTextDataValues.size() > 0) { //如果文本数据的值不为0 + mTextDataValues.put(DataColumns.NOTE_ID, noteId); //存入note数据ID if (mTextDataId == 0) { mTextDataValues.put(DataColumns.MIME_TYPE, TextNote.CONTENT_ITEM_TYPE); Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, mTextDataValues); try { - setTextDataId(Long.valueOf(uri.getPathSegments().get(1))); + setTextDataId(Long.valueOf(uri.getPathSegments().get(1))); } catch (NumberFormatException e) { Log.e(TAG, "Insert new text data fail with noteId" + noteId); @@ -217,7 +231,7 @@ public class Note { operationList.add(builder.build()); } mTextDataValues.clear(); - } + }//把文本数据存入到DataColumns if (mCallDataValues.size() > 0) { mCallDataValues.put(DataColumns.NOTE_ID, noteId); @@ -241,7 +255,7 @@ public class Note { operationList.add(builder.build()); } mCallDataValues.clear(); - } + }//把电话数据存入到DataColumns if (operationList.size() > 0) { try { @@ -260,6 +274,6 @@ public class Note { } } return null; - } + }//存储过程中对于异常情况的处理 } }