From 9c03da5961dd1061e3399b3f437077f4e0bdc839 Mon Sep 17 00:00:00 2001 From: lbssad Date: Sun, 13 Apr 2025 23:06:48 +0800 Subject: [PATCH] new --- src/NoteEditActivity.java | 38 +++++++++++++++++++++--------------- src/NotesDatabaseHelper.java | 19 +++++++++--------- src/NotesProvider.java | 20 +++++++++++-------- 3 files changed, 44 insertions(+), 33 deletions(-) diff --git a/src/NoteEditActivity.java b/src/NoteEditActivity.java index f6bed26..b33541d 100644 --- a/src/NoteEditActivity.java +++ b/src/NoteEditActivity.java @@ -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 ids = new HashSet(); - long id = mWorkingNote.getNoteId(); - if (id != Notes.ID_ROOT_FOLDER) { - ids.add(id); + if (mWorkingNote.existInDatabase()) {// 检查便签是否存在于数据库中 + HashSet ids = new HashSet();// 创建一个集合存储要删除的便签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() { diff --git a/src/NotesDatabaseHelper.java b/src/NotesDatabaseHelper.java index b9cbdc8..372ae77 100644 --- a/src/NotesDatabaseHelper.java +++ b/src/NotesDatabaseHelper.java @@ -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 diff --git a/src/NotesProvider.java b/src/NotesProvider.java index af91299..24e5a6b 100644 --- a/src/NotesProvider.java +++ b/src/NotesProvider.java @@ -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