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.
qw1-notes/java/net/micode/notes/data/Notes.java

206 lines
8.3 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;
/**
* 笔记应用的数据模型核心类
* 定义了笔记、文件夹的数据结构、类型常量及内容提供者URI
* 提供与数据库表结构对应的列定义和数据交互接口
*/
public class Notes {
// 内容提供者的权限标识用于Android组件间数据共享
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
* ID_ROOT_FOLDER默认根文件夹
* ID_TEMPARAY_FOLDER临时文件夹不属于任何文件夹的笔记
* ID_CALL_RECORD_FOLDER通话记录专用文件夹
* ID_TRASH_FOLER回收站文件夹
*/
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;
// 意图传递的额外数据键名用于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"; // 背景颜色ID
public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id"; // 小部件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"; // 文件夹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; // 文本笔记类型
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");
/**
* 笔记表结构列定义接口
* 对应数据库中note表的字段定义
*/
public interface NoteColumns {
/** 记录唯一ID */
public static final String ID = "_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";
/** 桌面小部件类型2x或4x */
public static final String WIDGET_TYPE = "widget_type";
/** 笔记背景颜色ID */
public static final String BG_COLOR_ID = "bg_color_id";
/** 是否包含附件1表示有附件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";
/** 本地修改标记1表示已修改0表示未修改 */
public static final String LOCAL_MODIFIED = "local_modified";
/** Google Tasks任务ID用于与Google Tasks同步 */
public static final String GTASK_ID = "gtask_id";
/** 版本号(用于并发更新控制) */
public static final String VERSION = "version";
}
/**
* 笔记内容表结构列定义接口
* 对应数据库中data表的字段定义存储笔记具体内容
*/
public interface DataColumns {
/** 记录唯一ID */
public static final String ID = "_id";
/** 数据MIME类型标识笔记内容格式 */
public static final String MIME_TYPE = "mime_type";
/** 所属笔记ID关联到note表的ID */
public static final String NOTE_ID = "note_id";
/** 创建日期(时间戳) */
public static final String CREATED_DATE = "created_date";
/** 最后修改日期(时间戳) */
public static final String MODIFIED_DATE = "modified_date";
/** 数据内容(文本笔记的正文或其他类型数据) */
public static final String CONTENT = "content";
/** 扩展数据字段1 */
public static final String DATA1 = "data1";
/** 扩展数据字段2 */
public static final String DATA2 = "data2";
/** 扩展数据字段3 */
public static final String DATA3 = "data3";
/** 扩展数据字段4 */
public static final String DATA4 = "data4";
/** 扩展数据字段5 */
public static final String DATA5 = "data5";
}
/**
* 文本笔记数据类
* 继承DataColumns接口定义文本笔记特有的字段
*/
public static final class TextNote implements DataColumns {
/** 笔记模式1表示清单模式0表示普通模式 */
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";
/** 内容URI用于访问文本笔记数据 */
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");
}
/**
* 通话记录笔记数据类
* 继承DataColumns接口定义通话记录特有的字段
*/
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";
/** 内容URI用于访问通话记录数据 */
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");
}
}