lbssad 3 months ago
parent b1be227bc1
commit 9c03da5961

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

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

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

Loading…
Cancel
Save