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

302 lines
10 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 的类
// 定义一个名为 Notes 的类,用于管理笔记相关的常量和操作
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 是系统文件夹的标识符
* {@link Notes#ID_ROOT_FOLDER } 是默认文件夹
* {@link Notes#ID_TEMPARAY_FOLDER } 用于不属于任何文件夹的笔记
* {@link Notes#ID_CALL_RECORD_FOLDER} 用于存储通话记录
*/
// 根文件夹的 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;
// 定义一些用于 Intent 传递数据的键
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;
// 定义 2x 大小的小部件类型常量
public static final int TYPE_WIDGET_2X = 0;
// 定义 4x 大小的小部件类型常量
public static final int TYPE_WIDGET_4X = 1;
// 定义一个内部静态类,用于存储数据相关的常量
public static class DataConstants {
// 文本笔记的 MIME 类型
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE;
// 通话笔记的 MIME 类型
public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE;
}
/**
* 用于查询所有笔记和文件夹的 Uri
*/
// 定义查询所有笔记和文件夹的 Uri
public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note");
/**
* 用于查询数据的 Uri
*/
// 定义查询数据的 Uri
public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");
// 定义一个接口,用于存储笔记相关的列名
public interface NoteColumns {
/**
* 行的唯一 ID
* <P> 类型:整数 (long) </P>
*/
public static final String ID = "_id";
/**
* 笔记或文件夹的父 ID
* <P> 类型:整数 (long) </P>
*/
public static final String PARENT_ID = "parent_id";
/**
* 笔记或文件夹的创建日期
* <P> 类型:整数 (long) </P>
*/
public static final String CREATED_DATE = "created_date";
/**
* 最新修改日期
* <P> 类型:整数 (long) </P>
*/
public static final String MODIFIED_DATE = "modified_date";
/**
* 提醒日期
* <P> 类型:整数 (long) </P>
*/
public static final String ALERTED_DATE = "alert_date";
/**
* 文件夹名称或笔记的文本内容
* <P> 类型:文本 </P>
*/
public static final String SNIPPET = "snippet";
/**
* 笔记的小部件 ID
* <P> 类型:整数 (long) </P>
*/
public static final String WIDGET_ID = "widget_id";
/**
* 笔记的小部件类型
* <P> 类型:整数 (long) </P>
*/
public static final String WIDGET_TYPE = "widget_type";
/**
* 笔记的背景颜色 ID
* <P> 类型:整数 (long) </P>
*/
public static final String BG_COLOR_ID = "bg_color_id";
/**
* 对于文本笔记,它没有附件;对于多媒体笔记,它至少有一个附件
* <P> 类型:整数 </P>
*/
public static final String HAS_ATTACHMENT = "has_attachment";
/**
* 文件夹中的笔记数量
* <P> 类型:整数 (long) </P>
*/
public static final String NOTES_COUNT = "notes_count";
/**
* 文件类型:文件夹或笔记
* <P> 类型:整数 </P>
*/
public static final String TYPE = "type";
/**
* 最后同步 ID
* <P> 类型:整数 (long) </P>
*/
public static final String SYNC_ID = "sync_id";
/**
* 表示是否本地修改的标志
* <P> 类型:整数 </P>
*/
public static final String LOCAL_MODIFIED = "local_modified";
/**
* 移动到临时文件夹之前的原始父 ID
* <P> 类型:整数 </P>
*/
public static final String ORIGIN_PARENT_ID = "origin_parent_id";
/**
* gtask ID
* <P> 类型:文本 </P>
*/
public static final String GTASK_ID = "gtask_id";
/**
* 版本号
* <P> 类型:整数 (long) </P>
*/
public static final String VERSION = "version";
}
// 定义一个接口,用于存储数据相关的列名
public interface DataColumns {
/**
* 行的唯一 ID
* <P> 类型:整数 (long) </P>
*/
public static final String ID = "_id";
/**
* 此行表示的项目的 MIME 类型
* <P> 类型:文本 </P>
*/
public static final String MIME_TYPE = "mime_type";
/**
* 此数据所属笔记的引用 ID
* <P> 类型:整数 (long) </P>
*/
public static final String NOTE_ID = "note_id";
/**
* 笔记或文件夹的创建日期
* <P> 类型:整数 (long) </P>
*/
public static final String CREATED_DATE = "created_date";
/**
* 最新修改日期
* <P> 类型:整数 (long) </P>
*/
public static final String MODIFIED_DATE = "modified_date";
/**
* 数据内容
* <P> 类型:文本 </P>
*/
public static final String CONTENT = "content";
/**
* 通用数据列,含义取决于 {@link #MIMETYPE},用于整数数据类型
* <P> 类型:整数 </P>
*/
public static final String DATA1 = "data1";
/**
* 通用数据列,含义取决于 {@link #MIMETYPE},用于整数数据类型
* <P> 类型:整数 </P>
*/
public static final String DATA2 = "data2";
/**
* 通用数据列,含义取决于 {@link #MIMETYPE},用于文本数据类型
* <P> 类型:文本 </P>
*/
public static final String DATA3 = "data3";
/**
* 通用数据列,含义取决于 {@link #MIMETYPE},用于文本数据类型
* <P> 类型:文本 </P>
*/
public static final String DATA4 = "data4";
/**
* 通用数据列,含义取决于 {@link #MIMETYPE},用于文本数据类型
* <P> 类型:文本 </P>
*/
public static final String DATA5 = "data5";
}
// 定义一个静态内部类,用于表示文本笔记
public static final class TextNote implements DataColumns {
/**
* 表示文本是否处于 checklist 模式的标志
* <P> 类型:整数 1checklist 模式 0正常模式 </P>
*/
public static final String MODE = DATA1;
// checklist 模式的常量值
public static final int MODE_CHECK_LIST = 1;
// 文本笔记的内容类型(用于 ContentProvider
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note";
// 文本笔记的单个项目内容类型(用于 ContentProvider
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> 类型:整数 (long) </P>
*/
public static final String CALL_DATE = DATA1;
/**
* 此通话记录的电话号码
* <P> 类型:文本 </P>
*/
public static final String PHONE_NUMBER = DATA3;
// 通话笔记的内容类型(用于 ContentProvider
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note";
// 通话笔记的单个项目内容类型(用于 ContentProvider
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");
}
}