@ -35,6 +35,9 @@ import java.util.ArrayList;
public class Note {
public class Note {
/ * *
* private ContentValues mNoteDiffValues ;
* /
private ContentValues mNoteDiffValues ;
private ContentValues mNoteDiffValues ;
private NoteData mNoteData ;
private NoteData mNoteData ;
private static final String TAG = "Note" ;
private static final String TAG = "Note" ;
@ -50,7 +53,14 @@ public class Note {
values . put ( NoteColumns . TYPE , Notes . TYPE_NOTE ) ;
values . put ( NoteColumns . TYPE , Notes . TYPE_NOTE ) ;
values . put ( NoteColumns . LOCAL_MODIFIED , 1 ) ;
values . put ( NoteColumns . LOCAL_MODIFIED , 1 ) ;
values . put ( NoteColumns . PARENT_ID , folderId ) ;
values . put ( NoteColumns . PARENT_ID , folderId ) ;
/ * *
* 将 数 据 写 入 数 据 库 表 格
* /
Uri uri = context . getContentResolver ( ) . insert ( Notes . CONTENT_NOTE_URI , values ) ;
Uri uri = context . getContentResolver ( ) . insert ( Notes . CONTENT_NOTE_URI , values ) ;
/ * *
* ContentResolver ( ) 主 要 是 实 现 外 部 应 用 对 ContentProvider 中 的 数 据
* 进 行 添 加 、 删 除 、 修 改 和 查 询 操 作
* /
long noteId = 0 ;
long noteId = 0 ;
try {
try {
@ -59,6 +69,9 @@ public class Note {
Log . e ( TAG , "Get note id error :" + e . toString ( ) ) ;
Log . e ( TAG , "Get note id error :" + e . toString ( ) ) ;
noteId = 0 ;
noteId = 0 ;
}
}
/ * *
* try - catch 异 常 处 理
* /
if ( noteId = = - 1 ) {
if ( noteId = = - 1 ) {
throw new IllegalStateException ( "Wrong note id:" + noteId ) ;
throw new IllegalStateException ( "Wrong note id:" + noteId ) ;
}
}
@ -70,36 +83,81 @@ public class Note {
mNoteData = new NoteData ( ) ;
mNoteData = new NoteData ( ) ;
}
}
/ * *
* 定 义 两 个 变 量 用 来 存 储 便 签 的 数 据 , 一 个 存 储 便 签 属 性 , 一 个 存 储 便 签 内 容
* @param key
* @param value
* /
public void setNoteValue ( String key , String value ) {
public void setNoteValue ( String key , String value ) {
mNoteDiffValues . put ( key , value ) ;
mNoteDiffValues . put ( key , value ) ;
mNoteDiffValues . put ( NoteColumns . LOCAL_MODIFIED , 1 ) ;
mNoteDiffValues . put ( NoteColumns . LOCAL_MODIFIED , 1 ) ;
mNoteDiffValues . put ( NoteColumns . MODIFIED_DATE , System . currentTimeMillis ( ) ) ;
mNoteDiffValues . put ( NoteColumns . MODIFIED_DATE , System . currentTimeMillis ( ) ) ;
}
}
/ * *
* 设 置 数 据 库 表 格 的 标 签 属 性 数 据
* @param key
* @param value
* /
public void setTextData ( String key , String value ) {
public void setTextData ( String key , String value ) {
mNoteData . setTextData ( key , value ) ;
mNoteData . setTextData ( key , value ) ;
}
}
/ * *
* 设 置 数 据 库 表 格 的 标 签 文 本 内 容 的 数 据
* @param id
* /
public void setTextDataId ( long id ) {
public void setTextDataId ( long id ) {
mNoteData . setTextDataId ( id ) ;
mNoteData . setTextDataId ( id ) ;
}
}
/ * *
* 设 置 文 本 数 据 的 ID
* @return
* /
public long getTextDataId ( ) {
public long getTextDataId ( ) {
return mNoteData . mTextDataId ;
return mNoteData . mTextDataId ;
}
}
/ * *
* 得 到 文 本 数 据 的 ID
* @param id
* /
public void setCallDataId ( long id ) {
public void setCallDataId ( long id ) {
mNoteData . setCallDataId ( id ) ;
mNoteData . setCallDataId ( id ) ;
}
}
/ * *
* 设 置 电 话 号 码 数 据 的 ID
* @param key
* @param value
* /
public void setCallData ( String key , String value ) {
public void setCallData ( String key , String value ) {
mNoteData . setCallData ( key , value ) ;
mNoteData . setCallData ( key , value ) ;
}
}
/ * *
* 得 到 电 话 号 码 数 据 的 ID
* @return
* /
public boolean isLocalModified ( ) {
public boolean isLocalModified ( ) {
return mNoteDiffValues . size ( ) > 0 | | mNoteData . isLocalModified ( ) ;
return mNoteDiffValues . size ( ) > 0 | | mNoteData . isLocalModified ( ) ;
}
}
/ * *
* 判 断 是 否 是 本 地 修 改
* @param context
* @param noteId
* @return
* /
public boolean syncNote ( Context context , long noteId ) {
public boolean syncNote ( Context context , long noteId ) {
if ( noteId < = 0 ) {
if ( noteId < = 0 ) {
throw new IllegalArgumentException ( "Wrong note id:" + noteId ) ;
throw new IllegalArgumentException ( "Wrong note id:" + noteId ) ;
@ -130,14 +188,27 @@ public class Note {
return true ;
return true ;
}
}
/ * *
* 判 断 数 据 是 否 同 步
* /
private class NoteData {
private class NoteData {
/ * *
* 定 义 一 个 基 本 的 便 签 内 容 的 数 据 类 , 主 要 包 含 文 本 数 据 和 电 话 号 码 数 据
* /
private long mTextDataId ;
private long mTextDataId ;
private ContentValues mTextDataValues ;
private ContentValues mTextDataValues ;
/ * *
* 文 本 数 据
* /
private long mCallDataId ;
private long mCallDataId ;
private ContentValues mCallDataValues ;
private ContentValues mCallDataValues ;
/ * *
* 电 话 号 码 数 据
* /
private static final String TAG = "NoteData" ;
private static final String TAG = "NoteData" ;
@ -148,6 +219,11 @@ public class Note {
mCallDataId = 0 ;
mCallDataId = 0 ;
}
}
/ * *
* 下 面 是 上 述 几 个 函 数 的 具 体 实 现 方 式
* @return
* /
boolean isLocalModified ( ) {
boolean isLocalModified ( ) {
return mTextDataValues . size ( ) > 0 | | mCallDataValues . size ( ) > 0 ;
return mTextDataValues . size ( ) > 0 | | mCallDataValues . size ( ) > 0 ;
}
}
@ -178,6 +254,13 @@ public class Note {
mNoteDiffValues . put ( NoteColumns . MODIFIED_DATE , System . currentTimeMillis ( ) ) ;
mNoteDiffValues . put ( NoteColumns . MODIFIED_DATE , System . currentTimeMillis ( ) ) ;
}
}
/ * *
* 下 面 函 数 的 作 用 是 将 新 的 数 据 通 过 Uri 的 操 作 存 储 到 数 据 库
* @param context
* @param noteId
* @return
* /
Uri pushIntoContentResolver ( Context context , long noteId ) {
Uri pushIntoContentResolver ( Context context , long noteId ) {
/ * *
/ * *
* Check for safety
* Check for safety
@ -185,9 +268,15 @@ public class Note {
if ( noteId < = 0 ) {
if ( noteId < = 0 ) {
throw new IllegalArgumentException ( "Wrong note id:" + noteId ) ;
throw new IllegalArgumentException ( "Wrong note id:" + noteId ) ;
}
}
/ * *
* 判 断 数 据 是 否 合 法
* /
ArrayList < ContentProviderOperation > operationList = new ArrayList < ContentProviderOperation > ( ) ;
ArrayList < ContentProviderOperation > operationList = new ArrayList < ContentProviderOperation > ( ) ;
ContentProviderOperation . Builder builder = null ;
ContentProviderOperation . Builder builder = null ;
/ * *
* 数 据 库 的 操 作 列 表
* /
if ( mTextDataValues . size ( ) > 0 ) {
if ( mTextDataValues . size ( ) > 0 ) {
mTextDataValues . put ( DataColumns . NOTE_ID , noteId ) ;
mTextDataValues . put ( DataColumns . NOTE_ID , noteId ) ;
@ -210,6 +299,9 @@ public class Note {
}
}
mTextDataValues . clear ( ) ;
mTextDataValues . clear ( ) ;
}
}
/ * *
* 把 文 本 数 据 存 入 DataColums
* /
if ( mCallDataValues . size ( ) > 0 ) {
if ( mCallDataValues . size ( ) > 0 ) {
mCallDataValues . put ( DataColumns . NOTE_ID , noteId ) ;
mCallDataValues . put ( DataColumns . NOTE_ID , noteId ) ;
@ -232,6 +324,9 @@ public class Note {
}
}
mCallDataValues . clear ( ) ;
mCallDataValues . clear ( ) ;
}
}
/ * *
* 把 电 话 号 码 数 据 存 入 DataColumns
* /
if ( operationList . size ( ) > 0 ) {
if ( operationList . size ( ) > 0 ) {
try {
try {
@ -247,6 +342,9 @@ public class Note {
return null ;
return null ;
}
}
}
}
/ * *
* 存 储 过 程 中 的 异 常 处 理
* /
return null ;
return null ;
}
}
}
}