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.

362 lines
11 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.
*/
/**
* 文件: Notes.java
* 描述: 定义了便签应用的核心数据结构和常量
* 作用: 提供数据库表结构的定义、内容提供者URI、系统文件夹ID等常量是应用数据层的核心定义文件
*/
package net.micode.notes.data;
import android.net.Uri;
/**
* 便签数据定义类
*
* 包含了便签应用所有的数据常量定义,包括:
* - 内容提供者权限名称
* - 便签和文件夹类型
* - 系统文件夹ID
* - Intent传递参数的键名
* - 小部件类型
* - 数据库表列名
* - 内容URI
*/
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;
/**
* Following IDs are system folders' identifiers
* {@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
*/
/** 系统文件夹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";
/** Intent参数背景颜色ID */
public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id";
/** Intent参数小部件ID */
public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id";
/** Intent参数小部件类型 */
public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type";
/** Intent参数文件夹ID */
public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id";
/** Intent参数通话日期 */
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;
/**
* 数据常量类
* 定义了便签内容类型的MIME类型常量
*/
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 to query all notes and folders
*/
/** 查询所有便签和文件夹的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");
/**
* 便签表列名接口
* 定义了note表中所有列的名称和类型
*/
public interface NoteColumns {
/**
* The unique ID for a row
* <P> Type: INTEGER (long) </P>
*/
public static final String ID = "_id";
/**
* The parent's id for note or folder
* <P> Type: INTEGER (long) </P>
*/
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
* <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
* <P> Type: INTEGER (long) </P>
*/
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>
*/
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>
*/
public static final String SYNC_ID = "sync_id";
/**
* Sign to indicate local modified or not
* <P> Type: INTEGER </P>
*/
public static final String LOCAL_MODIFIED = "local_modified";
/**
* Original parent id before moving into temporary folder
* <P> Type : INTEGER </P>
*/
public static final String ORIGIN_PARENT_ID = "origin_parent_id";
/**
* The gtask id
* <P> Type : TEXT </P>
*/
public static final String GTASK_ID = "gtask_id";
/**
* The version code
* <P> Type : INTEGER (long) </P>
*/
public static final String VERSION = "version";
}
/**
* 数据表列名接口
* 定义了data表中所有列的名称和类型
*/
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>
*/
public static final String MIME_TYPE = "mime_type";
/**
* The reference id to note that this data belongs to
* <P> Type: INTEGER (long) </P>
*/
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>
*/
public static final String DATA1 = "data1";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* integer data type
* <P> Type: INTEGER </P>
*/
public static final String DATA2 = "data2";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* TEXT data type
* <P> Type: TEXT </P>
*/
public static final String DATA3 = "data3";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* TEXT data type
* <P> Type: TEXT </P>
*/
public static final String DATA4 = "data4";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* TEXT data type
* <P> Type: TEXT </P>
*/
public static final String DATA5 = "data5";
}
/**
* 文本便签类
* 定义了文本便签特有的数据结构和常量
*/
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");
}
/**
* 通话记录便签类
* 定义了通话记录便签特有的数据结构和常量
*/
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");
}
}