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

291 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;//导入Android框架中的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
*/
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;//定义了四个public static final整型常量
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字符串常量
//用于在Android开发中标识Intent的额外数据
public static final int TYPE_WIDGET_INVALIDE = -1;
public static final int TYPE_WIDGET_2X = 0;
public static final int TYPE_WIDGET_4X = 1;//定义了三个public static final整数常量它们很可能用于标识不同类型的小部件或视图
public static class DataConstants {
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE;
public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE;
}//定义了一个DataConstants的静态类该类包含两个静态的、不可变的final字符串常量
/**
* Uri to query all notes and folders
*/
public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note");
//定义了一个公共的、静态的、不可变的finalUri对象名为CONTENT_NOTE_URI。这个Uri对象表示一个特定的内容URI用于Android的内容提供者来标识和访问数据
/**
* Uri to query data
*/
public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");
public interface NoteColumns //NoteColumns这样的接口通常用于定义数据库表的列名常量
{
/**
* The unique ID for a row
* <P> Type: INTEGER (long) </P>
*/
public static final String ID = "_id";//NoteColumns接口定义了一个公共的静态最终public static final字符串常量ID其值为"_id"
/**
* The parent's id for note or folder
* <P> Type: INTEGER (long) </P>
*/
public static final String PARENT_ID = "parent_id";//NoteColumns接口定义了一个公共的静态最终public static final字符串常量PARENT_ID其值为"parent_id"
/**
* Created data for note or folder
* <P> Type: INTEGER (long) </P>
*/
public static final String CREATED_DATE = "created_date";//NoteColumns接口定义了一个公共的静态最终public static final字符串常量CREATED_DATE其值为"created_date"
/**
* Latest modified date
* <P> Type: INTEGER (long) </P>
*/
public static final String MODIFIED_DATE = "modified_date";//定义一个字符串常量命名为modified_date
/**
* Alert date
* <P> Type: INTEGER (long) </P>
*/
public static final String ALERTED_DATE = "alert_date";//定义一个字符串常量命名为alert_date
/**
* Folder's name or text content of note
* <P> Type: TEXT </P>
*/
public static final String SNIPPET = "snippet";//定义一个字符串常量命名为snippet
/**
* Note's widget id
* <P> Type: INTEGER (long) </P>
*/
public static final String WIDGET_ID = "widget_id";//定义一个字符串常量命名为widget_id
/**
* Note's widget type
* <P> Type: INTEGER (long) </P>
*/
public static final String WIDGET_TYPE = "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";//定义一个字符串常量命名为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";//定义一个字符串常量命名为has_attachment
/**
* Folder's count of notes
* <P> Type: INTEGER (long) </P>
*/
public static final String NOTES_COUNT = "notes_count";//定义一个字符串常量命名为notes_count
/**
* The file type: folder or note
* <P> Type: INTEGER </P>
*/
public static final String TYPE = "type";//定义一个字符串常量命名为type
/**
* The last sync id
* <P> Type: INTEGER (long) </P>
*/
public static final String SYNC_ID = "sync_id";//定义一个字符串常量命名为sync_id
/**
* Sign to indicate local modified or not
* <P> Type: INTEGER </P>
*/
public static final String LOCAL_MODIFIED = "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";//定义一个字符串常量命名为origin_parent_id
/**
* The gtask id
* <P> Type : TEXT </P>
*/
public static final String GTASK_ID = "gtask_id";//定义一个字符串常量命名为gtask_id
/**
* The version code
* <P> Type : INTEGER (long) </P>
*/
public static final String VERSION = "version";//定义一个字符串常量命名为version
}
//其实质上就是对之前出现过的变量与常量进行初始化与处理,
public interface DataColumns //同样是一个定义数据库列名常量的地方
{
/**
* The unique ID for a row
* <P> Type: INTEGER (long) </P>
*/
public static final String ID = "_id";//定义了一个名为 ID 的常量,其值为字符串 _id
/**
* The MIME type of the item represented by this row.
* <P> Type: Text </P>
*/
public static final String MIME_TYPE = "mime_type";//定义了一个名为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";//对其NOTE_ID进行定义与初始化
/**
* Created data for note or folder
* <P> Type: INTEGER (long) </P>
*/
public static final String CREATED_DATE = "created_date";//对其CREATED_DATE进行定义与初始化
/**
* Latest modified date
* <P> Type: INTEGER (long) </P>
*/
public static final String MODIFIED_DATE = "modified_date";//对其MODIFIED_DATE进行定义与初始化
/**
* Data's content
* <P> Type: TEXT </P>
*/
public static final String CONTENT = "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";//对其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";//对其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";//对其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";//对其 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";//对其DATA5进行定义与初始化
}
public static final class TextNote implements DataColumns //TextNote 是一个公共的静态最终类public static final class它实现了 DataColumns 接口。
//这意味着 TextNote 类将继承 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;//定义了一个名为 MODE 的公共静态最终字符串常量
public static final int MODE_CHECK_LIST = 1;//定义了一个名为 MODE_CHECK_LIST 的公共静态最终整数常量,并赋值为 1
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note";//这行代码定义了一个名为 CONTENT_TYPE 的公共静态最终字符串常量用来表示文本笔记内容类型的MIME类型
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note";//这行代码定义了一个名为 CONTENT_ITEM_TYPE 的公共静态最终字符串常量,
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");//定义了一个公共的、静态的、最终的 Uri 对象
}
public static final class CallNote implements DataColumns //定义了一个名为CallNote的静态内部类并且这个类实现了DataColumns接口
{
/**
* Call date for this record
* <P> Type: INTEGER (long) </P>
*/
public static final String CALL_DATE = DATA1;//CALL_DATE是一个公共的、静态的、最终的字符串常量它的值被设置为DATA1
/**
* Phone number for this record
* <P> Type: TEXT </P>
*/
public static final String PHONE_NUMBER = DATA3;//同样地PHONE_NUMBER是一个公共的、静态的、最终的字符串常量它的值被设置为DATA3
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note";//CONTENT_TYPE是一个表示MIME类型的常量用于描述CallNote类型的数据集是一个目录dir
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note";//CONTENT_ITEM_TYPE是一个表示MIME类型的常量用于描述CallNote类型的数据项是一个单个项目
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");//定义了一个公共的、静态的、最终的Uri对象名为CONTENT_URI。
}
}