diff --git a/Notes.java b/Notes.java new file mode 100644 index 0000000..323bbbe --- /dev/null +++ b/Notes.java @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * 版权声明,说明本代码是由MiCode开源社区提供并遵循Apache 2.0许可证。 + */ + +package net.micode.notes.data; // 包声明,表示该类属于net.micode.notes.data包 + +import android.net.Uri; // 导入Uri类,用于处理URI + +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; // 系统类型 + + /** + * 以下是系统文件夹的标识符 + * ID_ROOT_FOLDER 是默认文件夹 + * ID_TEMPARAY_FOLDER 用于存储没有归类的笔记 + * ID_CALL_RECORD_FOLDER 用于存储通话记录 + */ + 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"; + 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 class DataConstants { + public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; // 文本笔记类型 + public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; // 通话记录类型 + } + + // 查询所有笔记和文件夹的URI + public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note"); + + // 查询数据的URI + public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data"); + + public interface NoteColumns { + /** + * 定义笔记和文件夹的数据库列 + * 每个字段后面有说明其数据类型 + */ + + public static final String ID = "_id"; // 唯一ID + public static final String PARENT_ID = "parent_id"; // 父级ID + public static final String CREATED_DATE = "created_date"; // 创建日期 + public static final String MODIFIED_DATE = "modified_date"; // 修改日期 + public static final String ALERTED_DATE = "alert_date"; // 提醒日期 + public static final String SNIPPET = "snippet"; // 文件夹名或笔记内容 + public static final String WIDGET_ID = "widget_id"; // 小部件ID + public static final String WIDGET_TYPE = "widget_type"; // 小部件类型 + public static final String BG_COLOR_ID = "bg_color_id"; // 背景颜色ID + public static final String HAS_ATTACHMENT = "has_attachment"; // 是否有附件 + public static final String NOTES_COUNT = "notes_count"; // 文件夹内笔记数量 + public static final String TYPE = "type"; // 类型:笔记或文件夹 + public static final String SYNC_ID = "sync_id"; // 同步ID + public static final String LOCAL_MODIFIED = "local_modified"; // 本地修改标志 + public static final String ORIGIN_PARENT_ID = "origin_parent_id"; // 原始父级ID + public static final String GTASK_ID = "gtask_id"; // GTask ID + public static final String VERSION = "version"; // 版本 + } + + public interface DataColumns { + /** + * 定义数据表的列,主要用于存储附件或其他类型的数据 + */ + public static final String ID = "_id"; // 唯一ID + public static final String MIME_TYPE = "mime_type"; // 数据的MIME类型 + public static final String NOTE_ID = "note_id"; // 对应笔记的ID + public static final String CREATED_DATE = "created_date"; // 创建日期 + public static final String MODIFIED_DATE = "modified_date"; // 修改日期 + public static final String CONTENT = "content"; // 数据内容 + public static final String DATA1 = "data1"; + public static final String DATA2 = "data2"; + public static final String DATA3 = "data3"; + public static final String DATA4 = "data4"; + public static final String DATA5 = "data5"; } + + // 文本笔记的实现 + public static final class TextNote implements DataColumns { + public static final String MODE = DATA1; // 标记是否为待办事项 + public static final int MODE_CHECK_LIST = 1; // 待办事项模式 + + public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note"; // 文本笔记内容类型 + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note"; // 单项文本笔记内容类型 + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note"); // 文本笔记的URI + } + + // 通话记录笔记的实现 + public static final class CallNote implements DataColumns { + public static final String CALL_DATE = DATA1; // 通话日期 + public static final String PHONE_NUMBER = DATA3; // 电话号码 + + public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note"; // 通话记录内容类型 + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note"; // 单项通话记录内容类型 + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note"); // 通话记录的URI + } +}