lbssad 3 months ago
parent b1be227bc1
commit 9c03da5961

@ -525,19 +525,21 @@ public class NoteEditActivity extends Activity implements OnClickListener,
break;
// 其他菜单项处理...
case R.id.menu_delete:
// 用户点击删除菜单项
// 弹出确认删除对话框
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.alert_title_delete));
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage(getString(R.string.alert_message_delete_note));
builder.setPositiveButton(android.R.string.ok,
builder.setTitle(getString(R.string.alert_title_delete));// 设置对话框标题
builder.setIcon(android.R.drawable.ic_dialog_alert);// 设置对话框图标
builder.setMessage(getString(R.string.alert_message_delete_note));//设置对话框消息
builder.setPositiveButton(android.R.string.ok,// 设置“确定”按钮
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
deleteCurrentNote();
finish();
deleteCurrentNote(); // 调用删除便签方法
finish();// 结束当前活动
}
});
builder.setNegativeButton(android.R.string.cancel, null);
builder.show();
builder.setNegativeButton(android.R.string.cancel, null);// 设置“取消”按钮
builder.show();// 显示对话框
break;
case R.id.menu_font_size:
mFontSizeSelector.setVisibility(View.VISIBLE);
@ -602,25 +604,29 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
private void deleteCurrentNote() {
if (mWorkingNote.existInDatabase()) {
HashSet<Long> ids = new HashSet<Long>();
long id = mWorkingNote.getNoteId();
if (id != Notes.ID_ROOT_FOLDER) {
ids.add(id);
if (mWorkingNote.existInDatabase()) {// 检查便签是否存在于数据库中
HashSet<Long> ids = new HashSet<Long>();// 创建一个集合存储要删除的便签ID
long id = mWorkingNote.getNoteId();// 获取当前编辑的便签ID
if (id != Notes.ID_ROOT_FOLDER) {// 排除根文件夹ID非法ID
ids.add(id);// 将便签ID添加到集合中
} else {
Log.d(TAG, "Wrong note id, should not happen");
// 日志记录,不应该出现的情况
}
if (!isSyncMode()) {
if (!isSyncMode()) {// 判断是否处于同步模式
if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) {
Log.e(TAG, "Delete Note error");
// 调用工具类批量删除便签
Log.e(TAG, "Delete Note error");// 删除失败,记录错误日志
}
} else {
if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLER)) {
// 同步模式下,将便签移动到回收站文件夹
Log.e(TAG, "Move notes to trash folder error, should not happens");
// 移动失败,记录错误日志
}
}
}
mWorkingNote.markDeleted(true);
mWorkingNote.markDeleted(true);// 标记便签为已删除
}
private boolean isSyncMode() {

@ -216,10 +216,11 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
}
public void createNoteTable(SQLiteDatabase db) {
db.execSQL(CREATE_NOTE_TABLE_SQL);
reCreateNoteTableTriggers(db);
createSystemFolder(db);
db.execSQL(CREATE_NOTE_TABLE_SQL);// 执行创建便签表的SQL语句
reCreateNoteTableTriggers(db);// 重新创建便签表的触发器
createSystemFolder(db);// 创建系统文件夹
Log.d(TAG, "note table has been created");
// 日志记录,便签表创建完成
}
private void reCreateNoteTableTriggers(SQLiteDatabase db) {
@ -276,10 +277,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
}
public void createDataTable(SQLiteDatabase db) {
db.execSQL(CREATE_DATA_TABLE_SQL);
reCreateDataTableTriggers(db);
db.execSQL(CREATE_DATA_NOTE_ID_INDEX_SQL);
Log.d(TAG, "data table has been created");
db.execSQL(CREATE_DATA_TABLE_SQL);// 执行创建数据表的SQL语句
reCreateDataTableTriggers(db); // 重新创建数据表的触发器
db.execSQL(CREATE_DATA_NOTE_ID_INDEX_SQL);// 创建数据表的索引
Log.d(TAG, "data table has been created"); // 日志记录,数据表创建完成
}
private void reCreateDataTableTriggers(SQLiteDatabase db) {
@ -301,8 +302,8 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {
createNoteTable(db);
createDataTable(db);
createNoteTable(db);// 创建便签表
createDataTable(db);// 创建数据表
}
@Override

@ -192,15 +192,17 @@ public class NotesProvider extends ContentProvider {
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
int count = 0;
String id = null;
int count = 0;// 用于记录删除的数据条数
String id = null;// 用于存储从Uri中解析出的ID
SQLiteDatabase db = mHelper.getWritableDatabase();
boolean deleteData = false;
switch (mMatcher.match(uri)) {
// 获取可写的数据库对象
boolean deleteData = false;// 标记是否需要删除数据表中的记录
switch (mMatcher.match(uri)) { // 根据Uri匹配对应的处理逻辑
case URI_NOTE:
// 更新所有匹配条件的便签
selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 ";
count = db.delete(TABLE.NOTE, selection, selectionArgs);
// 执行删除操作
break;
case URI_NOTE_ITEM:
// 更新单个便签
@ -215,28 +217,30 @@ public class NotesProvider extends ContentProvider {
}
count = db.delete(TABLE.NOTE,
NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs);
// 删除便签表中的记录
break;
case URI_DATA:
count = db.delete(TABLE.DATA, selection, selectionArgs);
deleteData = true;
deleteData = true;// 标记需要删除数据表中的记录
break;
case URI_DATA_ITEM:
id = uri.getPathSegments().get(1);
count = db.delete(TABLE.DATA,
DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs);
deleteData = true;
// 删除数据表中的记录
deleteData = true; // 标记需要删除数据表中的记录
break;
default:
throw new IllegalArgumentException("Unknown URI " + uri);
}
//通知数据变化
if (count > 0) {
if (deleteData) {
if (deleteData) {// 如果删除了数据表中的记录
getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null);
}
getContext().getContentResolver().notifyChange(uri, null);
}
return count;
return count;// 返回删除的记录数
}
@Override

Loading…
Cancel
Save