You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xm_g/Notes.java

177 lines
13 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
* 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.net.Uri;
// Notes类用于定义与笔记相关的各种常量、接口以及一些内部类整体与笔记应用的数据结构等方面相关
public class Notes {
// 定义笔记应用的权限标识,用于内容提供器等相关操作中标识该应用的资源访问权限
public static final String AUTHORITY = "micode_notes";
// 用于日志等场景下标识该类的标签,方便调试等操作时识别相关输出
public static final String TAG = "Notes";
// 定义笔记类型的常量0表示普通笔记类型
public static final int TYPE_NOTE = 0;
// 定义文件夹类型的常量1表示文件夹类型
public static final int TYPE_FOLDER = 1;
// 定义系统相关类型的常量2表示系统类型
public static final int TYPE_SYSTEM = 2;
/**
* 以下的ID是系统文件夹的标识符
* {@link Notes#ID_ROOT_FOLDER } 是默认文件夹的ID
* {@link Notes#ID_TEMPARAY_FOLDER } 是用于归属无文件夹的笔记的ID
* {@link Notes#ID_CALL_RECORD_FOLDER} 是用于存储通话记录的文件夹的ID
*/
// 根文件夹的ID值为0通常作为默认的顶级文件夹标识
public static final int ID_ROOT_FOLDER = 0;
// 临时文件夹的ID值为 -1用于存放那些没有明确归属文件夹的笔记
public static final int ID_TEMPARAY_FOLDER = -1;
// 通话记录文件夹的ID值为 -2用于存放通话记录相关内容的文件夹标识
public static final int ID_CALL_RECORD_FOLDER = -2;
// 回收站文件夹的ID值为 -3用于存放被删除的笔记等内容的文件夹标识
public static final int ID_TRASH_FOLER = -3;
// 用于在Intent中传递提醒日期的额外信息的键
public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date";
// 用于在Intent中传递背景颜色ID的额外信息的键
public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id";
// 用于在Intent中传递小部件ID的额外信息的键
public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id";
// 用于在Intent中传递小部件类型的额外信息的键
public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type";
// 用于在Intent中传递文件夹ID的额外信息的键
public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id";
// 用于在Intent中传递通话日期的额外信息的键
public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date";
// 表示无效的小部件类型的常量,值为 -1
public static final int TYPE_WIDGET_INVALIDE = -1;
// 表示2x尺寸小部件类型的常量值为0
public static final int TYPE_WIDGET_2X = 0;
// 表示4x尺寸小部件类型的常量值为1
public static final int TYPE_WIDGET_4X = 1;
// DataConstants内部类用于定义一些数据相关的常量目前看起来主要涉及不同类型笔记的内容类型相关常量
public static class DataConstants {
// 文本笔记的内容类型对应具体的MIME类型相关值用于标识文本笔记这种数据项
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE;
// 通话笔记的内容类型对应具体的MIME类型相关值用于标识通话记录笔记这种数据项
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");
// NoteColumns接口定义了笔记相关的数据列名及其对应的数据类型用于在数据库等存储场景下表示笔记的各项属性
public interface NoteColumns {
// 表示行的唯一ID数据类型为长整型用于唯一标识每一条笔记或文件夹记录
public static final String ID = "_id";
// 表示笔记或文件夹的父级ID数据类型为长整型用于构建笔记的层级结构关系
public static final String PARENT_ID = "parent_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";
// 表示笔记的小部件ID数据类型为长整型可能用于关联笔记与对应的小部件实例
public static final String WIDGET_ID = "widget_id";
// 表示笔记的小部件类型,数据类型为长整型,区分不同尺寸等类型的小部件
public static final String WIDGET_TYPE = "widget_type";
// 表示笔记的背景颜色的ID数据类型为长整型用于设置笔记展示的背景颜色相关
public static final String BG_COLOR_ID = "bg_color_id";
// 对于文本笔记该字段表示是否有附件0表示没有对于多媒体笔记等大于0表示至少有一个附件数据类型为整型
public static final String HAS_ATTACHMENT = "has_attachment";
// 表示文件夹中包含的笔记数量,数据类型为长整型,方便统计文件夹下的笔记数量情况
public static final String NOTES_COUNT = "notes_count";
// 表示文件类型(是文件夹还是笔记),数据类型为整型,通过不同的值区分类型
public static final String TYPE = "type";
// 表示最后一次同步的ID数据类型为长整型用于数据同步相关操作中记录同步的标识
public static final String SYNC_ID = "sync_id";
// 表示是否本地修改的标识,数据类型为整型,用于判断数据在本地是否有更新情况
public static final String LOCAL_MODIFIED = "local_modified";
// 表示在移动到临时文件夹之前的原始父级ID数据类型为整型可能用于记录笔记的历史位置关系等
public static final String ORIGIN_PARENT_ID = "origin_parent_id";
// 表示与gtask相关的ID数据类型为文本类型可能用于和其他任务管理等相关功能对接的标识
public static final String GTASK_ID = "gtask_id";
// 表示版本代码,数据类型为长整型,可用于版本管理等相关操作中记录版本信息
public static final String VERSION = "version";
}
// DataColumns接口定义了数据相关的数据列名及其对应的数据类型用于描述笔记关联的数据内容等方面的属性
public interface DataColumns {
// 表示行的唯一ID数据类型为长整型用于唯一标识每一条数据记录
public static final String ID = "_id";
// 表示该项数据的MIME类型数据类型为文本类型用于标识数据的格式等信息
public static final String MIME_TYPE = "mime_type";
// 表示该数据所属笔记的参考ID数据类型为长整型用于建立数据与对应笔记的关联关系
public static final String NOTE_ID = "note_id";
// 表示笔记或文件夹的创建日期数据类型为长整型记录创建时间信息和NoteColumns中的CREATED_DATE作用类似可能在不同表结构中使用
public static final String CREATED_DATE = "created_date";
// 表示笔记或文件夹的最近修改日期数据类型为长整型方便跟踪记录的更新情况和NoteColumns中的MODIFIED_DATE作用类似可能在不同表结构中使用
public static final String MODIFIED_DATE = "modified_date";
// 表示数据的具体内容,数据类型为文本类型,存储实际的数据文本信息
public static final String CONTENT = "content";
// 通用数据列其含义根据具体的MIME类型而定用于整型数据类型可灵活存储不同业务含义的整型数据
public static final String DATA1 = "data1";
// 通用数据列其含义根据具体的MIME类型而定用于整型数据类型和DATA1类似可存储整型数据
public static final String DATA2 = "data2";
// 通用数据列其含义根据具体的MIME类型而定用于文本数据类型可存储不同业务含义的文本数据
public static final String DATA3 = "data3";
// 通用数据列其含义根据具体的MIME类型而定用于文本数据类型和DATA3类似可存储文本数据
public static final String DATA4 = "data4";
// 通用数据列其含义根据具体的MIME类型而定用于文本数据类型同样可存储文本数据
public static final String DATA5 = "data5";
}
// TextNote内部类继承自DataColumns接口主要针对文本笔记相关的数据结构和属性进行定义包含一些特定的字段和常量
public static final class TextNote implements DataColumns {
// 表示文本笔记是否处于清单模式的字段1表示处于清单模式0表示正常模式数据类型为整型
public static final String MODE = DATA1;
// 定义表示清单模式的常量值为1方便代码中判断文本笔记是否处于清单模式
public static final int MODE_CHECK_LIST = 1;
// 文本笔记的内容类型目录形式用于标识一组文本笔记的MIME类型例如在内容提供器返回结果集等场景下使用
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note";
// 文本笔记的内容类型单项形式用于标识单个文本笔记的MIME类型例如在获取具体一条文本笔记数据时使用
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note";
// 用于查询文本笔记的Uri通过应用权限标识构建可用于内容提供器查询文本笔记相关数据
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");
}
// CallNote内部类继承自DataColumns接口主要针对通话笔记相关的数据结构和属性进行定义包含通话日期、电话号码等特定字段和常量
public static final class CallNote implements DataColumns {
// 表示通话记录的通话日期字段,数据类型为长整型,用于记录通话发生的时间
public static final String CALL_DATE = DATA1;
// 表示通话记录的电话号码字段,数据类型为文本类型,用于记录通话的对方号码等信息
public static final String PHONE_NUMBER = DATA3;
// 通话笔记的内容类型目录形式用于标识一组通话笔记的MIME类型例如在内容提供器返回结果集等场景下使用
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note";
// 通话笔记的内容类型单项形式用于标识单个通话笔记的MIME类型例如在获取具体一条通话笔记数据时使用
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note";
// 用于查询通话笔记的Uri通过应用权限标识构建可用于内容提供器查询通话笔记相关数据
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");
}
}