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

323 lines
12 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 {
// 内容提供者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; // 系统类型(可能用于特殊的系统笔记或文件夹)
/**
* 以下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; // 垃圾文件夹的ID可能用于存放被删除的笔记
// 注意:此类可能还需要其他方法和属性来支持笔记应用的功能,
// 例如可能包含用于构建URI、查询数据库等的方法。
// 但根据当前提供的代码,以上是对现有代码的详细注释。
}
// 定义一系列用于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"; // 用于传递背景颜色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; // 2x2大小的小部件类型
public static final int TYPE_WIDGET_4X = 1; // 4x4大小的小部件类型
// 定义一个内部类来组织数据相关的常量
public static class DataConstants {
// 笔记和通话记录的内容类型MIME类型
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; // 普通笔记的内容类型
public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; // 通话记录笔记的内容类型
// 注意TextNote和CallNote应该是定义了CONTENT_ITEM_TYPE常量的类
// 这些常量通常用于内容提供者Content Provider以标识不同的数据类型。
}
// 此处应定义一个Uri类型的常量但由于原始代码未给出具体Uri所以此处仅为说明性注释。
// public static final Uri CONTENT_URI_ALL_NOTES_AND_FOLDERS = Uri.parse("content://micode_notes/notes_and_folders");
/**
* Uri to query all notes and folders
*/
public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note");
/**
* Uri to query data
*/
public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");
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";
}
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";
}
// 定义一个静态内部类TextNote它实现了DataColumns接口假设DataColumns接口定义了一些与数据列相关的常量或方法
public static final class TextNote implements DataColumns {
/**
* 用于指示文本是否处于检查列表模式的字段名。
* <P>类型整数。1表示检查列表模式0表示普通模式。</P>
* 这个字段在数据库中用于存储笔记的显示模式,
* 检查列表模式可能意味着笔记以带有复选框的列表形式显示,
* 而普通模式则是普通的文本笔记。
*/
public static final String MODE = DATA1; // 假设DATA1是在DataColumns接口中定义的某个常量表示数据库中的一列
// 检查列表模式的常量值
public static final int MODE_CHECK_LIST = 1; // 表示检查列表模式
// 可以隐含地MODE_NORMAL = 0表示普通模式虽然没有显式定义
/**
* 文本笔记的内容类型MIME类型用于表示一组文本笔记的集合。
* 这个类型通常用于内容提供者Content Provider
* 以标识可以返回多个文本笔记的查询结果。
*/
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note";
/**
* 文本笔记的单个项的内容类型MIME类型用于表示一个具体的文本笔记。
* 这个类型也用于内容提供者中,但它是用来标识单个文本笔记的。
*/
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note";
/**
* 文本笔记的内容URI用于通过内容提供者访问文本笔记数据。
* 这个URI是构建在应用的内容提供者权威名称AUTHORITY之上的
* 并且指向文本笔记的数据表(或集合)。
*/
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");
// 注意AUTHORITY应该是一个在应用的某个地方定义的常量表示内容提供者的权威名称。
}
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";
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");
}
}