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

212 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.

/*
* 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;
// 导入Android Uri类用于构建ContentProvider的URI
import android.net.Uri;
/**
* 定义笔记应用的核心数据模型类
* 包含数据库表结构定义、ContentProvider URI、类型常量等全局配置
*/
public class Notes {
// ContentProvider的授权标识对应AndroidManifest.xml中配置的authorities
public static final String AUTHORITY = "micode_notes";
// 日志标签用于在Logcat中标识日志来源
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; // 系统文件夹类型
/**
* 系统文件夹的标识符常量:
* {@link Notes#ID_ROOT_FOLDER } 根文件夹(默认文件夹)
* {@link Notes#ID_TEMPARAY_FOLDER } 临时文件夹(存放未分类笔记)
* {@link Notes#ID_CALL_RECORD_FOLDER} 通话记录文件夹
* 注意ID_TRASH_FOLER可能存在拼写错误应为ID_TRASH_FOLDER
*/
public static final int ID_ROOT_FOLDER = 0; // 根文件夹ID
public static final int ID_TEMPARAY_FOLDER = -1; // 临时文件夹ID拼写错误TEMPARAY应为TEMPORARY
public static final int ID_CALL_RECORD_FOLDER = -2; // 通话记录文件夹ID
public static final int ID_TRASH_FOLER = -3; // 回收站文件夹ID拼写错误FOLER应为FOLDER
// 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"; // 背景色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尺寸小部件
/**
* 数据项类型常量内部类
* 定义不同笔记类型的MIME类型
*/
public static class DataConstants {
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; // 文本笔记类型
public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE;// 通话笔记类型
}
/**
* ContentProvider URI定义
*/
// 查询所有笔记和文件夹的URIcontent://micode_notes/note
public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note");
// 查询所有数据项的URIcontent://micode_notes/data
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";
/** 创建时间Unix时间戳长整型 */
public static final String CREATED_DATE = "created_date";
/** 最后修改时间Unix时间戳长整型 */
public static final String MODIFIED_DATE = "modified_date";
/** 提醒时间Unix时间戳长整型 */
public static final String ALERTED_DATE = "alert_date";
/** 内容摘要(文件夹名称或笔记前几句文本) */
public static final String SNIPPET = "snippet";
/** 关联的桌面小部件ID长整型 */
public static final String WIDGET_ID = "widget_id";
/** 小部件类型0:2x,1:4x长整型 */
public static final String WIDGET_TYPE = "widget_type";
/** 背景颜色ID长整型 */
public static final String BG_COLOR_ID = "bg_color_id";
/** 是否有附件0/1整型 */
public static final String HAS_ATTACHMENT = "has_attachment";
/** 包含的笔记数量(仅文件夹有效,长整型) */
public static final String NOTES_COUNT = "notes_count";
/** 条目类型0笔记/1文件夹/2系统整型 */
public static final String TYPE = "type";
/** 同步ID用于云端同步长整型 */
public static final String SYNC_ID = "sync_id";
/** 本地修改标记0未修改/1已修改整型 */
public static final String LOCAL_MODIFIED = "local_modified";
/** 移动前的原始父ID用于临时文件夹操作整型 */
public static final String ORIGIN_PARENT_ID = "origin_parent_id";
/** Google Task ID同步相关文本 */
public static final String GTASK_ID = "gtask_id";
/** 数据版本号(长整型) */
public static final String VERSION = "version";
}
/**
* 数据表列名接口定义
* 存储笔记的具体内容数据
*/
public interface DataColumns {
/** 唯一标识符(长整型) */
public static final String ID = "_id";
/** MIME类型决定数据项类型如text_note/call_note */
public static final String MIME_TYPE = "mime_type";
/** 关联的笔记ID外键长整型 */
public static final String NOTE_ID = "note_id";
/** 创建时间Unix时间戳长整型 */
public static final String CREATED_DATE = "created_date";
/** 最后修改时间Unix时间戳长整型 */
public static final String MODIFIED_DATE = "modified_date";
/** 主要内容(文本笔记的完整内容) */
public static final String CONTENT = "content";
// 通用数据列根据MIME_TYPE不同用途不同
/** 通用整型数据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 {
/** 列表模式标识DATA1列1=清单模式0=普通模式) */
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"; // 单条目类型
// 文本笔记的ContentProvider URIcontent://micode_notes/text_note
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");
}
/**
* 通话记录笔记数据定义继承DataColumns
*/
public static final class CallNote implements DataColumns {
/** 通话日期使用DATA1列存储Unix时间戳 */
public static final String CALL_DATE = DATA1;
/** 电话号码使用DATA3列存储 */
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"; // 单条目类型
// 通话笔记的ContentProvider URIcontent://micode_notes/call_note
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");
}
}