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

356 lines
14 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";
// 日志标记,用于标识与 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;
//系统级实体(如默认文件夹)的标识符
/**
* Following IDs are system folders' identifiers 以下id是系统文件夹的标识符
* {@link Notes#ID_ROOT_FOLDER } is default folder 是默认文件夹
* {@link Notes#ID_TEMPARAY_FOLDER } is for notes belonging no folder 是用于没有归属文件夹的笔记
* {@link Notes#ID_CALL_RECORD_FOLDER} is to store call records 是用于存储通话记录
*/
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用于存储删除的笔记
//提醒日期的键
public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date";
//背景颜色颜色id的键
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";
//文件夹id的键
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;
//2x 大小的小部件类型
public static final int TYPE_WIDGET_2X = 0;
//4x 大小的小部件类型
public static final int TYPE_WIDGET_4X = 1;
//内部类,用于保护与数据相关的常量,特别是笔记的类型
public static class DataConstants {
// 常规笔记的内容类型
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE;
//通话记录的内容类型
public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE;
}
/**
* Uri to query all notes and folders
*/
//查询所有笔记和文件夹的 uri ,此 uri 可与内容解析器一起使用,以访问笔记数据
public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note");
/**
* Uri to query data
*/
//查询与笔记关联的数据的 uri ,可以访问以笔记相关的附加信息
public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");
// 接口定义笔记数据库表的架构,包括列名
public interface NoteColumns {
/**
* The unique ID for a row 笔记表中行的唯一 id
* <P> Type: INTEGER (long) </P> 类型为 INREGER (long)
*/
//唯一标识符的列名
public static final String ID = "_id";
/**
* The parent's id for note or folder 笔记或文件夹的父 id类型·
* <P> Type: INTEGER (long) </P>
*/
//笔记或文件夹的父 id 名称
public static final String PARENT_ID = "parent_id";
/**
* Created data for note or folder 笔记或文件夹的创建日期
* <P> Type: INTEGER (long) </P>
*/
//创建日期的列名
public static final String CREATED_DATE = "created_date";
/**
* Latest modified date 笔记或文件夹的最新修改日期
* <P> Type: INTEGER (long) </P>
*/
// 修改日期的列名
public static final String MODIFIED_DATE = "modified_date";
/**
* Alert date 提醒日期
* <P> Type: INTEGER (long) </P>
*/
//提醒日期的列名
public static final String ALERTED_DATE = "alert_date";
/**
* Folder's name or text content of note 文件夹的名称或笔记的文本内容
* <P> Type: TEXT </P>
*/
//文本内容或文件夹名称的列名
public static final String SNIPPET = "snippet";
/**
* Note's widget id 笔记的小部件 id
* <P> Type: INTEGER (long) </P>
*/
//笔记小部件的列名
public static final String WIDGET_ID = "widget_id";
/**
* Note's widget type 笔记的小部件类型
* <P> Type: INTEGER (long) </P>
*/
//笔记的小部件类型的列名
public static final String WIDGET_TYPE = "widget_type";
/**
* Note's background color's id 笔记背景颜色 id
* <P> Type: INTEGER (long) </P>
*/
//笔记的背景颜色 id 的列名
public static final String BG_COLOR_ID = "bg_color_id";
/**
* For text note, it doesn't has attachment, for multi-media
* note, it has at least one attachment
* <P> Type: INTEGER </P>
*/
// 表示笔记是否有附件。对于文本笔记此值为0无附件
// 对于多媒体笔记此值为1至少有一个附件。类型为整数。
public static final String HAS_ATTACHMENT = "has_attachment";
/**
* Folder's count of notes
* <P> Type: INTEGER (long) </P>
*/
// 表示文件夹中笔记的数量,类型为整数(长整型),
// 用于跟踪文件夹内包含的笔记总数。
public static final String NOTES_COUNT = "notes_count";
/**
* The file type: folder or note
* <P> Type: INTEGER </P>
*/
// 表示文件的类型,可以是文件夹或笔记。类型为整数,
// 通过不同的整数值来区分文件夹和笔记。
public static final String TYPE = "type";
/**
* The last sync id
* <P> Type: INTEGER (long) </P>
*/
// 表示最后一次同步的ID。类型为整数长整型
// 用于标识最近的一次数据同步状态,以便进行版本控制。
public static final String SYNC_ID = "sync_id";
/**
* Sign to indicate local modified or not
* <P> Type: INTEGER </P>
*/
// 表示本地是否有修改的标志。类型为整数,
// 如果此值为1表示本地数据已被修改如果为0则未修改。
public static final String LOCAL_MODIFIED = "local_modified";
/**
* Original parent id before moving into temporary folder
* <P> Type : INTEGER </P>
*/
// 表示在移动到临时文件夹之前的原始父级ID。类型为整数
// 这有助于在需要恢复或参考原始位置时使用。
public static final String ORIGIN_PARENT_ID = "origin_parent_id";
/**
* The gtask id
* <P> Type : TEXT </P>
*/
// 表示与 Google 任务GTask相关联的ID类型为文本
// 用于链接或引用与此笔记相关的Google任务
public static final String GTASK_ID = "gtask_id";
/**
* The version code
* <P> Type : INTEGER (long) </P>
*/
// 表示笔记或文件夹的版本号,类型为整数(长整型)
// 用于版本控制和管理更新,以确保数据的一致性
public static final String VERSION = "version";
}
// DataColumns 接口用于统一管理与数据列相关的常量,这使得在多个类之间共享相同的列名和类型变得更加简洁和一致
public interface DataColumns {
/**
* The unique ID for a row
* <P> Type: INTEGER (long) </P>
*/
// 表示数据库中每一行的唯一标识符,类型为整数(长整型)
public static final String ID = "_id";
/**
* The MIME type of the item represented by this row.
* <P> Type: Text </P>
*/
// 表示此行数据的MIME类型用于描述数据的格式类型为文本
public static final String MIME_TYPE = "mime_type";
/**
* The reference id to note that this data belongs to
* <P> Type: INTEGER (long) </P>
*/
// 表示与此数据相关联的笔记的ID类型为整型
public static final String NOTE_ID = "note_id";
/**
* Created data for note or folder
* <P> Type: INTEGER (long) </P>
*/
// 表示笔记或文件夹的创建日期,类型为整型
public static final String CREATED_DATE = "created_date";
/**
* Latest modified date
* <P> Type: INTEGER (long) </P>
*/
// 表示笔记或文件夹的最后修改日期,类型为整型
public static final String MODIFIED_DATE = "modified_date";
/**
* Data's content
* <P> Type: TEXT </P>
*/
// 表示数据的具体内容,类型为文本型
public static final String CONTENT = "content";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* integer data type
* <P> Type: INTEGER </P>
*/
// 通用数据列具体含义取决于MIME类型通常用于存储整数类型的数据类型为整数
public static final String DATA1 = "data1";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* integer data type
* <P> Type: INTEGER </P>
*/
// 通用数据列具体含义取决于MIME类型通常用于存储整数类型的数据类型为整数
public static final String DATA2 = "data2";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* TEXT data type
* <P> Type: TEXT </P>
*/
// 通用数据列具体含义取决于MIME类型通常用于存储文本类型的数据类型为文本
public static final String DATA3 = "data3";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* TEXT data type
* <P> Type: TEXT </P>
*/
// 通用数据列具体含义取决于MIME类型通常用于存储文本类型的数据类型为文本
public static final String DATA4 = "data4";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* TEXT data type
* <P> Type: TEXT </P>
*/
// 通用数据列具体含义取决于MIME类型通常用于存储文本类型的数据类型为文本
public static final String DATA5 = "data5";
}
// 定义一个静态类 TextNote 实现 DataColumns 接口
public static final class TextNote implements DataColumns {
/**
* Mode to indicate the text in check list mode or not
* <P> Type: Integer 1:check list mode 0: normal mode </P>
*/
// 这一常量表示文本的模式,是检查列表模式还是普通模式,类型为整数
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");
}
// 定义一个静态类 CallNote 实现 DataColumns 接口
public static final class CallNote implements DataColumns {
/**
* Call date for this record
* <P> Type: INTEGER (long) </P>
*/
// 表示记录的通话日期,类型为长整型
public static final String CALL_DATE = DATA1;
/**
* Phone number for this record
* <P> Type: TEXT </P>
*/
// 表示记录的电话号码,类型为文本
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");
}
}