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.
1231233/src/data/Notes.java

281 lines
9.1 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.

package net.micode.notes.data;
import android.net.Uri;
/**
* 该类为笔记内容提供者定义了常量,包括:
* - 笔记类型和文件夹ID
* - Intent额外数据和小部件类型
* - 笔记和数据的数据库列定义
*/
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
public static final int ID_ROOT_FOLDER = 0; // 根文件夹ID
public static final int ID_TEMPARAY_FOLDER = -1; // 临时文件夹ID
public static final int ID_CALL_RECORD_FOLDER = -2; // 通话记录文件夹ID
public static final int ID_TRASH_FOLER = -3; // 回收站文件夹ID
// Intent额外数据键名用于在Activity之间传递数据
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; // 2x尺寸小部件
public static final int TYPE_WIDGET_4X = 1; // 4x尺寸小部件
/**
* 包含数据类型的常量
*/
public static class DataConstants {
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; // 文本笔记MIME类型
public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; // 通话笔记MIME类型
}
/**
* 用于查询所有笔记和文件夹的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");
/**
* 'note'表的列定义
*/
public interface NoteColumns {
/**
* 行的唯一ID
* <P> 类型: INTEGER (long) </P>
*/
public static final String ID = "_id";
/**
* 笔记或文件夹的父级ID
* <P> 类型: INTEGER (long) </P>
*/
public static final String PARENT_ID = "parent_id";
/**
* 笔记或文件夹的创建日期(时间戳)
* <P> 类型: INTEGER (long) </P>
*/
public static final String CREATED_DATE = "created_date";
/**
* 最新修改日期(时间戳)
* <P> 类型: INTEGER (long) </P>
*/
public static final String MODIFIED_DATE = "modified_date";
/**
* 提醒/闹钟日期(时间戳)
* <P> 类型: INTEGER (long) </P>
*/
public static final String ALERTED_DATE = "alert_date";
/**
* 文件夹名称或笔记的文本内容(预览/摘要)
* <P> 类型: TEXT </P>
*/
public static final String SNIPPET = "snippet";
/**
* 笔记的小部件ID
* <P> 类型: INTEGER (long) </P>
*/
public static final String WIDGET_ID = "widget_id";
/**
* 笔记的小部件类型
* <P> 类型: INTEGER (long) </P>
*/
public static final String WIDGET_TYPE = "widget_type";
/**
* 笔记的背景颜色ID
* <P> 类型: INTEGER (long) </P>
*/
public static final String BG_COLOR_ID = "bg_color_id";
/**
* 标志指示笔记是否有附件
* 对于文本笔记,没有附件;对于多媒体笔记,至少有一个附件
* <P> 类型: INTEGER </P>
*/
public static final String HAS_ATTACHMENT = "has_attachment";
/**
* 文件夹中笔记的数量(仅对文件夹相关)
* <P> 类型: INTEGER (long) </P>
*/
public static final String NOTES_COUNT = "notes_count";
/**
* 项目类型:文件夹或笔记
* <P> 类型: INTEGER </P>
*/
public static final String TYPE = "type";
/**
* 最后同步ID(用于同步目的)
* <P> 类型: INTEGER (long) </P>
*/
public static final String SYNC_ID = "sync_id";
/**
* 标志指示是否本地修改
* <P> 类型: INTEGER </P>
*/
public static final String LOCAL_MODIFIED = "local_modified";
/**
* 移动到临时文件夹之前的原始父级ID
* <P> 类型 : INTEGER </P>
*/
public static final String ORIGIN_PARENT_ID = "origin_parent_id";
/**
* Google任务ID(用于Google任务集成)
* <P> 类型 : TEXT </P>
*/
public static final String GTASK_ID = "gtask_id";
/**
* 版本代码(用于数据版本控制)
* <P> 类型 : INTEGER (long) </P>
*/
public static final String VERSION = "version";
}
/**
* 'data'表的列定义(包含笔记内容和元数据)
*/
public interface DataColumns {
/**
* 行的唯一ID
* <P> 类型: INTEGER (long) </P>
*/
public static final String ID = "_id";
/**
* 此行表示的项目的MIME类型
* <P> 类型: Text </P>
*/
public static final String MIME_TYPE = "mime_type";
/**
* 此数据所属笔记的引用ID
* <P> 类型: INTEGER (long) </P>
*/
public static final String NOTE_ID = "note_id";
/**
* 数据项的创建日期(时间戳)
* <P> 类型: INTEGER (long) </P>
*/
public static final String CREATED_DATE = "created_date";
/**
* 最新修改日期(时间戳)
* <P> 类型: INTEGER (long) </P>
*/
public static final String MODIFIED_DATE = "modified_date";
/**
* 数据内容(实际笔记内容)
* <P> 类型: TEXT </P>
*/
public static final String CONTENT = "content";
/**
* 通用数据列,含义由{@link #MIME_TYPE}指定,用于整数数据类型
* <P> 类型: INTEGER </P>
*/
public static final String DATA1 = "data1";
/**
* 通用数据列,含义由{@link #MIME_TYPE}指定,用于整数数据类型
* <P> 类型: INTEGER </P>
*/
public static final String DATA2 = "data2";
/**
* 通用数据列,含义由{@link #MIME_TYPE}指定,用于文本数据类型
* <P> 类型: TEXT </P>
*/
public static final String DATA3 = "data3";
/**
* 通用数据列,含义由{@link #MIME_TYPE}指定,用于文本数据类型
* <P> 类型: TEXT </P>
*/
public static final String DATA4 = "data4";
/**
* 通用数据列,含义由{@link #MIME_TYPE}指定,用于文本数据类型
* <P> 类型: TEXT </P>
*/
public static final String DATA5 = "data5";
}
/**
* 文本笔记特定的常量
*/
public static final class TextNote implements DataColumns {
/**
* 模式指示文本是否处于复选框列表模式
* <P> 类型: Integer 1:复选框列表模式 0:普通模式 </P>
*/
public static final String MODE = DATA1;
public static final int MODE_CHECK_LIST = 1; // 复选框列表模式
// 文本笔记的MIME类型
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";
// 文本笔记的内容URI
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");
}
/**
* 通话笔记特定的常量
*/
public static final class CallNote implements DataColumns {
/**
* 此记录的通话日期(时间戳)
* <P> 类型: INTEGER (long) </P>
*/
public static final String CALL_DATE = DATA1;
/**
* 此记录的电话号码
* <P> 类型: TEXT </P>
*/
public static final String PHONE_NUMBER = DATA3;
// 通话笔记的MIME类型
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";
// 通话笔记的内容URI
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");
}
}