From 256c40451afdfcf0ae3db5006f1a1fa0053cfe0d Mon Sep 17 00:00:00 2001 From: qijingxi <2904615854@qq.com> Date: Thu, 9 Jan 2025 08:40:34 +0800 Subject: [PATCH] qijingxi --- src/java/net/micode/notes/data/Notes.java | 69 +++++++++++++++++++ .../notes/data/NotesDatabaseHelper.java | 21 ++++++ .../net/micode/notes/data/NotesProvider.java | 60 ++++++++++++++-- 3 files changed, 144 insertions(+), 6 deletions(-) diff --git a/src/java/net/micode/notes/data/Notes.java b/src/java/net/micode/notes/data/Notes.java index b7c39dc..7079d8f 100644 --- a/src/java/net/micode/notes/data/Notes.java +++ b/src/java/net/micode/notes/data/Notes.java @@ -26,6 +26,17 @@ * @Author: 齐景熙 * @Date: 2024-12-21 19:42 */ + + +/* + 主要成员变量和常量: +AUTHORITY:定义了内容提供者的权威名称,用于构建 URI。 +TAG:用于日志记录的标签。 +TYPE_NOTE、TYPE_FOLDER、TYPE_SYSTEM:定义了笔记的类型枚举,分别表示普通笔记、文件夹和系统文件夹。 +ID_ROOT_FOLDER、ID_TEMPARAY_FOLDER、ID_CALL_RECORD_FOLDER、ID_TRASH_FOLER:定义了系统文件夹的标识符,分别表示根文件夹、临时文件夹、通话记录文件夹和回收站文件夹。 +INTENT_EXTRA_ALERT_DATE、INTENT_EXTRA_BACKGROUND_ID 等:定义了 Intent 额外数据的键,用于在 Intent 中传递相关数据。 +TYPE_WIDGET_INVALIDE、TYPE_WIDGET_2X、TYPE_WIDGET_4X:定义了小部件的类型枚举。 + */ package net.micode.notes.data; import android.net.Uri; @@ -65,6 +76,12 @@ public class Notes { * @date: 2024-12-21 20:02 * @author: 齐景熙 */ + + /* + 主要成员变量和常量: + NOTE:表示文本笔记的 MIME 类型。 + CALL_NOTE:表示通话记录笔记的 MIME 类型。 + */ public static class DataConstants { public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; @@ -90,6 +107,28 @@ public class Notes { * @date: 2024-12-21 20:04 * @author: 齐景熙 */ + + /* + 要成员变量和常量: + ID:笔记的唯一 ID。 + PARENT_ID:笔记或文件夹的父 ID。 + CREATED_DATE:笔记或文件夹的创建日期。 + MODIFIED_DATE:笔记或文件夹的最新修改日期。 + ALERTED_DATE:提醒日期。 + SNIPPET:文件夹的名称或笔记的文本内容。 + WIDGET_ID:笔记的小部件 ID。 + WIDGET_TYPE:笔记的小部件类型。 + BG_COLOR_ID:笔记的背景颜色 ID。 + HAS_ATTACHMENT:笔记是否有附件。 + NOTES_COUNT:文件夹的笔记数量。 + TYPE:文件类型(文件夹或笔记)。 + SYNC_ID:最后同步 ID。 + LOCAL_MODIFIED:本地修改标志。 + ORIGIN_PARENT_ID:移动到临时文件夹之前的原始父 ID。 + GTASK_ID:GTask ID。 + VERSION:版本号。 + TOP:置顶状态。 + */ public interface NoteColumns { /** * The unique ID for a row @@ -211,6 +250,17 @@ public class Notes { * @date: 2024-12-21 20:05 * @author: 齐景熙 */ + + /* + 主要成员变量和常量: +ID:数据的唯一 ID。 +MIME_TYPE:数据项的 MIME 类型。 +NOTE_ID:数据所属笔记的 ID。 +CREATED_DATE:数据的创建日期。 +MODIFIED_DATE:数据的最新修改日期。 +CONTENT:数据的内容。 +DATA1、DATA2、DATA3、DATA4、DATA5:通用数据列,具体含义取决于 MIME 类型。 + */ public interface DataColumns { /** * The unique ID for a row @@ -293,6 +343,15 @@ public class Notes { * @date: 2024-12-21 20:07 * @author: 齐景熙 */ + + /* +主要成员变量和常量: +MODE:文本笔记的模式,使用 DATA1 列来表示。 +MODE_CHECK_LIST:表示清单模式的值。 +CONTENT_TYPE:文本笔记的 MIME 类型,用于目录。 +CONTENT_ITEM_TYPE:文本笔记的 MIME 类型,用于单个项。 +CONTENT_URI:文本笔记的 URI,用于查询文本笔记数据。 + */ public static final class TextNote implements DataColumns { /** * Mode to indicate the text in check list mode or not @@ -316,6 +375,16 @@ public class Notes { * @date: 2024-12-21 20:10 * @author: 齐景熙 */ + + + /* +主要成员变量和常量: +CALL_DATE:通话记录笔记的通话日期,使用 DATA1 列来表示。 +PHONE_NUMBER:通话记录笔记的电话号码,使用 DATA3 列来表示。 +CONTENT_TYPE:通话记录笔记的 MIME 类型,用于目录。 +CONTENT_ITEM_TYPE:通话记录笔记的 MIME 类型,用于单个项。 +CONTENT_URI:通话记录笔记的 URI,用于查询通话记录笔记数据。 + */ public static final class CallNote implements DataColumns { /** * Call date for this record diff --git a/src/java/net/micode/notes/data/NotesDatabaseHelper.java b/src/java/net/micode/notes/data/NotesDatabaseHelper.java index 4c52c4e..2f9b0a3 100644 --- a/src/java/net/micode/notes/data/NotesDatabaseHelper.java +++ b/src/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -26,6 +26,15 @@ * @Author: 齐景熙 * @Date: 2024-12-21 22:10 */ + +/*主要成员变量和常量: +DB_NAME:数据库的名称。 +DB_VERSION:数据库的版本号。 +TABLE:定义了数据库表名的接口。 +TAG:用于日志记录的标签。 +mInstance:用于实现单例模式的静态实例变量。 +CREATE_NOTE_TABLE_SQL、CREATE_DATA_TABLE_SQL 等:创建笔记表和数据表的 SQL 语句。 +NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER 等:定义了数据库触发器的 SQL 语句,用于在特定操作后自动更新数据。 */ package net.micode.notes.data; import android.content.ContentValues; @@ -227,6 +236,8 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { * @date: 2024-12-21 22:10 * @author: 齐景熙 */ + /*参数: +context:上下文对象,用于访问应用程序的资源和功能。 */ public NotesDatabaseHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @@ -238,6 +249,8 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { * @date: 2024-12-21 22:13 * @author: 齐景熙 */ + /*参数: +db:可写的数据库对象,用于执行 SQL 语句。 */ public void createNoteTable(SQLiteDatabase db) { db.execSQL(CREATE_NOTE_TABLE_SQL); reCreateNoteTableTriggers(db); @@ -253,6 +266,8 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { * @date: 2024-12-21 22:15 * @author: 齐景熙 */ + /*参数: +db:可写的数据库对象,用于执行 SQL 语句。 */ 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"); @@ -278,6 +293,8 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { * @date: 2024-12-21 22:20 * @author: 齐景熙 */ + /*参数: +db:可写的数据库对象,用于执行插入操作。 */ private void createSystemFolder(SQLiteDatabase db) { ContentValues values = new ContentValues(); @@ -377,6 +394,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { * @date: 2024-12-21 22:47 * @author: 齐景熙 */ + /*参数: +db:可写的数据库对象,用于执行升级操作。 +oldVersion:旧的数据库版本号。 +newVersion:新的数据库版本号。 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { boolean reCreateTriggers = false; diff --git a/src/java/net/micode/notes/data/NotesProvider.java b/src/java/net/micode/notes/data/NotesProvider.java index d26d815..17488ef 100644 --- a/src/java/net/micode/notes/data/NotesProvider.java +++ b/src/java/net/micode/notes/data/NotesProvider.java @@ -26,6 +26,12 @@ * @Author: 齐景熙 * @Date: 2024-12-21 23:10 */ + + /*主要成员变量和常量: +mMatcher:URI 匹配器,用于匹配不同的 URI。 +mHelper:数据库帮助者对象,用于访问数据库。 +TAG:用于日志记录的标签。 +URI_NOTE、URI_NOTE_ITEM 等:定义了不同 URI 的匹配码。 */ package net.micode.notes.data; @@ -52,8 +58,6 @@ import net.micode.notes.data.NotesDatabaseHelper.TABLE; * @date: 2024-12-21 23:12 * @author: 齐景熙 */ - - public class NotesProvider extends ContentProvider { private static final UriMatcher mMatcher; @@ -116,10 +120,20 @@ public class NotesProvider extends ContentProvider { /** * @method query - * @description 查询数据。根据匹配的 URI,执行不同的查询操作 + * @description 查询数据。根据匹配的 URI,执行不同的查询操作: + URI_NOTE:查询笔记表。 + URI_NOTE_ITEM:查询特定 ID 的笔记。 + URI_DATA:查询数据表。 + URI_DATA_ITEM:查询特定 ID 的数据。 + URI_SEARCH、URI_SEARCH_SUGGEST:执行搜索查询,根据搜索字符串查询笔记的摘要。 * @date: 2024-12-21 23:15 * @author: 齐景熙 */ +/*uri:要查询的 URI。 +projection:要查询的列。 +selection:查询条件。 +selectionArgs:查询条件参数。 +sortOrder:排序顺序。 */ @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { @@ -183,10 +197,16 @@ public class NotesProvider extends ContentProvider { } /** * @method insert - * @description 插入数据。根据匹配的 URI,执行不同的插入操作 + * @description 插入数据。根据匹配的 URI,执行不同的插入操作: + URI_NOTE:向笔记表插入笔记。 + URI_DATA:向数据表插入数据。 + 插入成功后,通知相关的 URI 发生变化。 * @date: 2024-12-21 23:17 * @author: 齐景熙 */ +/* 参数: +uri:要插入的 URI。 +values:要插入的数据。*/ @Override public Uri insert(Uri uri, ContentValues values) { SQLiteDatabase db = mHelper.getWritableDatabase(); @@ -223,10 +243,21 @@ public class NotesProvider extends ContentProvider { /** * @method delete - * @description 删除数据。根据匹配的 URI,执行不同的删除操作 + * @description 删除数据。根据匹配的 URI,执行不同的删除操作: + URI_NOTE:删除笔记表中的笔记。 + URI_NOTE_ITEM:删除特定 ID 的笔记。 + URI_DATA:删除数据表中的数据。 + URI_DATA_ITEM:删除特定 ID 的数据。 + 删除成功后,通知相关的 URI 发生变化。 * @date: 2024-12-21 23:20 * @author: 齐景熙 */ + +/*参数: +uri:要删除的 URI。 +selection:删除条件。 +selectionArgs:删除条件参数。 + */ @Override public int delete(Uri uri, String selection, String[] selectionArgs) { int count = 0; @@ -274,10 +305,20 @@ public class NotesProvider extends ContentProvider { } /** * @method update - * @description 更新数据。根据匹配的 URI,执行不同的更新操作 + * @description 更新数据。根据匹配的 URI,执行不同的更新操作: + URI_NOTE:更新笔记表中的笔记。 + URI_NOTE_ITEM:更新特定 ID 的笔记。 + URI_DATA:更新数据表中的数据。 + URI_DATA_ITEM:更新特定 ID 的数据。 + 更新成功后,通知相关的 URI 发生变化。 * @date: 2024-12-21 23:22 * @author: 齐景熙 */ +/*参数: +uri:要更新的 URI。 +values:更新的数据。 +selection:更新条件。 +selectionArgs:更新条件参数。 */ @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { int count = 0; @@ -323,6 +364,9 @@ public class NotesProvider extends ContentProvider { * @date: 2024-12-21 23:25 * @author: 齐景熙 */ + +/*参数: +selection:查询条件。 */ private String parseSelection(String selection) { return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : ""); } @@ -334,6 +378,10 @@ public class NotesProvider extends ContentProvider { * @date: 2024-12-21 23:27 * @author: 齐景熙 */ + /*参数: +id:笔记 ID。 +selection:更新条件。 +selectionArgs:更新条件参数。 */ private void increaseNoteVersion(long id, String selection, String[] selectionArgs) { StringBuilder sql = new StringBuilder(120); sql.append("UPDATE ");