|
|
|
@ -13,6 +13,33 @@
|
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
|
* limitations under the License.
|
|
|
|
|
*/
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
=======
|
|
|
|
|
/*该类定义在 net.micode.notes.tool 包下,并导入了Android和Java的一些核心类。这些导入的类提供了对内容提供者操作、日志记录、游标以及存储值的支持。 */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @ProjectName: minode
|
|
|
|
|
* @Package: net.micode.notes.data
|
|
|
|
|
* @ClassName: DataUtils
|
|
|
|
|
* @Description: 该类提供了一系列与笔记数据操作相关的工具方法。它包含了批量删除笔记、移动笔记到文件夹、
|
|
|
|
|
获取用户文件夹数量、检查笔记或数据是否存在、获取通话记录号码、获取笔记摘要等功能。通过
|
|
|
|
|
这些方法,可以方便地对笔记数据进行批量操作和查询。
|
|
|
|
|
* @Author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*主要成员变量和常量:
|
|
|
|
|
DB_NAME:数据库的名称。
|
|
|
|
|
DB_VERSION:数据库的版本号。
|
|
|
|
|
TABLE:定义了数据库表名的接口。
|
|
|
|
|
TAG:用于日志记录的标签。
|
|
|
|
|
mInstance:用于实现单例模式的静态实例变量。
|
|
|
|
|
CREATE_NOTE_TABLE_SQL、CREATE_DATA_TABLE_SQL 等:创建笔记表和数据表的 SQL 语句。
|
|
|
|
|
NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER 等:定义了数据库触发器的 SQL 语句,用于在特定操作后自动更新数据。 */
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
package net.micode.notes.tool;
|
|
|
|
|
|
|
|
|
|
import android.content.ContentProviderOperation;
|
|
|
|
@ -33,10 +60,32 @@ import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* DataUtils 类提供了一系列用于操作便签数据的工具方法。
|
|
|
|
|
* 包括批量删除便签、移动便签、查询便签等。
|
|
|
|
|
*/
|
|
|
|
|
=======
|
|
|
|
|
/*这个方法实现了根据一组ID批量删除笔记的功能。
|
|
|
|
|
它首先检查ID集合是否为空,并创建一个操作列表。
|
|
|
|
|
通过 ContentResolver 执行删除操作,成功后返回 true,失败则返回 false。 */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method batchDeleteNotes
|
|
|
|
|
* @description 批量删除笔记。根据传入的笔记 ID 集合,构建批量删除操
|
|
|
|
|
作的 ContentProviderOperation 列表,然后通过 ContentResolver
|
|
|
|
|
的 applyBatch 方法执行批量删除操作。如果删除操作成功,返回 true;否则,返回 false。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:批量删除笔记。根据传入的笔记 ID 集合,构建批量删除操作的 ContentProviderOperation 列表,然后通过 ContentResolver
|
|
|
|
|
的 applyBatch 方法执行批量删除操作。如果删除操作成功,返回 true;否则,返回 false。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
ids:要删除的笔记 ID 集合。
|
|
|
|
|
返回值:true 表示删除成功,false 表示删除失败。 */
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
public class DataUtils {
|
|
|
|
|
public static final String TAG = "DataUtils";
|
|
|
|
|
|
|
|
|
@ -80,6 +129,7 @@ public class DataUtils {
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 将便签移动到指定文件夹。
|
|
|
|
@ -88,6 +138,31 @@ public class DataUtils {
|
|
|
|
|
* @param srcFolderId 源文件夹ID
|
|
|
|
|
* @param desFolderId 目标文件夹ID
|
|
|
|
|
*/
|
|
|
|
|
=======
|
|
|
|
|
/*此方法将指定的笔记移动到目标文件夹。
|
|
|
|
|
更新笔记的父文件夹ID并标记为本地修改。 */
|
|
|
|
|
/*查询非系统文件夹的数量。异常处理用于确保在查询失败时释放游标资源。 */
|
|
|
|
|
|
|
|
|
|
/*这个方法实现了根据一组ID批量删除笔记的功能。
|
|
|
|
|
它首先检查ID集合是否为空,并创建一个操作列表。
|
|
|
|
|
通过 ContentResolver 执行删除操作,成功后返回 true,失败则返回 false。 */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method moveNoteToFoler
|
|
|
|
|
* @description 将笔记移动到指定文件夹。根据传入的笔记 ID、源文件夹 ID 和目标文件夹 ID,更新笔记的父 ID、原始父 ID
|
|
|
|
|
和本地修改标志。通过 ContentResolver 的 update 方法执行更新操作。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:将笔记移动到指定文件夹。根据传入的笔记 ID、源文件夹 ID 和目标文件夹 ID,更新笔记的父 ID、原始父 ID
|
|
|
|
|
和本地修改标志。通过 ContentResolver 的 update 方法执行更新操作。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
id:要移动的笔记 ID。
|
|
|
|
|
srcFolderId:源文件夹 ID。
|
|
|
|
|
desFolderId:目标文件夹 ID*/
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
public static void moveNoteToFoler(ContentResolver resolver, long id, long srcFolderId, long desFolderId) {
|
|
|
|
|
ContentValues values = new ContentValues();
|
|
|
|
|
values.put(NoteColumns.PARENT_ID, desFolderId);
|
|
|
|
@ -96,6 +171,7 @@ public class DataUtils {
|
|
|
|
|
resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 批量将便签移动到指定文件夹。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -108,6 +184,29 @@ public class DataUtils {
|
|
|
|
|
Log.d(TAG, "the ids is null");
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
=======
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method batchMoveToFolder
|
|
|
|
|
* @description 批量移动笔记到指定文件夹。根据传入的笔记 ID 集合和目标文件夹 ID,构建批量更新操作的 ContentProviderOperation
|
|
|
|
|
列表,然后通过 ContentResolver 的 applyBatch 方法执行批量更新操作。如果移动操作成功,返回 true;否则,返回 false。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:批量移动笔记到指定文件夹。根据传入的笔记 ID 集合和目标文件夹 ID,构建批量更新操作的 ContentProviderOperation
|
|
|
|
|
列表,然后通过 ContentResolver 的 applyBatch 方法执行批量更新操作。如果移动操作成功,返回 true;否则,返回 false。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
ids:要移动的笔记 ID 集合。
|
|
|
|
|
folderId:目标文件夹 ID。
|
|
|
|
|
返回值:true 表示移动成功,false 表示移动失败。*/
|
|
|
|
|
public static boolean batchMoveToFolder(ContentResolver resolver, HashSet<Long> ids, long folderId) {
|
|
|
|
|
if (ids == null) {
|
|
|
|
|
Log.d(TAG, "the ids is null");
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
|
|
|
|
|
ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();
|
|
|
|
|
for (long id : ids) {
|
|
|
|
@ -133,6 +232,7 @@ public class DataUtils {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 获取用户文件夹的数量(不包括系统文件夹)。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -144,6 +244,32 @@ public class DataUtils {
|
|
|
|
|
NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>?",
|
|
|
|
|
new String[] { String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLDER)},
|
|
|
|
|
null);
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 获取用户文件夹的数量(不包括系统文件夹)
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
|
* @return 用户文件夹的数量
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method getUserFolderCount
|
|
|
|
|
* @description 获取用户文件夹数量。查询笔记表,统计类型为文件夹且父 ID 不等于回收站文件夹 ID 的笔记数量。返回查询结果中的数量。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
方法 getUserFolderCount(ContentResolver resolver)
|
|
|
|
|
功能介绍:获取用户文件夹数量。查询笔记表,统计类型为文件夹且父 ID 不等于回收站文件夹 ID 的笔记数量。返回查询结果中的数量。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
返回值:用户文件夹数量。*/
|
|
|
|
|
public static int getUserFolderCount(ContentResolver resolver) {
|
|
|
|
|
Cursor cursor =resolver.query(Notes.CONTENT_NOTE_URI,
|
|
|
|
|
new String[] { "COUNT(*)" },
|
|
|
|
|
NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>?",
|
|
|
|
|
new String[] { String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER)},
|
|
|
|
|
null);
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
|
|
|
|
|
int count = 0;
|
|
|
|
|
if(cursor != null) {
|
|
|
|
@ -160,6 +286,7 @@ public class DataUtils {
|
|
|
|
|
return count;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 检查数据库中是否存在指定ID和类型的便签。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -173,6 +300,35 @@ public class DataUtils {
|
|
|
|
|
NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLDER,
|
|
|
|
|
new String [] {String.valueOf(type)},
|
|
|
|
|
null);
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 检查数据库中是否存在指定ID和类型的便签
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
|
* @param noteId 便签ID
|
|
|
|
|
* @param type 便签类型
|
|
|
|
|
* @return 是否存在
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method visibleInNoteDatabase
|
|
|
|
|
* @description 检查指定类型的笔记是否存在。根据传入的笔记 ID 和类型,查询笔记表,检查是否存在符合条件的笔记。如果存在,返回 true;否则,返回 false。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:检查指定类型的笔记是否存在。根据传入的笔记 ID 和类型,查询笔记表,检查是否存在符合条件的笔记。如果存在,返回 true;否则,返回 false。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
noteId:要检查的笔记 ID。
|
|
|
|
|
type:笔记类型。
|
|
|
|
|
返回值:true 表示笔记存在,false 表示笔记不存在。*/
|
|
|
|
|
public static boolean visibleInNoteDatabase(ContentResolver resolver, long noteId, int type) {
|
|
|
|
|
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId),
|
|
|
|
|
null,
|
|
|
|
|
NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER,
|
|
|
|
|
new String [] {String.valueOf(type)},
|
|
|
|
|
null);
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
|
|
|
|
|
boolean exist = false;
|
|
|
|
|
if (cursor != null) {
|
|
|
|
@ -184,6 +340,7 @@ public class DataUtils {
|
|
|
|
|
return exist;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 检查数据库中是否存在指定ID的便签。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -193,6 +350,32 @@ public class DataUtils {
|
|
|
|
|
public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) {
|
|
|
|
|
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId),
|
|
|
|
|
null, null, null, null);
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 检查数据库中是否存在指定ID的便签
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
|
* @param noteId 便签ID
|
|
|
|
|
* @return 是否存在
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method existInNoteDatabase
|
|
|
|
|
* @description 检查笔记是否存在。根据传入的笔记 ID,查询笔记表,检查是否存在该笔记。如果存在,返回 true;否则,返回 false。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:检查笔记是否存在。根据传入的笔记 ID,查询笔记表,检查是否存在该笔记。如果存在,返回 true;否则,返回 false。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
noteId:要检查的笔记 ID。
|
|
|
|
|
返回值:true 表示笔记存在,false 表示笔记不存在。*/
|
|
|
|
|
public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) {
|
|
|
|
|
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId),
|
|
|
|
|
null, null, null, null);
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
|
|
|
|
|
boolean exist = false;
|
|
|
|
|
if (cursor != null) {
|
|
|
|
@ -204,6 +387,7 @@ public class DataUtils {
|
|
|
|
|
return exist;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 检查数据库中是否存在指定ID的数据。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -213,6 +397,32 @@ public class DataUtils {
|
|
|
|
|
public static boolean existInDataDatabase(ContentResolver resolver, long dataId) {
|
|
|
|
|
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId),
|
|
|
|
|
null, null, null, null);
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 检查数据库中是否存在指定ID的数据
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
|
* @param dataId 数据ID
|
|
|
|
|
* @return 是否存在
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method existInNoteDatabase
|
|
|
|
|
* @description 检查数据是否存在。根据传入的数据 ID,查询数据表,检查是否存在该数据。如果存在,返回 true;否则,返回 false。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:检查数据是否存在。根据传入的数据 ID,查询数据表,检查是否存在该数据。如果存在,返回 true;否则,返回 false。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
dataId:要检查的数据 ID。
|
|
|
|
|
返回值:true 表示数据存在,false 表示数据不存在。
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
public static boolean existInDataDatabase(ContentResolver resolver, long dataId) {
|
|
|
|
|
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId),
|
|
|
|
|
null, null, null, null);
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
|
|
|
|
|
boolean exist = false;
|
|
|
|
|
if (cursor != null) {
|
|
|
|
@ -224,6 +434,7 @@ public class DataUtils {
|
|
|
|
|
return exist;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 检查数据库中是否存在指定名称的可见文件夹。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -243,10 +454,48 @@ public class DataUtils {
|
|
|
|
|
exist = true;
|
|
|
|
|
}
|
|
|
|
|
cursor.close();
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 检查数据库中是否存在指定名称的可见文件夹
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
|
* @param name 文件夹名称
|
|
|
|
|
* @return 是否存在
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method checkVisibleFolderName
|
|
|
|
|
* @description 检查数据是否存在。根据传入的数据 ID,查询数据表,检查是否存在该数据。如果存在,返回 true;否则,返回 false。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:检查数据是否存在。根据传入的数据 ID,查询数据表,检查是否存在该数据。如果存在,返回 true;否则,返回 false。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
dataId:要检查的数据 ID。
|
|
|
|
|
返回值:true 表示数据存在,false 表示数据不存在。功能介绍:检查可见文件夹名称是否存在。根据传入的文件夹名称,查询笔记表,检查是否存在类型为文件夹、父 ID 不等于回收站文件夹 ID 且名称等于指定名称的文件夹。如果存在,返回 true;否则,返回 false。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
name:要检查的文件夹名称。
|
|
|
|
|
返回值:true 表示文件夹名称存在,false 表示文件夹名称不存在。
|
|
|
|
|
*/
|
|
|
|
|
public static boolean checkVisibleFolderName(ContentResolver resolver, String name) {
|
|
|
|
|
Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null,
|
|
|
|
|
NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER +
|
|
|
|
|
" AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER +
|
|
|
|
|
" AND " + NoteColumns.SNIPPET + "=?",
|
|
|
|
|
new String[] { name }, null);
|
|
|
|
|
boolean exist = false;
|
|
|
|
|
if(cursor != null) {
|
|
|
|
|
if(cursor.getCount() > 0) {
|
|
|
|
|
exist = true;
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
}
|
|
|
|
|
return exist;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 获取指定文件夹中的小部件属性集合。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -259,6 +508,37 @@ public class DataUtils {
|
|
|
|
|
NoteColumns.PARENT_ID + "=?",
|
|
|
|
|
new String[] { String.valueOf(folderId) },
|
|
|
|
|
null);
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 获取指定文件夹中的小部件属性集合
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
|
* @param folderId 文件夹ID
|
|
|
|
|
* @return 小部件属性集合
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method getFolderNoteWidget
|
|
|
|
|
* @description 获取指定文件夹的笔记小部件属性。根据传入的文件夹 ID,查询笔记表,获取该文件夹下所有笔记的小部件 ID 和类型,
|
|
|
|
|
并将它们封装成 AppWidgetAttribute 对象,存入 HashSet 中返回。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:获取指定文件夹的笔记小部件属性。根据传入的文件夹 ID,查询笔记表,获取该文件夹下所有笔记的小部件 ID 和类型,
|
|
|
|
|
并将它们封装成 AppWidgetAttribute 对象,存入 HashSet 中返回。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
folderId:文件夹 ID。
|
|
|
|
|
返回值:包含笔记小部件属性的 HashSet。
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
public static HashSet<AppWidgetAttribute> getFolderNoteWidget(ContentResolver resolver, long folderId) {
|
|
|
|
|
Cursor c = resolver.query(Notes.CONTENT_NOTE_URI,
|
|
|
|
|
new String[] { NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE },
|
|
|
|
|
NoteColumns.PARENT_ID + "=?",
|
|
|
|
|
new String[] { String.valueOf(folderId) },
|
|
|
|
|
null);
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
|
|
|
|
|
HashSet<AppWidgetAttribute> set = null;
|
|
|
|
|
if (c != null) {
|
|
|
|
@ -280,6 +560,7 @@ public class DataUtils {
|
|
|
|
|
return set;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 根据便签ID获取电话号码。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -292,6 +573,43 @@ public class DataUtils {
|
|
|
|
|
CallNote.NOTE_ID + "=? AND " + CallNote.MIME_TYPE + "=?",
|
|
|
|
|
new String [] { String.valueOf(noteId), CallNote.CONTENT_ITEM_TYPE },
|
|
|
|
|
null);
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 根据便签ID获取电话号码
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
|
* @param noteId 便签ID
|
|
|
|
|
* @return 电话号码
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method getCallNumberByNoteId
|
|
|
|
|
* @description 根据笔记 ID 获取通话记录号码。根据传入的笔记 ID,查询数据表,获取该笔记对应的通话记录号码。
|
|
|
|
|
如果查询成功且存在号码,返回号码字符串;否则,返回空字符串。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:获取指定文件夹的笔记小部件属性。根据传入的文件夹 ID,查询笔记表,获取该文件夹下所有笔记的小部件 ID 和类型,
|
|
|
|
|
并将它们封装成 AppWidgetAttribute 对象,存入 HashSet 中返回。
|
|
|
|
|
功能介绍:根据笔记 ID 获取通话记录号码。根据传入的笔记 ID,查询数据表,获取该笔记对应的通话记录号码。如果查询成功且存
|
|
|
|
|
在号码,返回号码字符串;否则,返回空字符串。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
noteId:笔记 ID。
|
|
|
|
|
返回值:通话记录号码字符串。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
folderId:文件夹 ID。
|
|
|
|
|
返回值:包含笔记小部件属性的 HashSet。
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
public static String getCallNumberByNoteId(ContentResolver resolver, long noteId) {
|
|
|
|
|
Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI,
|
|
|
|
|
new String [] { CallNote.PHONE_NUMBER },
|
|
|
|
|
CallNote.NOTE_ID + "=? AND " + CallNote.MIME_TYPE + "=?",
|
|
|
|
|
new String [] { String.valueOf(noteId), CallNote.CONTENT_ITEM_TYPE },
|
|
|
|
|
null);
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
|
|
|
|
|
if (cursor != null && cursor.moveToFirst()) {
|
|
|
|
|
try {
|
|
|
|
@ -305,6 +623,7 @@ public class DataUtils {
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 根据电话号码和通话日期获取便签ID。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -319,6 +638,40 @@ public class DataUtils {
|
|
|
|
|
+ CallNote.PHONE_NUMBER + ",?)",
|
|
|
|
|
new String [] { String.valueOf(callDate), CallNote.CONTENT_ITEM_TYPE, phoneNumber },
|
|
|
|
|
null);
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 根据电话号码和通话日期获取便签ID
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
|
* @param phoneNumber 电话号码
|
|
|
|
|
* @param callDate 通话日期
|
|
|
|
|
* @return 便签ID
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method getNoteIdByPhoneNumberAndCallDate
|
|
|
|
|
* @description 根据电话号码和通话日期获取笔记 ID。根据传入的电话号码和通话日期,查询数据表,获取匹配的笔记 ID。如果查询成功
|
|
|
|
|
且存在笔记 ID,返回笔记 ID;否则,返回 0。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:
|
|
|
|
|
根据电话号码和通话日期获取笔记 ID。根据传入的电话号码和通话日期,查询数据表,获取匹配的笔记 ID。如果查询成功
|
|
|
|
|
且存在笔记 ID,返回笔记 ID;否则,返回 0。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
phoneNumber:电话号码。
|
|
|
|
|
callDate:通话日期。
|
|
|
|
|
返回值:笔记 ID。
|
|
|
|
|
*/
|
|
|
|
|
public static long getNoteIdByPhoneNumberAndCallDate(ContentResolver resolver, String phoneNumber, long callDate) {
|
|
|
|
|
Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI,
|
|
|
|
|
new String [] { CallNote.NOTE_ID },
|
|
|
|
|
CallNote.CALL_DATE + "=? AND " + CallNote.MIME_TYPE + "=? AND PHONE_NUMBERS_EQUAL("
|
|
|
|
|
+ CallNote.PHONE_NUMBER + ",?)",
|
|
|
|
|
new String [] { String.valueOf(callDate), CallNote.CONTENT_ITEM_TYPE, phoneNumber },
|
|
|
|
|
null);
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
|
|
|
|
|
if (cursor != null) {
|
|
|
|
|
if (cursor.moveToFirst()) {
|
|
|
|
@ -333,6 +686,7 @@ public class DataUtils {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 根据便签ID获取便签摘要。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -345,6 +699,40 @@ public class DataUtils {
|
|
|
|
|
NoteColumns.ID + "=?",
|
|
|
|
|
new String [] { String.valueOf(noteId)},
|
|
|
|
|
null);
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 根据便签ID获取便签摘要
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
|
* @param noteId 便签ID
|
|
|
|
|
* @return 便签摘要
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method getSnippetById
|
|
|
|
|
* @description 根据笔记 ID 获取笔记摘要。根据传入的笔记 ID,查询笔记表,获取该笔记的摘要字符串。如果查询成功且存在摘要,
|
|
|
|
|
返回摘要字符串;否则,抛出 IllegalArgumentException 异常。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:
|
|
|
|
|
根据电话号码和通话日期获取笔记 ID。根据传入的电话号码和通话日期,查询数据表,获取匹配的笔记 ID。如果查询成功
|
|
|
|
|
且存在笔记 ID,返回笔记 ID;否则,返回 0。
|
|
|
|
|
功能介绍:根据笔记 ID 获取笔记摘要。根据传入的笔记 ID,查询笔记表,获取该笔记的摘要字符串。如果查询成功且存在摘要,
|
|
|
|
|
返回摘要字符串;否则,抛出 IllegalArgumentException 异常。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
noteId:笔记 ID。
|
|
|
|
|
返回值:笔记摘要字符串。
|
|
|
|
|
*/
|
|
|
|
|
public static String getSnippetById(ContentResolver resolver, long noteId) {
|
|
|
|
|
Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI,
|
|
|
|
|
new String [] { NoteColumns.SNIPPET },
|
|
|
|
|
NoteColumns.ID + "=?",
|
|
|
|
|
new String [] { String.valueOf(noteId)},
|
|
|
|
|
null);
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
|
|
|
|
|
if (cursor != null) {
|
|
|
|
|
String snippet = "";
|
|
|
|
@ -357,6 +745,7 @@ public class DataUtils {
|
|
|
|
|
throw new IllegalArgumentException("Note is not found with id: " + noteId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 格式化便签摘要。
|
|
|
|
|
* @param snippet 便签摘要
|
|
|
|
@ -369,10 +758,39 @@ public class DataUtils {
|
|
|
|
|
if (index != -1) {
|
|
|
|
|
snippet = snippet.substring(0, index);
|
|
|
|
|
}
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 格式化便签摘要
|
|
|
|
|
* @param snippet 便签摘要
|
|
|
|
|
* @return 格式化后的便签摘要
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method getFormattedSnippet
|
|
|
|
|
* @description 格式化笔记摘要。根据传入的笔记摘要字符串,去除首尾空白字符,然后查找第一个换行符,如果存在换行符,则截取换行符之
|
|
|
|
|
前的内容作为格式化后的摘要。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:格式化笔记摘要。根据传入的笔记摘要字符串,去除首尾空白字符,然后查找第一个换行符,如果存在换行符,则截取换行符之
|
|
|
|
|
前的内容作为格式化后的摘要。
|
|
|
|
|
参数:
|
|
|
|
|
snippet:笔记摘要字符串。
|
|
|
|
|
返回值:格式化后的笔记摘要字符串。
|
|
|
|
|
*/
|
|
|
|
|
public static String getFormattedSnippet(String snippet) {
|
|
|
|
|
if (snippet != null) {
|
|
|
|
|
snippet = snippet.trim();
|
|
|
|
|
int index = snippet.indexOf('\n');
|
|
|
|
|
if (index != -1) {
|
|
|
|
|
snippet = snippet.substring(0, index);
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
}
|
|
|
|
|
return snippet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/**
|
|
|
|
|
* 在数据库中搜索包含指定查询内容的便签。
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
@ -387,4 +805,34 @@ public class DataUtils {
|
|
|
|
|
null);
|
|
|
|
|
return cursor;
|
|
|
|
|
}
|
|
|
|
|
=======
|
|
|
|
|
/**
|
|
|
|
|
* 在数据库中搜索包含指定查询内容的便签
|
|
|
|
|
* @param resolver ContentResolver对象
|
|
|
|
|
* @param query 查询内容
|
|
|
|
|
* @return 包含查询结果的Cursor对象
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @method searchInNoteDatabase
|
|
|
|
|
* @description 在笔记数据库中搜索。根据传入的查询字符串,查询数据表,获取内容包含查询字符串的笔记 ID。返回查询结果的 Cursor 对象。
|
|
|
|
|
* @author: 齐景熙
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
功能介绍:在笔记数据库中搜索。根据传入的查询字符串,查询数据表,获取内容包含查询字符串的笔记 ID。返回查询结果的 Cursor 对象。
|
|
|
|
|
参数:
|
|
|
|
|
resolver:内容解析器,用于访问内容提供者。
|
|
|
|
|
query:查询字符串。
|
|
|
|
|
返回值:查询结果的 Cursor 对象。
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
public static Cursor searchInNoteDatabase(ContentResolver resolver, String query) {
|
|
|
|
|
Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI,
|
|
|
|
|
new String[]{NoteColumns.ID},
|
|
|
|
|
Notes.DataColumns.CONTENT + " LIKE'%" + query +"%'",
|
|
|
|
|
null,
|
|
|
|
|
null);
|
|
|
|
|
return cursor;
|
|
|
|
|
>>>>>>> 623b8465a7bfcf05a3ca2ec250315ad6977a9eb0
|
|
|
|
|
}
|