diff --git a/doc/小米便签维护方案及成果报告.docx b/doc/小米便签维护方案及成果报告.docx new file mode 100644 index 0000000..f8215a0 Binary files /dev/null and b/doc/小米便签维护方案及成果报告.docx differ diff --git a/src/Notes1/app/src/main/java/net/micode/notes/ui/NotesListActivity.java b/src/Notes1/app/src/main/java/net/micode/notes/ui/NotesListActivity.java index bd2b8e0..8fcd915 100644 --- a/src/Notes1/app/src/main/java/net/micode/notes/ui/NotesListActivity.java +++ b/src/Notes1/app/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -115,7 +115,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction"; private enum ListEditState { - NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER, PRIVATE_FOLDER + NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER, PRIVATE_FOLDER, TRASH_FOLDER }; private ListEditState mState; @@ -581,7 +581,10 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt folderId); if (!isSyncMode()) { // if not synced, delete folder directly - DataUtils.batchDeleteNotes(mContentResolver, ids); + DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLER); + if (mState == ListEditState.TRASH_FOLDER){ + DataUtils.batchDeleteNotes(mContentResolver, ids); + } } else { // in sync mode, we'll move the deleted folder into the trash folder DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLER); @@ -756,6 +759,12 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt startAsyncNotesListQuery(); mTitleBar.setVisibility(View.GONE); break; + case TRASH_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + startAsyncNotesListQuery(); + mTitleBar.setVisibility(View.GONE); + break; default: break; } @@ -851,6 +860,8 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt getMenuInflater().inflate(R.menu.call_record_folder, menu); }else if (mState == ListEditState.PRIVATE_FOLDER){ getMenuInflater().inflate(R.menu.private_folder, menu); + }else if (mState == ListEditState.TRASH_FOLDER){ + getMenuInflater().inflate(R.menu.trash_folder, menu); } else { Log.e(TAG, "Wrong state:" + mState); } @@ -933,7 +944,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } private void restoreDeletedNodes(){ - mState = ListEditState.SUB_FOLDER; + mState = ListEditState.TRASH_FOLDER; mCurrentFolderId = Notes.ID_TRASH_FOLER; startAsyncNotesListQuery(); mTitleBar.setText("回收站"); @@ -1150,6 +1161,16 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt Log.e(TAG, "Wrong note type in SUB_FOLDER"); } break; + case TRASH_FOLDER: + if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else if (item.getType() == Notes.TYPE_FOLDER + || item.getType() == Notes.TYPE_SYSTEM) { + openFolder(item); + } else { + Log.e(TAG, "Wrong note type in PRIVATE_FOLDER"); + } + break; case PRIVATE_FOLDER: if (item.getType() == Notes.TYPE_NOTE) { openNode(item); diff --git a/src/Notes1/app/src/main/res/menu/note_list.xml b/src/Notes1/app/src/main/res/menu/note_list.xml index 289b960..f7a6074 100644 --- a/src/Notes1/app/src/main/res/menu/note_list.xml +++ b/src/Notes1/app/src/main/res/menu/note_list.xml @@ -42,8 +42,8 @@ android:title="Private Folder"/> + android:title="Change Background"/> + android:title="Trash Bin"/> diff --git a/src/Notes1/app/src/main/res/menu/trash_folder.xml b/src/Notes1/app/src/main/res/menu/trash_folder.xml new file mode 100644 index 0000000..fe187c0 --- /dev/null +++ b/src/Notes1/app/src/main/res/menu/trash_folder.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file