|
|
|
|
@ -0,0 +1,261 @@
|
|
|
|
|
/*
|
|
|
|
|
* 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类用于定义与笔记(Notes)相关的各种常量、接口以及内部类,可能用于管理笔记应用中的数据结构、数据库操作等功能
|
|
|
|
|
public class Notes {
|
|
|
|
|
|
|
|
|
|
// 定义笔记应用的授权(Authority)名称,用于在内容提供器(Content Provider)相关操作中标识该应用的数据源
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 以下是系统文件夹的标识符(IDs),用于唯一标识不同功能的系统文件夹。
|
|
|
|
|
* {@link Notes#ID_ROOT_FOLDER } 是默认文件夹的标识符,通常作为笔记的根目录等用途。
|
|
|
|
|
* {@link Notes#ID_TEMPARAY_FOLDER } 用于存放那些不属于任何文件夹的笔记,可能是临时存放等情况。
|
|
|
|
|
* {@link Notes#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的键(Key),在不同的Activity或组件间传递特定数据时使用,例如传递提醒日期、背景颜色ID等信息
|
|
|
|
|
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";
|
|
|
|
|
|
|
|
|
|
// 定义不同类型的桌面小部件(Widget)的类型码,用于区分不同规格或样式的小部件,方便进行相应的布局和功能处理
|
|
|
|
|
public static final int TYPE_WIDGET_INVALIDE = -1;
|
|
|
|
|
public static final int TYPE_WIDGET_2X = 0;
|
|
|
|
|
public static final int TYPE_WIDGET_4X = 1;
|
|
|
|
|
|
|
|
|
|
// DataConstants内部类,用于定义笔记相关的数据类型常量,目前看起来主要涉及文本笔记(TextNote)和通话记录笔记(CallNote)的内容类型
|
|
|
|
|
public static class DataConstants {
|
|
|
|
|
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE;
|
|
|
|
|
public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 用于查询所有笔记和文件夹的统一资源标识符(Uri),通过这个Uri可以使用内容提供器(Content Provider)来获取相应的数据,
|
|
|
|
|
* 其格式遵循 Android 中 content:// 协议的规范,后面跟应用的授权名称和具体的路径(这里是 /note)。
|
|
|
|
|
*/
|
|
|
|
|
public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note");
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 用于查询数据的统一资源标识符(Uri),同样基于 content:// 协议,用于获取更通用的数据,具体用途可能由使用该Uri的代码逻辑决定。
|
|
|
|
|
*/
|
|
|
|
|
public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");
|
|
|
|
|
|
|
|
|
|
// NoteColumns接口,定义了笔记相关的各个列(Column)名称及其对应的数据类型,这些列可能用于数据库表结构中存储笔记的各种属性信息
|
|
|
|
|
public interface NoteColumns {
|
|
|
|
|
/**
|
|
|
|
|
* 笔记或文件夹的唯一标识符(ID),在数据库表中用于唯一区分每一条记录,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String ID = "_id";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 笔记或文件夹的父级ID,用于构建笔记的层级结构,比如文件夹下包含子笔记等情况,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String PARENT_ID = "parent_id";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 笔记或文件夹的创建日期,用于记录创建时间信息,方便后续按时间排序、筛选等操作,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String CREATED_DATE = "created_date";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 笔记或文件夹的最后修改日期,用于跟踪记录的更新情况,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String MODIFIED_DATE = "modified_date";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 提醒日期,可能用于设置笔记提醒功能相关的时间,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String ALERTED_DATE = "alert_date";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 对于文件夹来说是文件夹的名称,对于笔记来说是文本内容的摘要等信息,类型为文本(TEXT)类型,方便展示和快速查看关键内容。
|
|
|
|
|
*/
|
|
|
|
|
public static final String SNIPPET = "snippet";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 笔记对应的桌面小部件(Widget)的ID,用于关联笔记和特定的小部件,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String WIDGET_ID = "widget_id";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 笔记对应的桌面小部件(Widget)的类型,用于区分不同样式或功能的小部件,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String WIDGET_TYPE = "widget_id";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 笔记的背景颜色的ID,用于个性化笔记的显示外观,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String BG_COLOR_ID = "bg_color_id";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 用于表示笔记是否有附件,对于文本笔记通常没有附件则为 0,对于多媒体等有附件的笔记则为 1,类型为整型(INTEGER)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String HAS_ATTACHMENT = "has_attachment";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 文件夹中包含的笔记数量,方便统计和展示文件夹的相关信息,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String NOTES_COUNT = "notes_count";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 文件类型,用于区分是文件夹还是笔记,类型为整型(INTEGER),可能对应前面定义的 TYPE_NOTE、TYPE_FOLDER 等类型码。
|
|
|
|
|
*/
|
|
|
|
|
public static final String TYPE = "type";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 最后一次同步的ID,可能用于与服务器等外部数据源同步数据时的标识和记录,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String SYNC_ID = "sync_id";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 标志位,用于指示本地是否有修改,方便判断数据是否需要同步等操作,类型为整型(INTEGER)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String LOCAL_MODIFIED = "local_modified";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 在移动到临时文件夹之前的原始父级ID,可能用于记录笔记的历史位置等信息,类型为整型(INTEGER)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String ORIGIN_PARENT_ID = "origin_parent_id";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 与 gtask 相关的ID,可能用于与特定任务管理功能的对接,类型为文本(TEXT)类型。
|
|
|
|
|
*/
|
|
|
|
|
public static final String GTASK_ID = "gtask_id";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 版本代码,用于版本管理,比如数据库结构升级等场景下判断版本差异,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String VERSION = "version";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// DataColumns接口,定义了数据相关的各个列(Column)名称及其对应的数据类型,用于存储更通用的数据信息,可能涵盖多种类型笔记的数据细节
|
|
|
|
|
public interface DataColumns {
|
|
|
|
|
/**
|
|
|
|
|
* 数据行的唯一标识符(ID),用于在相应的数据表中唯一区分每一条记录,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String ID = "_id";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 该行数据所代表的项目的MIME类型,用于标识数据的具体格式、性质等,类型为文本(TEXT)类型,例如不同类型笔记对应不同的MIME类型。
|
|
|
|
|
*/
|
|
|
|
|
public static final String MIME_TYPE = "mime_type";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 该数据所属笔记的引用ID,用于建立数据与对应笔记的关联关系,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String NOTE_ID = "note_id";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 数据对应的笔记或文件夹的创建日期,和前面的 CREATED_DATE 类似,用于记录创建时间信息,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String CREATED_DATE = "created_date";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 数据对应的笔记或文件夹的最后修改日期,用于跟踪数据的更新情况,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String MODIFIED_DATE = "modified_date";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 数据的具体内容,类型为文本(TEXT)类型,根据不同的数据类型和用途存储相应的文本信息。
|
|
|
|
|
*/
|
|
|
|
|
public static final String CONTENT = "content";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通用数据列,其含义根据 {@link #MIME_TYPE} 的具体类型而定,用于整数数据类型,方便存储和扩展不同类型笔记的各种整数相关属性,类型为整型(INTEGER)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String DATA1 = "data1";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通用数据列,其含义根据 {@link #MIME_TYPE} 的具体类型而定,用于整数数据类型,和 DATA1 类似,类型为整型(INTEGER)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String DATA2 = "data2";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通用数据列,其含义根据 {@link #MIME_TYPE} 的具体类型而定,用于文本数据类型,方便存储各种文本相关的额外属性,类型为文本(TEXT)类型。
|
|
|
|
|
*/
|
|
|
|
|
public static final String DATA3 = "data3";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通用数据列,其含义根据 {@link #MIME_TYPE} 的具体类型而定,用于文本数据类型,和 DATA3 类似,类型为文本(TEXT)类型。
|
|
|
|
|
*/
|
|
|
|
|
public static final String DATA4 = "data3";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通用数据列,其含义根据 {@link #MIME_TYPE} 的具体类型而定,用于文本数据类型,和 DATA3 类似,类型为文本(TEXT)类型。
|
|
|
|
|
*/
|
|
|
|
|
public static final String DATA5 = "data3";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TextNote内部类,继承自 DataColumns,用于定义文本笔记相关的特定属性和操作,比如文本笔记的模式、内容类型等信息
|
|
|
|
|
public static final class TextNote implements DataColumns {
|
|
|
|
|
/**
|
|
|
|
|
* 用于指示文本是否处于复选框列表(check list)模式,1 表示处于该模式,0 表示正常模式,方便对文本笔记的展示和编辑进行不同处理,类型为整型(Integer)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String MODE = DATA1;
|
|
|
|
|
|
|
|
|
|
public static final int MODE_CHECK_LIST = 1;
|
|
|
|
|
|
|
|
|
|
// 文本笔记的内容类型,用于标识这是一个目录形式的文本笔记相关内容,遵循 Android 的 vnd.android.cursor.dir 规范,用于内容提供器等相关操作。
|
|
|
|
|
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note";
|
|
|
|
|
|
|
|
|
|
// 文本笔记的具体项目内容类型,遵循 Android 的 vnd.android.cursor.item 规范,用于更具体的单个文本笔记项目相关操作。
|
|
|
|
|
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note";
|
|
|
|
|
|
|
|
|
|
// 用于查询文本笔记的统一资源标识符(Uri),通过这个 Uri 可以使用内容提供器(Content Provider)来获取文本笔记相关的数据,格式遵循 Android 中 content:// 协议的规范。
|
|
|
|
|
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// CallNote内部类,同样继承自 DataColumns,用于定义通话记录笔记相关的特定属性和操作,比如通话日期、电话号码等信息
|
|
|
|
|
public static final class CallNote implements DataColumns {
|
|
|
|
|
/**
|
|
|
|
|
* 通话记录的通话日期,用于记录通话发生的时间,类型为长整型(INTEGER,对应数据库中的 long 类型)。
|
|
|
|
|
*/
|
|
|
|
|
public static final String CALL_DATE = DATA1;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 通话记录对应的电话号码,用于记录通话的对方号码等信息,类型为文本(TEXT)类型。
|
|
|
|
|
*/
|
|
|
|
|
public static final String PHONE_NUMBER = DATA3;
|
|
|
|
|
|
|
|
|
|
// 通话记录笔记的内容类型,用于标识这是一个目录形式的通话记录笔记相关内容,遵循 Android 的 vnd.android.cursor.dir 规范,用于内容提供器等相关操作。
|
|
|
|
|
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note";
|
|
|
|
|
|
|
|
|
|
// 通话记录笔记的具体项目内容类型,遵循 Android 的 vnd.android.cursor.item 规范,用于更具体的单个通话记录笔记项目相关操作。
|
|
|
|
|
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note";
|
|
|
|
|
|
|
|
|
|
// 用于查询通话记录笔记的统一资源标识符(Uri),通过这个 Uri 可以使用内容提供器(Content Provider)来获取通话记录笔记相关的数据,格式遵循 Android 中 content:// 协议的规范。
|
|
|
|
|
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");
|
|
|
|
|
}
|
|
|
|
|
}
|