From b6e985cf997635ec91b262ee9cb4be6c90888016 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AD=90=E7=91=9C?= Date: Wed, 14 May 2025 11:56:42 +0800 Subject: [PATCH] lzy --- .../micode/notes/ExampleInstrumentedTest.java | 26 + src/src/main/AndroidManifest.xml | 157 +++ .../net/micode/notes/.scannerwork/.sonar_lock | 0 .../micode/notes/.scannerwork/report-task.txt | 6 + .../java/net/micode/notes/MainActivity.java | 24 + .../java/net/micode/notes/data/Contact.java | 73 ++ .../java/net/micode/notes/data/Notes.java | 279 +++++ .../notes/data/NotesDatabaseHelper.java | 362 +++++++ .../net/micode/notes/data/NotesProvider.java | 305 ++++++ .../net/micode/notes/gtask/data/MetaData.java | 82 ++ .../net/micode/notes/gtask/data/Node.java | 101 ++ .../net/micode/notes/gtask/data/SqlData.java | 189 ++++ .../net/micode/notes/gtask/data/SqlNote.java | 505 +++++++++ .../net/micode/notes/gtask/data/Task.java | 351 +++++++ .../net/micode/notes/gtask/data/TaskList.java | 343 ++++++ .../exception/ActionFailureException.java | 33 + .../exception/NetworkFailureException.java | 33 + .../notes/gtask/remote/GTaskASyncTask.java | 125 +++ .../notes/gtask/remote/GTaskClient.java | 585 +++++++++++ .../notes/gtask/remote/GTaskManager.java | 800 ++++++++++++++ .../notes/gtask/remote/GTaskSyncService.java | 128 +++ .../java/net/micode/notes/model/Note.java | 253 +++++ .../net/micode/notes/model/WorkingNote.java | 368 +++++++ .../net/micode/notes/sonar-project.properties | 15 + .../net/micode/notes/tool/BackupUtils.java | 344 ++++++ .../java/net/micode/notes/tool/DataUtils.java | 295 ++++++ .../micode/notes/tool/GTaskStringUtils.java | 113 ++ .../net/micode/notes/tool/ResourceParser.java | 181 ++++ .../micode/notes/ui/AlarmAlertActivity.java | 158 +++ .../micode/notes/ui/AlarmInitReceiver.java | 65 ++ .../net/micode/notes/ui/AlarmReceiver.java | 30 + .../net/micode/notes/ui/DateTimePicker.java | 485 +++++++++ .../micode/notes/ui/DateTimePickerDialog.java | 90 ++ .../net/micode/notes/ui/DropdownMenu.java | 61 ++ .../micode/notes/ui/FoldersListAdapter.java | 80 ++ .../net/micode/notes/ui/NoteEditActivity.java | 873 ++++++++++++++++ .../net/micode/notes/ui/NoteEditText.java | 217 ++++ .../net/micode/notes/ui/NoteItemData.java | 224 ++++ .../micode/notes/ui/NotesListActivity.java | 984 ++++++++++++++++++ .../net/micode/notes/ui/NotesListAdapter.java | 184 ++++ .../net/micode/notes/ui/NotesListItem.java | 122 +++ .../notes/ui/NotesPreferenceActivity.java | 388 +++++++ .../notes/widget/NoteWidgetProvider.java | 132 +++ .../notes/widget/NoteWidgetProvider_2x.java | 47 + .../notes/widget/NoteWidgetProvider_4x.java | 46 + src/src/main/res/color/primary_text_dark.xml | 22 + .../main/res/color/secondary_text_dark.xml | 20 + .../res/drawable-hdpi/bg_btn_set_color.png | Bin 0 -> 3588 bytes .../res/drawable-hdpi/bg_color_btn_mask.png | Bin 0 -> 245 bytes .../main/res/drawable-hdpi/call_record.png | Bin 0 -> 3533 bytes src/src/main/res/drawable-hdpi/clock.png | Bin 0 -> 3958 bytes src/src/main/res/drawable-hdpi/delete.png | Bin 0 -> 3490 bytes .../res/drawable-hdpi/dropdown_icon.9.png | Bin 0 -> 443 bytes .../main/res/drawable-hdpi/edit_blue.9.png | Bin 0 -> 3524 bytes .../main/res/drawable-hdpi/edit_green.9.png | Bin 0 -> 3565 bytes src/src/main/res/drawable-hdpi/edit_red.9.png | Bin 0 -> 3458 bytes .../res/drawable-hdpi/edit_title_blue.9.png | Bin 0 -> 5100 bytes .../res/drawable-hdpi/edit_title_green.9.png | Bin 0 -> 5627 bytes .../res/drawable-hdpi/edit_title_red.9.png | Bin 0 -> 5061 bytes .../res/drawable-hdpi/edit_title_white.9.png | Bin 0 -> 3866 bytes .../res/drawable-hdpi/edit_title_yellow.9.png | Bin 0 -> 6000 bytes .../main/res/drawable-hdpi/edit_white.9.png | Bin 0 -> 3441 bytes .../main/res/drawable-hdpi/edit_yellow.9.png | Bin 0 -> 3634 bytes src/src/main/res/drawable-hdpi/font_large.png | Bin 0 -> 3161 bytes .../main/res/drawable-hdpi/font_normal.png | Bin 0 -> 3097 bytes .../drawable-hdpi/font_size_selector_bg.9.png | Bin 0 -> 4101 bytes src/src/main/res/drawable-hdpi/font_small.png | Bin 0 -> 3099 bytes src/src/main/res/drawable-hdpi/font_super.png | Bin 0 -> 3188 bytes src/src/main/res/drawable-hdpi/hui.jpg | Bin 0 -> 61974 bytes src/src/main/res/drawable-hdpi/icon_app.png | Bin 0 -> 6887 bytes src/src/main/res/drawable-hdpi/lan.jpg | Bin 0 -> 110231 bytes .../res/drawable-hdpi/list_background.png | Bin 0 -> 567323 bytes .../res/drawable-hdpi/list_blue_down.9.png | Bin 0 -> 4361 bytes .../res/drawable-hdpi/list_blue_middle.9.png | Bin 0 -> 3099 bytes .../res/drawable-hdpi/list_blue_single.9.png | Bin 0 -> 4618 bytes .../main/res/drawable-hdpi/list_blue_up.9.png | Bin 0 -> 3301 bytes .../main/res/drawable-hdpi/list_folder.9.png | Bin 0 -> 5608 bytes .../res/drawable-hdpi/list_footer_bg.9.png | Bin 0 -> 2837 bytes .../res/drawable-hdpi/list_green_down.9.png | Bin 0 -> 4488 bytes .../res/drawable-hdpi/list_green_middle.9.png | Bin 0 -> 3179 bytes .../res/drawable-hdpi/list_green_single.9.png | Bin 0 -> 4728 bytes .../res/drawable-hdpi/list_green_up.9.png | Bin 0 -> 3351 bytes .../res/drawable-hdpi/list_red_down.9.png | Bin 0 -> 4307 bytes .../res/drawable-hdpi/list_red_middle.9.png | Bin 0 -> 3075 bytes .../res/drawable-hdpi/list_red_single.9.png | Bin 0 -> 4565 bytes .../main/res/drawable-hdpi/list_red_up.9.png | Bin 0 -> 3277 bytes .../res/drawable-hdpi/list_white_down.9.png | Bin 0 -> 4305 bytes .../res/drawable-hdpi/list_white_middle.9.png | Bin 0 -> 3042 bytes .../res/drawable-hdpi/list_white_single.9.png | Bin 0 -> 4546 bytes .../res/drawable-hdpi/list_white_up.9.png | Bin 0 -> 3220 bytes .../res/drawable-hdpi/list_yellow_down.9.png | Bin 0 -> 4420 bytes .../drawable-hdpi/list_yellow_middle.9.png | Bin 0 -> 3150 bytes .../drawable-hdpi/list_yellow_single.9.png | Bin 0 -> 4670 bytes .../res/drawable-hdpi/list_yellow_up.9.png | Bin 0 -> 3335 bytes .../main/res/drawable-hdpi/menu_delete.png | Bin 0 -> 3426 bytes src/src/main/res/drawable-hdpi/menu_falus.png | Bin 0 -> 509197 bytes src/src/main/res/drawable-hdpi/menu_fly.png | Bin 0 -> 1676067 bytes src/src/main/res/drawable-hdpi/menu_move.png | Bin 0 -> 3294 bytes src/src/main/res/drawable-hdpi/menu_pink.png | Bin 0 -> 3783875 bytes .../res/drawable-hdpi/new_note_normal.png | Bin 0 -> 89221 bytes .../res/drawable-hdpi/new_note_pressed.png | Bin 0 -> 90126 bytes .../note_edit_color_selector_panel.png | Bin 0 -> 7030 bytes .../main/res/drawable-hdpi/notification.png | Bin 0 -> 3107 bytes .../main/res/drawable-hdpi/search_result.png | Bin 0 -> 3030 bytes src/src/main/res/drawable-hdpi/selected.png | Bin 0 -> 4959 bytes .../main/res/drawable-hdpi/title_alert.png | Bin 0 -> 3696 bytes .../main/res/drawable-hdpi/title_bar_bg.9.png | Bin 0 -> 5970 bytes .../main/res/drawable-hdpi/widget_2x_blue.png | Bin 0 -> 1946 bytes .../res/drawable-hdpi/widget_2x_green.png | Bin 0 -> 1954 bytes .../main/res/drawable-hdpi/widget_2x_red.png | Bin 0 -> 1892 bytes .../res/drawable-hdpi/widget_2x_white.png | Bin 0 -> 1901 bytes .../res/drawable-hdpi/widget_2x_yellow.png | Bin 0 -> 1978 bytes .../main/res/drawable-hdpi/widget_4x_blue.png | Bin 0 -> 4165 bytes .../res/drawable-hdpi/widget_4x_green.png | Bin 0 -> 4192 bytes .../main/res/drawable-hdpi/widget_4x_red.png | Bin 0 -> 4223 bytes .../res/drawable-hdpi/widget_4x_white.png | Bin 0 -> 4106 bytes .../res/drawable-hdpi/widget_4x_yellow.png | Bin 0 -> 4199 bytes src/src/main/res/drawable-hdpi/xi.jpg | Bin 0 -> 99536 bytes .../res/drawable/ic_launcher_background.xml | 170 +++ .../res/drawable/ic_launcher_foreground.xml | 30 + src/src/main/res/drawable/new_note.xml | 23 + .../main/res/layout/account_dialog_title.xml | 43 + src/src/main/res/layout/activity_main.xml | 19 + src/src/main/res/layout/add_account_text.xml | 32 + src/src/main/res/layout/datetime_picker.xml | 56 + src/src/main/res/layout/dialog_edit_text.xml | 23 + src/src/main/res/layout/folder_list_item.xml | 29 + src/src/main/res/layout/note_edit.xml | 400 +++++++ .../main/res/layout/note_edit_list_item.xml | 39 + src/src/main/res/layout/note_item.xml | 78 ++ src/src/main/res/layout/note_list.xml | 58 ++ .../res/layout/note_list_dropdown_menu.xml | 32 + src/src/main/res/layout/note_list_footer.xml | 24 + src/src/main/res/layout/settings_header.xml | 41 + src/src/main/res/layout/widget_2x.xml | 37 + src/src/main/res/layout/widget_4x.xml | 39 + src/src/main/res/menu/call_note_edit.xml | 48 + src/src/main/res/menu/call_record_folder.xml | 23 + src/src/main/res/menu/note_edit.xml | 52 + src/src/main/res/menu/note_list.xml | 51 + src/src/main/res/menu/note_list_dropdown.xml | 20 + src/src/main/res/menu/note_list_options.xml | 31 + src/src/main/res/menu/sub_folder.xml | 24 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + src/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes src/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes src/src/main/res/raw-zh-rCN/introduction | 7 + src/src/main/res/raw/introduction | 1 + src/src/main/res/values-night/themes.xml | 7 + src/src/main/res/values-zh-rCN/arrays.xml | 23 + src/src/main/res/values-zh-rCN/strings.xml | 126 +++ src/src/main/res/values-zh-rTW/arrays.xml | 23 + src/src/main/res/values-zh-rTW/strings.xml | 127 +++ src/src/main/res/values/arrays.xml | 31 + src/src/main/res/values/colors.xml | 20 + src/src/main/res/values/dimens.xml | 24 + src/src/main/res/values/strings.xml | 142 +++ src/src/main/res/values/styles.xml | 70 ++ src/src/main/res/values/themes.xml | 9 + src/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + src/src/main/res/xml/preferences.xml | 30 + src/src/main/res/xml/searchable.xml | 27 + src/src/main/res/xml/widget_2x_info.xml | 23 + src/src/main/res/xml/widget_4x_info.xml | 23 + .../net/micode/notes/ExampleUnitTest.java | 17 + 175 files changed, 12500 insertions(+) create mode 100644 src/src/androidTest/java/net/micode/notes/ExampleInstrumentedTest.java create mode 100644 src/src/main/AndroidManifest.xml create mode 100644 src/src/main/java/net/micode/notes/.scannerwork/.sonar_lock create mode 100644 src/src/main/java/net/micode/notes/.scannerwork/report-task.txt create mode 100644 src/src/main/java/net/micode/notes/MainActivity.java create mode 100644 src/src/main/java/net/micode/notes/data/Contact.java create mode 100644 src/src/main/java/net/micode/notes/data/Notes.java create mode 100644 src/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java create mode 100644 src/src/main/java/net/micode/notes/data/NotesProvider.java create mode 100644 src/src/main/java/net/micode/notes/gtask/data/MetaData.java create mode 100644 src/src/main/java/net/micode/notes/gtask/data/Node.java create mode 100644 src/src/main/java/net/micode/notes/gtask/data/SqlData.java create mode 100644 src/src/main/java/net/micode/notes/gtask/data/SqlNote.java create mode 100644 src/src/main/java/net/micode/notes/gtask/data/Task.java create mode 100644 src/src/main/java/net/micode/notes/gtask/data/TaskList.java create mode 100644 src/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java create mode 100644 src/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java create mode 100644 src/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java create mode 100644 src/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java create mode 100644 src/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java create mode 100644 src/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java create mode 100644 src/src/main/java/net/micode/notes/model/Note.java create mode 100644 src/src/main/java/net/micode/notes/model/WorkingNote.java create mode 100644 src/src/main/java/net/micode/notes/sonar-project.properties create mode 100644 src/src/main/java/net/micode/notes/tool/BackupUtils.java create mode 100644 src/src/main/java/net/micode/notes/tool/DataUtils.java create mode 100644 src/src/main/java/net/micode/notes/tool/GTaskStringUtils.java create mode 100644 src/src/main/java/net/micode/notes/tool/ResourceParser.java create mode 100644 src/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java create mode 100644 src/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java create mode 100644 src/src/main/java/net/micode/notes/ui/AlarmReceiver.java create mode 100644 src/src/main/java/net/micode/notes/ui/DateTimePicker.java create mode 100644 src/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java create mode 100644 src/src/main/java/net/micode/notes/ui/DropdownMenu.java create mode 100644 src/src/main/java/net/micode/notes/ui/FoldersListAdapter.java create mode 100644 src/src/main/java/net/micode/notes/ui/NoteEditActivity.java create mode 100644 src/src/main/java/net/micode/notes/ui/NoteEditText.java create mode 100644 src/src/main/java/net/micode/notes/ui/NoteItemData.java create mode 100644 src/src/main/java/net/micode/notes/ui/NotesListActivity.java create mode 100644 src/src/main/java/net/micode/notes/ui/NotesListAdapter.java create mode 100644 src/src/main/java/net/micode/notes/ui/NotesListItem.java create mode 100644 src/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java create mode 100644 src/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java create mode 100644 src/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java create mode 100644 src/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java create mode 100644 src/src/main/res/color/primary_text_dark.xml create mode 100644 src/src/main/res/color/secondary_text_dark.xml create mode 100644 src/src/main/res/drawable-hdpi/bg_btn_set_color.png create mode 100644 src/src/main/res/drawable-hdpi/bg_color_btn_mask.png create mode 100644 src/src/main/res/drawable-hdpi/call_record.png create mode 100644 src/src/main/res/drawable-hdpi/clock.png create mode 100644 src/src/main/res/drawable-hdpi/delete.png create mode 100644 src/src/main/res/drawable-hdpi/dropdown_icon.9.png create mode 100644 src/src/main/res/drawable-hdpi/edit_blue.9.png create mode 100644 src/src/main/res/drawable-hdpi/edit_green.9.png create mode 100644 src/src/main/res/drawable-hdpi/edit_red.9.png create mode 100644 src/src/main/res/drawable-hdpi/edit_title_blue.9.png create mode 100644 src/src/main/res/drawable-hdpi/edit_title_green.9.png create mode 100644 src/src/main/res/drawable-hdpi/edit_title_red.9.png create mode 100644 src/src/main/res/drawable-hdpi/edit_title_white.9.png create mode 100644 src/src/main/res/drawable-hdpi/edit_title_yellow.9.png create mode 100644 src/src/main/res/drawable-hdpi/edit_white.9.png create mode 100644 src/src/main/res/drawable-hdpi/edit_yellow.9.png create mode 100644 src/src/main/res/drawable-hdpi/font_large.png create mode 100644 src/src/main/res/drawable-hdpi/font_normal.png create mode 100644 src/src/main/res/drawable-hdpi/font_size_selector_bg.9.png create mode 100644 src/src/main/res/drawable-hdpi/font_small.png create mode 100644 src/src/main/res/drawable-hdpi/font_super.png create mode 100644 src/src/main/res/drawable-hdpi/hui.jpg create mode 100644 src/src/main/res/drawable-hdpi/icon_app.png create mode 100644 src/src/main/res/drawable-hdpi/lan.jpg create mode 100644 src/src/main/res/drawable-hdpi/list_background.png create mode 100644 src/src/main/res/drawable-hdpi/list_blue_down.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_blue_middle.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_blue_single.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_blue_up.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_folder.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_footer_bg.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_green_down.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_green_middle.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_green_single.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_green_up.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_red_down.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_red_middle.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_red_single.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_red_up.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_white_down.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_white_middle.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_white_single.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_white_up.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_yellow_down.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_yellow_middle.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_yellow_single.9.png create mode 100644 src/src/main/res/drawable-hdpi/list_yellow_up.9.png create mode 100644 src/src/main/res/drawable-hdpi/menu_delete.png create mode 100644 src/src/main/res/drawable-hdpi/menu_falus.png create mode 100644 src/src/main/res/drawable-hdpi/menu_fly.png create mode 100644 src/src/main/res/drawable-hdpi/menu_move.png create mode 100644 src/src/main/res/drawable-hdpi/menu_pink.png create mode 100644 src/src/main/res/drawable-hdpi/new_note_normal.png create mode 100644 src/src/main/res/drawable-hdpi/new_note_pressed.png create mode 100644 src/src/main/res/drawable-hdpi/note_edit_color_selector_panel.png create mode 100644 src/src/main/res/drawable-hdpi/notification.png create mode 100644 src/src/main/res/drawable-hdpi/search_result.png create mode 100644 src/src/main/res/drawable-hdpi/selected.png create mode 100644 src/src/main/res/drawable-hdpi/title_alert.png create mode 100644 src/src/main/res/drawable-hdpi/title_bar_bg.9.png create mode 100644 src/src/main/res/drawable-hdpi/widget_2x_blue.png create mode 100644 src/src/main/res/drawable-hdpi/widget_2x_green.png create mode 100644 src/src/main/res/drawable-hdpi/widget_2x_red.png create mode 100644 src/src/main/res/drawable-hdpi/widget_2x_white.png create mode 100644 src/src/main/res/drawable-hdpi/widget_2x_yellow.png create mode 100644 src/src/main/res/drawable-hdpi/widget_4x_blue.png create mode 100644 src/src/main/res/drawable-hdpi/widget_4x_green.png create mode 100644 src/src/main/res/drawable-hdpi/widget_4x_red.png create mode 100644 src/src/main/res/drawable-hdpi/widget_4x_white.png create mode 100644 src/src/main/res/drawable-hdpi/widget_4x_yellow.png create mode 100644 src/src/main/res/drawable-hdpi/xi.jpg create mode 100644 src/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 src/src/main/res/drawable/new_note.xml create mode 100644 src/src/main/res/layout/account_dialog_title.xml create mode 100644 src/src/main/res/layout/activity_main.xml create mode 100644 src/src/main/res/layout/add_account_text.xml create mode 100644 src/src/main/res/layout/datetime_picker.xml create mode 100644 src/src/main/res/layout/dialog_edit_text.xml create mode 100644 src/src/main/res/layout/folder_list_item.xml create mode 100644 src/src/main/res/layout/note_edit.xml create mode 100644 src/src/main/res/layout/note_edit_list_item.xml create mode 100644 src/src/main/res/layout/note_item.xml create mode 100644 src/src/main/res/layout/note_list.xml create mode 100644 src/src/main/res/layout/note_list_dropdown_menu.xml create mode 100644 src/src/main/res/layout/note_list_footer.xml create mode 100644 src/src/main/res/layout/settings_header.xml create mode 100644 src/src/main/res/layout/widget_2x.xml create mode 100644 src/src/main/res/layout/widget_4x.xml create mode 100644 src/src/main/res/menu/call_note_edit.xml create mode 100644 src/src/main/res/menu/call_record_folder.xml create mode 100644 src/src/main/res/menu/note_edit.xml create mode 100644 src/src/main/res/menu/note_list.xml create mode 100644 src/src/main/res/menu/note_list_dropdown.xml create mode 100644 src/src/main/res/menu/note_list_options.xml create mode 100644 src/src/main/res/menu/sub_folder.xml create mode 100644 src/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src/src/main/res/raw-zh-rCN/introduction create mode 100644 src/src/main/res/raw/introduction create mode 100644 src/src/main/res/values-night/themes.xml create mode 100644 src/src/main/res/values-zh-rCN/arrays.xml create mode 100644 src/src/main/res/values-zh-rCN/strings.xml create mode 100644 src/src/main/res/values-zh-rTW/arrays.xml create mode 100644 src/src/main/res/values-zh-rTW/strings.xml create mode 100644 src/src/main/res/values/arrays.xml create mode 100644 src/src/main/res/values/colors.xml create mode 100644 src/src/main/res/values/dimens.xml create mode 100644 src/src/main/res/values/strings.xml create mode 100644 src/src/main/res/values/styles.xml create mode 100644 src/src/main/res/values/themes.xml create mode 100644 src/src/main/res/xml/backup_rules.xml create mode 100644 src/src/main/res/xml/data_extraction_rules.xml create mode 100644 src/src/main/res/xml/preferences.xml create mode 100644 src/src/main/res/xml/searchable.xml create mode 100644 src/src/main/res/xml/widget_2x_info.xml create mode 100644 src/src/main/res/xml/widget_4x_info.xml create mode 100644 src/src/test/java/net/micode/notes/ExampleUnitTest.java diff --git a/src/src/androidTest/java/net/micode/notes/ExampleInstrumentedTest.java b/src/src/androidTest/java/net/micode/notes/ExampleInstrumentedTest.java new file mode 100644 index 0000000..a889a75 --- /dev/null +++ b/src/src/androidTest/java/net/micode/notes/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package net.micode.notes; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("net.micode.notes", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/src/src/main/AndroidManifest.xml b/src/src/main/AndroidManifest.xml new file mode 100644 index 0000000..11e5950 --- /dev/null +++ b/src/src/main/AndroidManifest.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/src/main/java/net/micode/notes/.scannerwork/.sonar_lock b/src/src/main/java/net/micode/notes/.scannerwork/.sonar_lock new file mode 100644 index 0000000..e69de29 diff --git a/src/src/main/java/net/micode/notes/.scannerwork/report-task.txt b/src/src/main/java/net/micode/notes/.scannerwork/report-task.txt new file mode 100644 index 0000000..2e2b9f0 --- /dev/null +++ b/src/src/main/java/net/micode/notes/.scannerwork/report-task.txt @@ -0,0 +1,6 @@ +projectKey=Notes-master +serverUrl=http://localhost:9000 +serverVersion=25.3.0.104237 +dashboardUrl=http://localhost:9000/dashboard?id=Notes-master +ceTaskId=c4d5bd90-f8b0-4c36-a97d-44ca6dd019eb +ceTaskUrl=http://localhost:9000/api/ce/task?id=c4d5bd90-f8b0-4c36-a97d-44ca6dd019eb diff --git a/src/src/main/java/net/micode/notes/MainActivity.java b/src/src/main/java/net/micode/notes/MainActivity.java new file mode 100644 index 0000000..8091753 --- /dev/null +++ b/src/src/main/java/net/micode/notes/MainActivity.java @@ -0,0 +1,24 @@ +package net.micode.notes; + +import android.os.Bundle; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + setContentView(R.layout.activity_main); + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + return insets; + }); + } +} \ No newline at end of file diff --git a/src/src/main/java/net/micode/notes/data/Contact.java b/src/src/main/java/net/micode/notes/data/Contact.java new file mode 100644 index 0000000..d97ac5d --- /dev/null +++ b/src/src/main/java/net/micode/notes/data/Contact.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.content.Context; +import android.database.Cursor; +import android.provider.ContactsContract.CommonDataKinds.Phone; +import android.provider.ContactsContract.Data; +import android.telephony.PhoneNumberUtils; +import android.util.Log; + +import java.util.HashMap; + +public class Contact { + private static HashMap sContactCache; + private static final String TAG = "Contact"; + + private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER + + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'" + + " AND " + Data.RAW_CONTACT_ID + " IN " + + "(SELECT raw_contact_id " + + " FROM phone_lookup" + + " WHERE min_match = '+')"; + + public static String getContact(Context context, String phoneNumber) { + if(sContactCache == null) { + sContactCache = new HashMap(); + } + + if(sContactCache.containsKey(phoneNumber)) { + return sContactCache.get(phoneNumber); + } + + String selection = CALLER_ID_SELECTION.replace("+", + PhoneNumberUtils.toCallerIDMinMatch(phoneNumber)); + Cursor cursor = context.getContentResolver().query( + Data.CONTENT_URI, + new String [] { Phone.DISPLAY_NAME }, + selection, + new String[] { phoneNumber }, + null); + + if (cursor != null && cursor.moveToFirst()) { + try { + String name = cursor.getString(0); + sContactCache.put(phoneNumber, name); + return name; + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, " Cursor get string error " + e.toString()); + return null; + } finally { + cursor.close(); + } + } else { + Log.d(TAG, "No contact matched with number:" + phoneNumber); + return null; + } + } +} diff --git a/src/src/main/java/net/micode/notes/data/Notes.java b/src/src/main/java/net/micode/notes/data/Notes.java new file mode 100644 index 0000000..f240604 --- /dev/null +++ b/src/src/main/java/net/micode/notes/data/Notes.java @@ -0,0 +1,279 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.net.Uri; +public class Notes { + public static final String AUTHORITY = "micode_notes"; + public static final String TAG = "Notes"; + public static final int TYPE_NOTE = 0; + public static final int TYPE_FOLDER = 1; + public static final int TYPE_SYSTEM = 2; + + /** + * Following IDs are system folders' identifiers + * {@link Notes#ID_ROOT_FOLDER } is default folder + * {@link Notes#ID_TEMPARAY_FOLDER } is for notes belonging no folder + * {@link Notes#ID_CALL_RECORD_FOLDER} is to store call records + */ + public static final int ID_ROOT_FOLDER = 0; + public static final int ID_TEMPARAY_FOLDER = -1; + public static final int ID_CALL_RECORD_FOLDER = -2; + public static final int ID_TRASH_FOLER = -3; + + public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date"; + public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id"; + public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id"; + public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type"; + public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id"; + public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date"; + + public static final int TYPE_WIDGET_INVALIDE = -1; + public static final int TYPE_WIDGET_2X = 0; + public static final int TYPE_WIDGET_4X = 1; + + public static class DataConstants { + public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; + public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; + } + + /** + * Uri to query all notes and folders + */ + public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note"); + + /** + * Uri to query data + */ + public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data"); + + public interface NoteColumns { + /** + * The unique ID for a row + *

Type: INTEGER (long)

+ */ + public static final String ID = "_id"; + + /** + * The parent's id for note or folder + *

Type: INTEGER (long)

+ */ + public static final String PARENT_ID = "parent_id"; + + /** + * Created data for note or folder + *

Type: INTEGER (long)

+ */ + public static final String CREATED_DATE = "created_date"; + + /** + * Latest modified date + *

Type: INTEGER (long)

+ */ + public static final String MODIFIED_DATE = "modified_date"; + + + /** + * Alert date + *

Type: INTEGER (long)

+ */ + public static final String ALERTED_DATE = "alert_date"; + + /** + * Folder's name or text content of note + *

Type: TEXT

+ */ + public static final String SNIPPET = "snippet"; + + /** + * Note's widget id + *

Type: INTEGER (long)

+ */ + public static final String WIDGET_ID = "widget_id"; + + /** + * Note's widget type + *

Type: INTEGER (long)

+ */ + public static final String WIDGET_TYPE = "widget_type"; + + /** + * Note's background color's id + *

Type: INTEGER (long)

+ */ + public static final String BG_COLOR_ID = "bg_color_id"; + + /** + * For text note, it doesn't has attachment, for multi-media + * note, it has at least one attachment + *

Type: INTEGER

+ */ + public static final String HAS_ATTACHMENT = "has_attachment"; + + /** + * Folder's count of notes + *

Type: INTEGER (long)

+ */ + public static final String NOTES_COUNT = "notes_count"; + + /** + * The file type: folder or note + *

Type: INTEGER

+ */ + public static final String TYPE = "type"; + + /** + * The last sync id + *

Type: INTEGER (long)

+ */ + public static final String SYNC_ID = "sync_id"; + + /** + * Sign to indicate local modified or not + *

Type: INTEGER

+ */ + public static final String LOCAL_MODIFIED = "local_modified"; + + /** + * Original parent id before moving into temporary folder + *

Type : INTEGER

+ */ + public static final String ORIGIN_PARENT_ID = "origin_parent_id"; + + /** + * The gtask id + *

Type : TEXT

+ */ + public static final String GTASK_ID = "gtask_id"; + + /** + * The version code + *

Type : INTEGER (long)

+ */ + public static final String VERSION = "version"; + } + + public interface DataColumns { + /** + * The unique ID for a row + *

Type: INTEGER (long)

+ */ + public static final String ID = "_id"; + + /** + * The MIME type of the item represented by this row. + *

Type: Text

+ */ + public static final String MIME_TYPE = "mime_type"; + + /** + * The reference id to note that this data belongs to + *

Type: INTEGER (long)

+ */ + public static final String NOTE_ID = "note_id"; + + /** + * Created data for note or folder + *

Type: INTEGER (long)

+ */ + public static final String CREATED_DATE = "created_date"; + + /** + * Latest modified date + *

Type: INTEGER (long)

+ */ + public static final String MODIFIED_DATE = "modified_date"; + + /** + * Data's content + *

Type: TEXT

+ */ + public static final String CONTENT = "content"; + + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * integer data type + *

Type: INTEGER

+ */ + public static final String DATA1 = "data1"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * integer data type + *

Type: INTEGER

+ */ + public static final String DATA2 = "data2"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * TEXT data type + *

Type: TEXT

+ */ + public static final String DATA3 = "data3"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * TEXT data type + *

Type: TEXT

+ */ + public static final String DATA4 = "data4"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * TEXT data type + *

Type: TEXT

+ */ + public static final String DATA5 = "data5"; + } + + public static final class TextNote implements DataColumns { + /** + * Mode to indicate the text in check list mode or not + *

Type: Integer 1:check list mode 0: normal mode

+ */ + public static final String MODE = DATA1; + + public static final int MODE_CHECK_LIST = 1; + + public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note"; + + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note"; + + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note"); + } + + public static final class CallNote implements DataColumns { + /** + * Call date for this record + *

Type: INTEGER (long)

+ */ + public static final String CALL_DATE = DATA1; + + /** + * Phone number for this record + *

Type: TEXT

+ */ + public static final String PHONE_NUMBER = DATA3; + + public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note"; + + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note"; + + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note"); + } +} diff --git a/src/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/src/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java new file mode 100644 index 0000000..ffe5d57 --- /dev/null +++ b/src/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -0,0 +1,362 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.content.ContentValues; +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; + +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; + + +public class NotesDatabaseHelper extends SQLiteOpenHelper { + private static final String DB_NAME = "note.db"; + + private static final int DB_VERSION = 4; + + public interface TABLE { + public static final String NOTE = "note"; + + public static final String DATA = "data"; + } + + private static final String TAG = "NotesDatabaseHelper"; + + private static NotesDatabaseHelper mInstance; + + private static final String CREATE_NOTE_TABLE_SQL = + "CREATE TABLE " + TABLE.NOTE + "(" + + NoteColumns.ID + " INTEGER PRIMARY KEY," + + NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," + + NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" + + ")"; + + private static final String CREATE_DATA_TABLE_SQL = + "CREATE TABLE " + TABLE.DATA + "(" + + DataColumns.ID + " INTEGER PRIMARY KEY," + + DataColumns.MIME_TYPE + " TEXT NOT NULL," + + DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA1 + " INTEGER," + + DataColumns.DATA2 + " INTEGER," + + DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" + + ")"; + + private static final String CREATE_DATA_NOTE_ID_INDEX_SQL = + "CREATE INDEX IF NOT EXISTS note_id_index ON " + + TABLE.DATA + "(" + DataColumns.NOTE_ID + ");"; + + /** + * Increase folder's note count when move note to the folder + */ + private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER increase_folder_count_on_update "+ + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + + " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + + " END"; + + /** + * Decrease folder's note count when move note from folder + */ + private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER decrease_folder_count_on_update " + + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + + " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + + " AND " + NoteColumns.NOTES_COUNT + ">0" + ";" + + " END"; + + /** + * Increase folder's note count when insert new note to the folder + */ + private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER = + "CREATE TRIGGER increase_folder_count_on_insert " + + " AFTER INSERT ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + + " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + + " END"; + + /** + * Decrease folder's note count when delete note from the folder + */ + private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER = + "CREATE TRIGGER decrease_folder_count_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + + " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + + " AND " + NoteColumns.NOTES_COUNT + ">0;" + + " END"; + + /** + * Update note's content when insert data with type {@link DataConstants#NOTE} + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER = + "CREATE TRIGGER update_note_content_on_insert " + + " AFTER INSERT ON " + TABLE.DATA + + " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + + " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * Update note's content when data with {@link DataConstants#NOTE} type has changed + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER update_note_content_on_update " + + " AFTER UPDATE ON " + TABLE.DATA + + " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + + " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * Update note's content when data with {@link DataConstants#NOTE} type has deleted + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER = + "CREATE TRIGGER update_note_content_on_delete " + + " AFTER delete ON " + TABLE.DATA + + " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=''" + + " WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * Delete datas belong to note which has been deleted + */ + private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER = + "CREATE TRIGGER delete_data_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN" + + " DELETE FROM " + TABLE.DATA + + " WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + /** + * Delete notes belong to folder which has been deleted + */ + private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER = + "CREATE TRIGGER folder_delete_notes_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN" + + " DELETE FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + /** + * Move notes belong to folder which has been moved to trash folder + */ + private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER = + "CREATE TRIGGER folder_move_notes_on_trash " + + " AFTER UPDATE ON " + TABLE.NOTE + + " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + + " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + public NotesDatabaseHelper(Context context) { + super(context, DB_NAME, null, DB_VERSION); + } + + public void createNoteTable(SQLiteDatabase db) { + db.execSQL(CREATE_NOTE_TABLE_SQL); + reCreateNoteTableTriggers(db); + createSystemFolder(db); + Log.d(TAG, "note table has been created"); + } + + private void reCreateNoteTableTriggers(SQLiteDatabase db) { + db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS delete_data_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS folder_delete_notes_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS folder_move_notes_on_trash"); + + db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); + db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); + db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER); + db.execSQL(NOTE_DELETE_DATA_ON_DELETE_TRIGGER); + db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER); + db.execSQL(FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER); + db.execSQL(FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER); + } + + private void createSystemFolder(SQLiteDatabase db) { + ContentValues values = new ContentValues(); + + /** + * call record foler for call notes + */ + values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + /** + * root folder which is default folder + */ + values.clear(); + values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + /** + * temporary folder which is used for moving note + */ + values.clear(); + values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + /** + * create trash folder + */ + values.clear(); + values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + } + + 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"); + } + + private void reCreateDataTableTriggers(SQLiteDatabase db) { + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_delete"); + + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER); + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER); + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER); + } + + static synchronized NotesDatabaseHelper getInstance(Context context) { + if (mInstance == null) { + mInstance = new NotesDatabaseHelper(context); + } + return mInstance; + } + + @Override + public void onCreate(SQLiteDatabase db) { + createNoteTable(db); + createDataTable(db); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + boolean reCreateTriggers = false; + boolean skipV2 = false; + + if (oldVersion == 1) { + upgradeToV2(db); + skipV2 = true; // this upgrade including the upgrade from v2 to v3 + oldVersion++; + } + + if (oldVersion == 2 && !skipV2) { + upgradeToV3(db); + reCreateTriggers = true; + oldVersion++; + } + + if (oldVersion == 3) { + upgradeToV4(db); + oldVersion++; + } + + if (reCreateTriggers) { + reCreateNoteTableTriggers(db); + reCreateDataTableTriggers(db); + } + + if (oldVersion != newVersion) { + throw new IllegalStateException("Upgrade notes database to version " + newVersion + + "fails"); + } + } + + private void upgradeToV2(SQLiteDatabase db) { + db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE); + db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA); + createNoteTable(db); + createDataTable(db); + } + + private void upgradeToV3(SQLiteDatabase db) { + // drop unused triggers + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_update"); + // add a column for gtask id + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.GTASK_ID + + " TEXT NOT NULL DEFAULT ''"); + // add a trash system folder + ContentValues values = new ContentValues(); + values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + } + + private void upgradeToV4(SQLiteDatabase db) { + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION + + " INTEGER NOT NULL DEFAULT 0"); + } +} diff --git a/src/src/main/java/net/micode/notes/data/NotesProvider.java b/src/src/main/java/net/micode/notes/data/NotesProvider.java new file mode 100644 index 0000000..edb0a60 --- /dev/null +++ b/src/src/main/java/net/micode/notes/data/NotesProvider.java @@ -0,0 +1,305 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + + +import android.app.SearchManager; +import android.content.ContentProvider; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Intent; +import android.content.UriMatcher; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.NotesDatabaseHelper.TABLE; + + +public class NotesProvider extends ContentProvider { + private static final UriMatcher mMatcher; + + private NotesDatabaseHelper mHelper; + + private static final String TAG = "NotesProvider"; + + private static final int URI_NOTE = 1; + private static final int URI_NOTE_ITEM = 2; + private static final int URI_DATA = 3; + private static final int URI_DATA_ITEM = 4; + + private static final int URI_SEARCH = 5; + private static final int URI_SEARCH_SUGGEST = 6; + + static { + mMatcher = new UriMatcher(UriMatcher.NO_MATCH); + mMatcher.addURI(Notes.AUTHORITY, "note", URI_NOTE); + mMatcher.addURI(Notes.AUTHORITY, "note/#", URI_NOTE_ITEM); + mMatcher.addURI(Notes.AUTHORITY, "data", URI_DATA); + mMatcher.addURI(Notes.AUTHORITY, "data/#", URI_DATA_ITEM); + mMatcher.addURI(Notes.AUTHORITY, "search", URI_SEARCH); + mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, URI_SEARCH_SUGGEST); + mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", URI_SEARCH_SUGGEST); + } + + /** + * x'0A' represents the '\n' character in sqlite. For title and content in the search result, + * we will trim '\n' and white space in order to show more information. + */ + private static final String NOTES_SEARCH_PROJECTION = NoteColumns.ID + "," + + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + "," + + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + "," + + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + "," + + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + "," + + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + "," + + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA; + + private static String NOTES_SNIPPET_SEARCH_QUERY = "SELECT " + NOTES_SEARCH_PROJECTION + + " FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.SNIPPET + " LIKE ?" + + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE; + + @Override + public boolean onCreate() { + mHelper = NotesDatabaseHelper.getInstance(getContext()); + return true; + } + + @Override + public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, + String sortOrder) { + Cursor c = null; + SQLiteDatabase db = mHelper.getReadableDatabase(); + String id = null; + switch (mMatcher.match(uri)) { + case URI_NOTE: + c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null, + sortOrder); + break; + case URI_NOTE_ITEM: + id = uri.getPathSegments().get(1); + c = db.query(TABLE.NOTE, projection, NoteColumns.ID + "=" + id + + parseSelection(selection), selectionArgs, null, null, sortOrder); + break; + case URI_DATA: + c = db.query(TABLE.DATA, projection, selection, selectionArgs, null, null, + sortOrder); + break; + case URI_DATA_ITEM: + id = uri.getPathSegments().get(1); + c = db.query(TABLE.DATA, projection, DataColumns.ID + "=" + id + + parseSelection(selection), selectionArgs, null, null, sortOrder); + break; + case URI_SEARCH: + case URI_SEARCH_SUGGEST: + if (sortOrder != null || projection != null) { + throw new IllegalArgumentException( + "do not specify sortOrder, selection, selectionArgs, or projection" + "with this query"); + } + + String searchString = null; + if (mMatcher.match(uri) == URI_SEARCH_SUGGEST) { + if (uri.getPathSegments().size() > 1) { + searchString = uri.getPathSegments().get(1); + } + } else { + searchString = uri.getQueryParameter("pattern"); + } + + if (TextUtils.isEmpty(searchString)) { + return null; + } + + try { + searchString = String.format("%%%s%%", searchString); + c = db.rawQuery(NOTES_SNIPPET_SEARCH_QUERY, + new String[] { searchString }); + } catch (IllegalStateException ex) { + Log.e(TAG, "got exception: " + ex.toString()); + } + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + if (c != null) { + c.setNotificationUri(getContext().getContentResolver(), uri); + } + return c; + } + + @Override + public Uri insert(Uri uri, ContentValues values) { + SQLiteDatabase db = mHelper.getWritableDatabase(); + long dataId = 0, noteId = 0, insertedId = 0; + switch (mMatcher.match(uri)) { + case URI_NOTE: + insertedId = noteId = db.insert(TABLE.NOTE, null, values); + break; + case URI_DATA: + if (values.containsKey(DataColumns.NOTE_ID)) { + noteId = values.getAsLong(DataColumns.NOTE_ID); + } else { + Log.d(TAG, "Wrong data format without note id:" + values.toString()); + } + insertedId = dataId = db.insert(TABLE.DATA, null, values); + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + // Notify the note uri + if (noteId > 0) { + getContext().getContentResolver().notifyChange( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null); + } + + // Notify the data uri + if (dataId > 0) { + getContext().getContentResolver().notifyChange( + ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), null); + } + + return ContentUris.withAppendedId(uri, insertedId); + } + + @Override + public int delete(Uri uri, String selection, String[] selectionArgs) { + int count = 0; + String id = null; + SQLiteDatabase db = mHelper.getWritableDatabase(); + boolean deleteData = false; + switch (mMatcher.match(uri)) { + case URI_NOTE: + selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 "; + count = db.delete(TABLE.NOTE, selection, selectionArgs); + break; + case URI_NOTE_ITEM: + id = uri.getPathSegments().get(1); + /** + * ID that smaller than 0 is system folder which is not allowed to + * trash + */ + long noteId = Long.valueOf(id); + if (noteId <= 0) { + break; + } + count = db.delete(TABLE.NOTE, + NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs); + break; + case URI_DATA: + count = db.delete(TABLE.DATA, selection, selectionArgs); + 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; + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + if (count > 0) { + if (deleteData) { + getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); + } + getContext().getContentResolver().notifyChange(uri, null); + } + return count; + } + + @Override + public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { + int count = 0; + String id = null; + SQLiteDatabase db = mHelper.getWritableDatabase(); + boolean updateData = false; + switch (mMatcher.match(uri)) { + case URI_NOTE: + increaseNoteVersion(-1, selection, selectionArgs); + count = db.update(TABLE.NOTE, values, selection, selectionArgs); + break; + case URI_NOTE_ITEM: + id = uri.getPathSegments().get(1); + increaseNoteVersion(Long.valueOf(id), selection, selectionArgs); + count = db.update(TABLE.NOTE, values, NoteColumns.ID + "=" + id + + parseSelection(selection), selectionArgs); + break; + case URI_DATA: + count = db.update(TABLE.DATA, values, selection, selectionArgs); + updateData = true; + break; + case URI_DATA_ITEM: + id = uri.getPathSegments().get(1); + count = db.update(TABLE.DATA, values, DataColumns.ID + "=" + id + + parseSelection(selection), selectionArgs); + updateData = true; + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + + if (count > 0) { + if (updateData) { + getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); + } + getContext().getContentResolver().notifyChange(uri, null); + } + return count; + } + + private String parseSelection(String selection) { + return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : ""); + } + + private void increaseNoteVersion(long id, String selection, String[] selectionArgs) { + StringBuilder sql = new StringBuilder(120); + sql.append("UPDATE "); + sql.append(TABLE.NOTE); + sql.append(" SET "); + sql.append(NoteColumns.VERSION); + sql.append("=" + NoteColumns.VERSION + "+1 "); + + if (id > 0 || !TextUtils.isEmpty(selection)) { + sql.append(" WHERE "); + } + if (id > 0) { + sql.append(NoteColumns.ID + "=" + String.valueOf(id)); + } + if (!TextUtils.isEmpty(selection)) { + String selectString = id > 0 ? parseSelection(selection) : selection; + for (String args : selectionArgs) { + selectString = selectString.replaceFirst("\\?", args); + } + sql.append(selectString); + } + + mHelper.getWritableDatabase().execSQL(sql.toString()); + } + + @Override + public String getType(Uri uri) { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/src/main/java/net/micode/notes/gtask/data/MetaData.java b/src/src/main/java/net/micode/notes/gtask/data/MetaData.java new file mode 100644 index 0000000..3a2050b --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/data/MetaData.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONException; +import org.json.JSONObject; + + +public class MetaData extends Task { + private final static String TAG = MetaData.class.getSimpleName(); + + private String mRelatedGid = null; + + public void setMeta(String gid, JSONObject metaInfo) { + try { + metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); + } catch (JSONException e) { + Log.e(TAG, "failed to put related gid"); + } + setNotes(metaInfo.toString()); + setName(GTaskStringUtils.META_NOTE_NAME); + } + + public String getRelatedGid() { + return mRelatedGid; + } + + @Override + public boolean isWorthSaving() { + return getNotes() != null; + } + + @Override + public void setContentByRemoteJSON(JSONObject js) { + super.setContentByRemoteJSON(js); + if (getNotes() != null) { + try { + JSONObject metaInfo = new JSONObject(getNotes().trim()); + mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); + } catch (JSONException e) { + Log.w(TAG, "failed to get related gid"); + mRelatedGid = null; + } + } + } + + @Override + public void setContentByLocalJSON(JSONObject js) { + // this function should not be called + throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); + } + + @Override + public JSONObject getLocalJSONFromContent() { + throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called"); + } + + @Override + public int getSyncAction(Cursor c) { + throw new IllegalAccessError("MetaData:getSyncAction should not be called"); + } + +} diff --git a/src/src/main/java/net/micode/notes/gtask/data/Node.java b/src/src/main/java/net/micode/notes/gtask/data/Node.java new file mode 100644 index 0000000..63950e0 --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/data/Node.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; + +import org.json.JSONObject; + +public abstract class Node { + public static final int SYNC_ACTION_NONE = 0; + + public static final int SYNC_ACTION_ADD_REMOTE = 1; + + public static final int SYNC_ACTION_ADD_LOCAL = 2; + + public static final int SYNC_ACTION_DEL_REMOTE = 3; + + public static final int SYNC_ACTION_DEL_LOCAL = 4; + + public static final int SYNC_ACTION_UPDATE_REMOTE = 5; + + public static final int SYNC_ACTION_UPDATE_LOCAL = 6; + + public static final int SYNC_ACTION_UPDATE_CONFLICT = 7; + + public static final int SYNC_ACTION_ERROR = 8; + + private String mGid; + + private String mName; + + private long mLastModified; + + private boolean mDeleted; + + public Node() { + mGid = null; + mName = ""; + mLastModified = 0; + mDeleted = false; + } + + public abstract JSONObject getCreateAction(int actionId); + + public abstract JSONObject getUpdateAction(int actionId); + + public abstract void setContentByRemoteJSON(JSONObject js); + + public abstract void setContentByLocalJSON(JSONObject js); + + public abstract JSONObject getLocalJSONFromContent(); + + public abstract int getSyncAction(Cursor c); + + public void setGid(String gid) { + this.mGid = gid; + } + + public void setName(String name) { + this.mName = name; + } + + public void setLastModified(long lastModified) { + this.mLastModified = lastModified; + } + + public void setDeleted(boolean deleted) { + this.mDeleted = deleted; + } + + public String getGid() { + return this.mGid; + } + + public String getName() { + return this.mName; + } + + public long getLastModified() { + return this.mLastModified; + } + + public boolean getDeleted() { + return this.mDeleted; + } + +} diff --git a/src/src/main/java/net/micode/notes/gtask/data/SqlData.java b/src/src/main/java/net/micode/notes/gtask/data/SqlData.java new file mode 100644 index 0000000..d3ec3be --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/data/SqlData.java @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.NotesDatabaseHelper.TABLE; +import net.micode.notes.gtask.exception.ActionFailureException; + +import org.json.JSONException; +import org.json.JSONObject; + + +public class SqlData { + private static final String TAG = SqlData.class.getSimpleName(); + + private static final int INVALID_ID = -99999; + + public static final String[] PROJECTION_DATA = new String[] { + DataColumns.ID, DataColumns.MIME_TYPE, DataColumns.CONTENT, DataColumns.DATA1, + DataColumns.DATA3 + }; + + public static final int DATA_ID_COLUMN = 0; + + public static final int DATA_MIME_TYPE_COLUMN = 1; + + public static final int DATA_CONTENT_COLUMN = 2; + + public static final int DATA_CONTENT_DATA_1_COLUMN = 3; + + public static final int DATA_CONTENT_DATA_3_COLUMN = 4; + + private ContentResolver mContentResolver; + + private boolean mIsCreate; + + private long mDataId; + + private String mDataMimeType; + + private String mDataContent; + + private long mDataContentData1; + + private String mDataContentData3; + + private ContentValues mDiffDataValues; + + public SqlData(Context context) { + mContentResolver = context.getContentResolver(); + mIsCreate = true; + mDataId = INVALID_ID; + mDataMimeType = DataConstants.NOTE; + mDataContent = ""; + mDataContentData1 = 0; + mDataContentData3 = ""; + mDiffDataValues = new ContentValues(); + } + + public SqlData(Context context, Cursor c) { + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(c); + mDiffDataValues = new ContentValues(); + } + + private void loadFromCursor(Cursor c) { + mDataId = c.getLong(DATA_ID_COLUMN); + mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN); + mDataContent = c.getString(DATA_CONTENT_COLUMN); + mDataContentData1 = c.getLong(DATA_CONTENT_DATA_1_COLUMN); + mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN); + } + + public void setContent(JSONObject js) throws JSONException { + long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID; + if (mIsCreate || mDataId != dataId) { + mDiffDataValues.put(DataColumns.ID, dataId); + } + mDataId = dataId; + + String dataMimeType = js.has(DataColumns.MIME_TYPE) ? js.getString(DataColumns.MIME_TYPE) + : DataConstants.NOTE; + if (mIsCreate || !mDataMimeType.equals(dataMimeType)) { + mDiffDataValues.put(DataColumns.MIME_TYPE, dataMimeType); + } + mDataMimeType = dataMimeType; + + String dataContent = js.has(DataColumns.CONTENT) ? js.getString(DataColumns.CONTENT) : ""; + if (mIsCreate || !mDataContent.equals(dataContent)) { + mDiffDataValues.put(DataColumns.CONTENT, dataContent); + } + mDataContent = dataContent; + + long dataContentData1 = js.has(DataColumns.DATA1) ? js.getLong(DataColumns.DATA1) : 0; + if (mIsCreate || mDataContentData1 != dataContentData1) { + mDiffDataValues.put(DataColumns.DATA1, dataContentData1); + } + mDataContentData1 = dataContentData1; + + String dataContentData3 = js.has(DataColumns.DATA3) ? js.getString(DataColumns.DATA3) : ""; + if (mIsCreate || !mDataContentData3.equals(dataContentData3)) { + mDiffDataValues.put(DataColumns.DATA3, dataContentData3); + } + mDataContentData3 = dataContentData3; + } + + public JSONObject getContent() throws JSONException { + if (mIsCreate) { + Log.e(TAG, "it seems that we haven't created this in database yet"); + return null; + } + JSONObject js = new JSONObject(); + js.put(DataColumns.ID, mDataId); + js.put(DataColumns.MIME_TYPE, mDataMimeType); + js.put(DataColumns.CONTENT, mDataContent); + js.put(DataColumns.DATA1, mDataContentData1); + js.put(DataColumns.DATA3, mDataContentData3); + return js; + } + + public void commit(long noteId, boolean validateVersion, long version) { + + if (mIsCreate) { + if (mDataId == INVALID_ID && mDiffDataValues.containsKey(DataColumns.ID)) { + mDiffDataValues.remove(DataColumns.ID); + } + + mDiffDataValues.put(DataColumns.NOTE_ID, noteId); + Uri uri = mContentResolver.insert(Notes.CONTENT_DATA_URI, mDiffDataValues); + try { + mDataId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + throw new ActionFailureException("create note failed"); + } + } else { + if (mDiffDataValues.size() > 0) { + int result = 0; + if (!validateVersion) { + result = mContentResolver.update(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, null, null); + } else { + result = mContentResolver.update(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, + " ? in (SELECT " + NoteColumns.ID + " FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.VERSION + "=?)", new String[] { + String.valueOf(noteId), String.valueOf(version) + }); + } + if (result == 0) { + Log.w(TAG, "there is no update. maybe user updates note when syncing"); + } + } + } + + mDiffDataValues.clear(); + mIsCreate = false; + } + + public long getId() { + return mDataId; + } +} diff --git a/src/src/main/java/net/micode/notes/gtask/data/SqlNote.java b/src/src/main/java/net/micode/notes/gtask/data/SqlNote.java new file mode 100644 index 0000000..79a4095 --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/data/SqlNote.java @@ -0,0 +1,505 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.appwidget.AppWidgetManager; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; +import net.micode.notes.tool.ResourceParser; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; + + +public class SqlNote { + private static final String TAG = SqlNote.class.getSimpleName(); + + private static final int INVALID_ID = -99999; + + public static final String[] PROJECTION_NOTE = new String[] { + NoteColumns.ID, NoteColumns.ALERTED_DATE, NoteColumns.BG_COLOR_ID, + NoteColumns.CREATED_DATE, NoteColumns.HAS_ATTACHMENT, NoteColumns.MODIFIED_DATE, + NoteColumns.NOTES_COUNT, NoteColumns.PARENT_ID, NoteColumns.SNIPPET, NoteColumns.TYPE, + NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, NoteColumns.SYNC_ID, + NoteColumns.LOCAL_MODIFIED, NoteColumns.ORIGIN_PARENT_ID, NoteColumns.GTASK_ID, + NoteColumns.VERSION + }; + + public static final int ID_COLUMN = 0; + + public static final int ALERTED_DATE_COLUMN = 1; + + public static final int BG_COLOR_ID_COLUMN = 2; + + public static final int CREATED_DATE_COLUMN = 3; + + public static final int HAS_ATTACHMENT_COLUMN = 4; + + public static final int MODIFIED_DATE_COLUMN = 5; + + public static final int NOTES_COUNT_COLUMN = 6; + + public static final int PARENT_ID_COLUMN = 7; + + public static final int SNIPPET_COLUMN = 8; + + public static final int TYPE_COLUMN = 9; + + public static final int WIDGET_ID_COLUMN = 10; + + public static final int WIDGET_TYPE_COLUMN = 11; + + public static final int SYNC_ID_COLUMN = 12; + + public static final int LOCAL_MODIFIED_COLUMN = 13; + + public static final int ORIGIN_PARENT_ID_COLUMN = 14; + + public static final int GTASK_ID_COLUMN = 15; + + public static final int VERSION_COLUMN = 16; + + private Context mContext; + + private ContentResolver mContentResolver; + + private boolean mIsCreate; + + private long mId; + + private long mAlertDate; + + private int mBgColorId; + + private long mCreatedDate; + + private int mHasAttachment; + + private long mModifiedDate; + + private long mParentId; + + private String mSnippet; + + private int mType; + + private int mWidgetId; + + private int mWidgetType; + + private long mOriginParent; + + private long mVersion; + + private ContentValues mDiffNoteValues; + + private ArrayList mDataList; + + public SqlNote(Context context) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = true; + mId = INVALID_ID; + mAlertDate = 0; + mBgColorId = ResourceParser.getDefaultBgId(context); + mCreatedDate = System.currentTimeMillis(); + mHasAttachment = 0; + mModifiedDate = System.currentTimeMillis(); + mParentId = 0; + mSnippet = ""; + mType = Notes.TYPE_NOTE; + mWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; + mWidgetType = Notes.TYPE_WIDGET_INVALIDE; + mOriginParent = 0; + mVersion = 0; + mDiffNoteValues = new ContentValues(); + mDataList = new ArrayList(); + } + + public SqlNote(Context context, Cursor c) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(c); + mDataList = new ArrayList(); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + mDiffNoteValues = new ContentValues(); + } + + public SqlNote(Context context, long id) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(id); + mDataList = new ArrayList(); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + mDiffNoteValues = new ContentValues(); + + } + + private void loadFromCursor(long id) { + Cursor c = null; + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, PROJECTION_NOTE, "(_id=?)", + new String[] { + String.valueOf(id) + }, null); + if (c != null) { + c.moveToNext(); + loadFromCursor(c); + } else { + Log.w(TAG, "loadFromCursor: cursor = null"); + } + } finally { + if (c != null) + c.close(); + } + } + + private void loadFromCursor(Cursor c) { + mId = c.getLong(ID_COLUMN); + mAlertDate = c.getLong(ALERTED_DATE_COLUMN); + mBgColorId = c.getInt(BG_COLOR_ID_COLUMN); + mCreatedDate = c.getLong(CREATED_DATE_COLUMN); + mHasAttachment = c.getInt(HAS_ATTACHMENT_COLUMN); + mModifiedDate = c.getLong(MODIFIED_DATE_COLUMN); + mParentId = c.getLong(PARENT_ID_COLUMN); + mSnippet = c.getString(SNIPPET_COLUMN); + mType = c.getInt(TYPE_COLUMN); + mWidgetId = c.getInt(WIDGET_ID_COLUMN); + mWidgetType = c.getInt(WIDGET_TYPE_COLUMN); + mVersion = c.getLong(VERSION_COLUMN); + } + + private void loadDataContent() { + Cursor c = null; + mDataList.clear(); + try { + c = mContentResolver.query(Notes.CONTENT_DATA_URI, SqlData.PROJECTION_DATA, + "(note_id=?)", new String[] { + String.valueOf(mId) + }, null); + if (c != null) { + if (c.getCount() == 0) { + Log.w(TAG, "it seems that the note has not data"); + return; + } + while (c.moveToNext()) { + SqlData data = new SqlData(mContext, c); + mDataList.add(data); + } + } else { + Log.w(TAG, "loadDataContent: cursor = null"); + } + } finally { + if (c != null) + c.close(); + } + } + + public boolean setContent(JSONObject js) { + try { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { + Log.w(TAG, "cannot set system folder"); + } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) { + // for folder we can only update the snnipet and type + String snippet = note.has(NoteColumns.SNIPPET) ? note + .getString(NoteColumns.SNIPPET) : ""; + if (mIsCreate || !mSnippet.equals(snippet)) { + mDiffNoteValues.put(NoteColumns.SNIPPET, snippet); + } + mSnippet = snippet; + + int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) + : Notes.TYPE_NOTE; + if (mIsCreate || mType != type) { + mDiffNoteValues.put(NoteColumns.TYPE, type); + } + mType = type; + } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_NOTE) { + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + long id = note.has(NoteColumns.ID) ? note.getLong(NoteColumns.ID) : INVALID_ID; + if (mIsCreate || mId != id) { + mDiffNoteValues.put(NoteColumns.ID, id); + } + mId = id; + + long alertDate = note.has(NoteColumns.ALERTED_DATE) ? note + .getLong(NoteColumns.ALERTED_DATE) : 0; + if (mIsCreate || mAlertDate != alertDate) { + mDiffNoteValues.put(NoteColumns.ALERTED_DATE, alertDate); + } + mAlertDate = alertDate; + + int bgColorId = note.has(NoteColumns.BG_COLOR_ID) ? note + .getInt(NoteColumns.BG_COLOR_ID) : ResourceParser.getDefaultBgId(mContext); + if (mIsCreate || mBgColorId != bgColorId) { + mDiffNoteValues.put(NoteColumns.BG_COLOR_ID, bgColorId); + } + mBgColorId = bgColorId; + + long createDate = note.has(NoteColumns.CREATED_DATE) ? note + .getLong(NoteColumns.CREATED_DATE) : System.currentTimeMillis(); + if (mIsCreate || mCreatedDate != createDate) { + mDiffNoteValues.put(NoteColumns.CREATED_DATE, createDate); + } + mCreatedDate = createDate; + + int hasAttachment = note.has(NoteColumns.HAS_ATTACHMENT) ? note + .getInt(NoteColumns.HAS_ATTACHMENT) : 0; + if (mIsCreate || mHasAttachment != hasAttachment) { + mDiffNoteValues.put(NoteColumns.HAS_ATTACHMENT, hasAttachment); + } + mHasAttachment = hasAttachment; + + long modifiedDate = note.has(NoteColumns.MODIFIED_DATE) ? note + .getLong(NoteColumns.MODIFIED_DATE) : System.currentTimeMillis(); + if (mIsCreate || mModifiedDate != modifiedDate) { + mDiffNoteValues.put(NoteColumns.MODIFIED_DATE, modifiedDate); + } + mModifiedDate = modifiedDate; + + long parentId = note.has(NoteColumns.PARENT_ID) ? note + .getLong(NoteColumns.PARENT_ID) : 0; + if (mIsCreate || mParentId != parentId) { + mDiffNoteValues.put(NoteColumns.PARENT_ID, parentId); + } + mParentId = parentId; + + String snippet = note.has(NoteColumns.SNIPPET) ? note + .getString(NoteColumns.SNIPPET) : ""; + if (mIsCreate || !mSnippet.equals(snippet)) { + mDiffNoteValues.put(NoteColumns.SNIPPET, snippet); + } + mSnippet = snippet; + + int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) + : Notes.TYPE_NOTE; + if (mIsCreate || mType != type) { + mDiffNoteValues.put(NoteColumns.TYPE, type); + } + mType = type; + + int widgetId = note.has(NoteColumns.WIDGET_ID) ? note.getInt(NoteColumns.WIDGET_ID) + : AppWidgetManager.INVALID_APPWIDGET_ID; + if (mIsCreate || mWidgetId != widgetId) { + mDiffNoteValues.put(NoteColumns.WIDGET_ID, widgetId); + } + mWidgetId = widgetId; + + int widgetType = note.has(NoteColumns.WIDGET_TYPE) ? note + .getInt(NoteColumns.WIDGET_TYPE) : Notes.TYPE_WIDGET_INVALIDE; + if (mIsCreate || mWidgetType != widgetType) { + mDiffNoteValues.put(NoteColumns.WIDGET_TYPE, widgetType); + } + mWidgetType = widgetType; + + long originParent = note.has(NoteColumns.ORIGIN_PARENT_ID) ? note + .getLong(NoteColumns.ORIGIN_PARENT_ID) : 0; + if (mIsCreate || mOriginParent != originParent) { + mDiffNoteValues.put(NoteColumns.ORIGIN_PARENT_ID, originParent); + } + mOriginParent = originParent; + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + SqlData sqlData = null; + if (data.has(DataColumns.ID)) { + long dataId = data.getLong(DataColumns.ID); + for (SqlData temp : mDataList) { + if (dataId == temp.getId()) { + sqlData = temp; + } + } + } + + if (sqlData == null) { + sqlData = new SqlData(mContext); + mDataList.add(sqlData); + } + + sqlData.setContent(data); + } + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return false; + } + return true; + } + + public JSONObject getContent() { + try { + JSONObject js = new JSONObject(); + + if (mIsCreate) { + Log.e(TAG, "it seems that we haven't created this in database yet"); + return null; + } + + JSONObject note = new JSONObject(); + if (mType == Notes.TYPE_NOTE) { + note.put(NoteColumns.ID, mId); + note.put(NoteColumns.ALERTED_DATE, mAlertDate); + note.put(NoteColumns.BG_COLOR_ID, mBgColorId); + note.put(NoteColumns.CREATED_DATE, mCreatedDate); + note.put(NoteColumns.HAS_ATTACHMENT, mHasAttachment); + note.put(NoteColumns.MODIFIED_DATE, mModifiedDate); + note.put(NoteColumns.PARENT_ID, mParentId); + note.put(NoteColumns.SNIPPET, mSnippet); + note.put(NoteColumns.TYPE, mType); + note.put(NoteColumns.WIDGET_ID, mWidgetId); + note.put(NoteColumns.WIDGET_TYPE, mWidgetType); + note.put(NoteColumns.ORIGIN_PARENT_ID, mOriginParent); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + + JSONArray dataArray = new JSONArray(); + for (SqlData sqlData : mDataList) { + JSONObject data = sqlData.getContent(); + if (data != null) { + dataArray.put(data); + } + } + js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); + } else if (mType == Notes.TYPE_FOLDER || mType == Notes.TYPE_SYSTEM) { + note.put(NoteColumns.ID, mId); + note.put(NoteColumns.TYPE, mType); + note.put(NoteColumns.SNIPPET, mSnippet); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + } + + return js; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + return null; + } + + public void setParentId(long id) { + mParentId = id; + mDiffNoteValues.put(NoteColumns.PARENT_ID, id); + } + + public void setGtaskId(String gid) { + mDiffNoteValues.put(NoteColumns.GTASK_ID, gid); + } + + public void setSyncId(long syncId) { + mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId); + } + + public void resetLocalModified() { + mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0); + } + + public long getId() { + return mId; + } + + public long getParentId() { + return mParentId; + } + + public String getSnippet() { + return mSnippet; + } + + public boolean isNoteType() { + return mType == Notes.TYPE_NOTE; + } + + public void commit(boolean validateVersion) { + if (mIsCreate) { + if (mId == INVALID_ID && mDiffNoteValues.containsKey(NoteColumns.ID)) { + mDiffNoteValues.remove(NoteColumns.ID); + } + + Uri uri = mContentResolver.insert(Notes.CONTENT_NOTE_URI, mDiffNoteValues); + try { + mId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + throw new ActionFailureException("create note failed"); + } + if (mId == 0) { + throw new IllegalStateException("Create thread id failed"); + } + + if (mType == Notes.TYPE_NOTE) { + for (SqlData sqlData : mDataList) { + sqlData.commit(mId, false, -1); + } + } + } else { + if (mId <= 0 && mId != Notes.ID_ROOT_FOLDER && mId != Notes.ID_CALL_RECORD_FOLDER) { + Log.e(TAG, "No such note"); + throw new IllegalStateException("Try to update note with invalid id"); + } + if (mDiffNoteValues.size() > 0) { + mVersion ++; + int result = 0; + if (!validateVersion) { + result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "(" + + NoteColumns.ID + "=?)", new String[] { + String.valueOf(mId) + }); + } else { + result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "(" + + NoteColumns.ID + "=?) AND (" + NoteColumns.VERSION + "<=?)", + new String[] { + String.valueOf(mId), String.valueOf(mVersion) + }); + } + if (result == 0) { + Log.w(TAG, "there is no update. maybe user updates note when syncing"); + } + } + + if (mType == Notes.TYPE_NOTE) { + for (SqlData sqlData : mDataList) { + sqlData.commit(mId, validateVersion, mVersion); + } + } + } + + // refresh local info + loadFromCursor(mId); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + + mDiffNoteValues.clear(); + mIsCreate = false; + } +} diff --git a/src/src/main/java/net/micode/notes/gtask/data/Task.java b/src/src/main/java/net/micode/notes/gtask/data/Task.java new file mode 100644 index 0000000..6a19454 --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/data/Task.java @@ -0,0 +1,351 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + + +public class Task extends Node { + private static final String TAG = Task.class.getSimpleName(); + + private boolean mCompleted; + + private String mNotes; + + private JSONObject mMetaInfo; + + private Task mPriorSibling; + + private TaskList mParent; + + public Task() { + super(); + mCompleted = false; + mNotes = null; + mPriorSibling = null; + mParent = null; + mMetaInfo = null; + } + + public JSONObject getCreateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // index + js.put(GTaskStringUtils.GTASK_JSON_INDEX, mParent.getChildTaskIndex(this)); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); + entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_TASK); + if (getNotes() != null) { + entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); + } + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + // parent_id + js.put(GTaskStringUtils.GTASK_JSON_PARENT_ID, mParent.getGid()); + + // dest_parent_type + js.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_GROUP); + + // list_id + js.put(GTaskStringUtils.GTASK_JSON_LIST_ID, mParent.getGid()); + + // prior_sibling_id + if (mPriorSibling != null) { + js.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, mPriorSibling.getGid()); + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate task-create jsonobject"); + } + + return js; + } + + public JSONObject getUpdateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // id + js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + if (getNotes() != null) { + entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); + } + entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate task-update jsonobject"); + } + + return js; + } + + public void setContentByRemoteJSON(JSONObject js) { + if (js != null) { + try { + // id + if (js.has(GTaskStringUtils.GTASK_JSON_ID)) { + setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); + } + + // last_modified + if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) { + setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); + } + + // name + if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) { + setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); + } + + // notes + if (js.has(GTaskStringUtils.GTASK_JSON_NOTES)) { + setNotes(js.getString(GTaskStringUtils.GTASK_JSON_NOTES)); + } + + // deleted + if (js.has(GTaskStringUtils.GTASK_JSON_DELETED)) { + setDeleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_DELETED)); + } + + // completed + if (js.has(GTaskStringUtils.GTASK_JSON_COMPLETED)) { + setCompleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_COMPLETED)); + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to get task content from jsonobject"); + } + } + } + + public void setContentByLocalJSON(JSONObject js) { + if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE) + || !js.has(GTaskStringUtils.META_HEAD_DATA)) { + Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); + } + + try { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + + if (note.getInt(NoteColumns.TYPE) != Notes.TYPE_NOTE) { + Log.e(TAG, "invalid type"); + return; + } + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) { + setName(data.getString(DataColumns.CONTENT)); + break; + } + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + } + + public JSONObject getLocalJSONFromContent() { + String name = getName(); + try { + if (mMetaInfo == null) { + // new task created from web + if (name == null) { + Log.w(TAG, "the note seems to be an empty one"); + return null; + } + + JSONObject js = new JSONObject(); + JSONObject note = new JSONObject(); + JSONArray dataArray = new JSONArray(); + JSONObject data = new JSONObject(); + data.put(DataColumns.CONTENT, name); + dataArray.put(data); + js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); + note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + return js; + } else { + // synced task + JSONObject note = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + JSONArray dataArray = mMetaInfo.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) { + data.put(DataColumns.CONTENT, getName()); + break; + } + } + + note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + return mMetaInfo; + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return null; + } + } + + public void setMetaInfo(MetaData metaData) { + if (metaData != null && metaData.getNotes() != null) { + try { + mMetaInfo = new JSONObject(metaData.getNotes()); + } catch (JSONException e) { + Log.w(TAG, e.toString()); + mMetaInfo = null; + } + } + } + + public int getSyncAction(Cursor c) { + try { + JSONObject noteInfo = null; + if (mMetaInfo != null && mMetaInfo.has(GTaskStringUtils.META_HEAD_NOTE)) { + noteInfo = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + } + + if (noteInfo == null) { + Log.w(TAG, "it seems that note meta has been deleted"); + return SYNC_ACTION_UPDATE_REMOTE; + } + + if (!noteInfo.has(NoteColumns.ID)) { + Log.w(TAG, "remote note id seems to be deleted"); + return SYNC_ACTION_UPDATE_LOCAL; + } + + // validate the note id now + if (c.getLong(SqlNote.ID_COLUMN) != noteInfo.getLong(NoteColumns.ID)) { + Log.w(TAG, "note id doesn't match"); + return SYNC_ACTION_UPDATE_LOCAL; + } + + if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { + // there is no local update + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // no update both side + return SYNC_ACTION_NONE; + } else { + // apply remote to local + return SYNC_ACTION_UPDATE_LOCAL; + } + } else { + // validate gtask id + if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { + Log.e(TAG, "gtask id doesn't match"); + return SYNC_ACTION_ERROR; + } + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // local modification only + return SYNC_ACTION_UPDATE_REMOTE; + } else { + return SYNC_ACTION_UPDATE_CONFLICT; + } + } + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + + return SYNC_ACTION_ERROR; + } + + public boolean isWorthSaving() { + return mMetaInfo != null || (getName() != null && getName().trim().length() > 0) + || (getNotes() != null && getNotes().trim().length() > 0); + } + + public void setCompleted(boolean completed) { + this.mCompleted = completed; + } + + public void setNotes(String notes) { + this.mNotes = notes; + } + + public void setPriorSibling(Task priorSibling) { + this.mPriorSibling = priorSibling; + } + + public void setParent(TaskList parent) { + this.mParent = parent; + } + + public boolean getCompleted() { + return this.mCompleted; + } + + public String getNotes() { + return this.mNotes; + } + + public Task getPriorSibling() { + return this.mPriorSibling; + } + + public TaskList getParent() { + return this.mParent; + } + +} diff --git a/src/src/main/java/net/micode/notes/gtask/data/TaskList.java b/src/src/main/java/net/micode/notes/gtask/data/TaskList.java new file mode 100644 index 0000000..4ea21c5 --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/data/TaskList.java @@ -0,0 +1,343 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; + + +public class TaskList extends Node { + private static final String TAG = TaskList.class.getSimpleName(); + + private int mIndex; + + private ArrayList mChildren; + + public TaskList() { + super(); + mChildren = new ArrayList(); + mIndex = 1; + } + + public JSONObject getCreateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // index + js.put(GTaskStringUtils.GTASK_JSON_INDEX, mIndex); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); + entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_GROUP); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate tasklist-create jsonobject"); + } + + return js; + } + + public JSONObject getUpdateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // id + js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate tasklist-update jsonobject"); + } + + return js; + } + + public void setContentByRemoteJSON(JSONObject js) { + if (js != null) { + try { + // id + if (js.has(GTaskStringUtils.GTASK_JSON_ID)) { + setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); + } + + // last_modified + if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) { + setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); + } + + // name + if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) { + setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to get tasklist content from jsonobject"); + } + } + } + + public void setContentByLocalJSON(JSONObject js) { + if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)) { + Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); + } + + try { + JSONObject folder = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + + if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) { + String name = folder.getString(NoteColumns.SNIPPET); + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + name); + } else if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { + if (folder.getLong(NoteColumns.ID) == Notes.ID_ROOT_FOLDER) + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT); + else if (folder.getLong(NoteColumns.ID) == Notes.ID_CALL_RECORD_FOLDER) + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_CALL_NOTE); + else + Log.e(TAG, "invalid system folder"); + } else { + Log.e(TAG, "error type"); + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + } + + public JSONObject getLocalJSONFromContent() { + try { + JSONObject js = new JSONObject(); + JSONObject folder = new JSONObject(); + + String folderName = getName(); + if (getName().startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX)) + folderName = folderName.substring(GTaskStringUtils.MIUI_FOLDER_PREFFIX.length(), + folderName.length()); + folder.put(NoteColumns.SNIPPET, folderName); + if (folderName.equals(GTaskStringUtils.FOLDER_DEFAULT) + || folderName.equals(GTaskStringUtils.FOLDER_CALL_NOTE)) + folder.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + else + folder.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + + js.put(GTaskStringUtils.META_HEAD_NOTE, folder); + + return js; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return null; + } + } + + public int getSyncAction(Cursor c) { + try { + if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { + // there is no local update + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // no update both side + return SYNC_ACTION_NONE; + } else { + // apply remote to local + return SYNC_ACTION_UPDATE_LOCAL; + } + } else { + // validate gtask id + if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { + Log.e(TAG, "gtask id doesn't match"); + return SYNC_ACTION_ERROR; + } + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // local modification only + return SYNC_ACTION_UPDATE_REMOTE; + } else { + // for folder conflicts, just apply local modification + return SYNC_ACTION_UPDATE_REMOTE; + } + } + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + + return SYNC_ACTION_ERROR; + } + + public int getChildTaskCount() { + return mChildren.size(); + } + + public boolean addChildTask(Task task) { + boolean ret = false; + if (task != null && !mChildren.contains(task)) { + ret = mChildren.add(task); + if (ret) { + // need to set prior sibling and parent + task.setPriorSibling(mChildren.isEmpty() ? null : mChildren + .get(mChildren.size() - 1)); + task.setParent(this); + } + } + return ret; + } + + public boolean addChildTask(Task task, int index) { + if (index < 0 || index > mChildren.size()) { + Log.e(TAG, "add child task: invalid index"); + return false; + } + + int pos = mChildren.indexOf(task); + if (task != null && pos == -1) { + mChildren.add(index, task); + + // update the task list + Task preTask = null; + Task afterTask = null; + if (index != 0) + preTask = mChildren.get(index - 1); + if (index != mChildren.size() - 1) + afterTask = mChildren.get(index + 1); + + task.setPriorSibling(preTask); + if (afterTask != null) + afterTask.setPriorSibling(task); + } + + return true; + } + + public boolean removeChildTask(Task task) { + boolean ret = false; + int index = mChildren.indexOf(task); + if (index != -1) { + ret = mChildren.remove(task); + + if (ret) { + // reset prior sibling and parent + task.setPriorSibling(null); + task.setParent(null); + + // update the task list + if (index != mChildren.size()) { + mChildren.get(index).setPriorSibling( + index == 0 ? null : mChildren.get(index - 1)); + } + } + } + return ret; + } + + public boolean moveChildTask(Task task, int index) { + + if (index < 0 || index >= mChildren.size()) { + Log.e(TAG, "move child task: invalid index"); + return false; + } + + int pos = mChildren.indexOf(task); + if (pos == -1) { + Log.e(TAG, "move child task: the task should in the list"); + return false; + } + + if (pos == index) + return true; + return (removeChildTask(task) && addChildTask(task, index)); + } + + public Task findChildTaskByGid(String gid) { + for (int i = 0; i < mChildren.size(); i++) { + Task t = mChildren.get(i); + if (t.getGid().equals(gid)) { + return t; + } + } + return null; + } + + public int getChildTaskIndex(Task task) { + return mChildren.indexOf(task); + } + + public Task getChildTaskByIndex(int index) { + if (index < 0 || index >= mChildren.size()) { + Log.e(TAG, "getTaskByIndex: invalid index"); + return null; + } + return mChildren.get(index); + } + + public Task getChilTaskByGid(String gid) { + for (Task task : mChildren) { + if (task.getGid().equals(gid)) + return task; + } + return null; + } + + public ArrayList getChildTaskList() { + return this.mChildren; + } + + public void setIndex(int index) { + this.mIndex = index; + } + + public int getIndex() { + return this.mIndex; + } +} diff --git a/src/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java b/src/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java new file mode 100644 index 0000000..15504be --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.exception; + +public class ActionFailureException extends RuntimeException { + private static final long serialVersionUID = 4425249765923293627L; + + public ActionFailureException() { + super(); + } + + public ActionFailureException(String paramString) { + super(paramString); + } + + public ActionFailureException(String paramString, Throwable paramThrowable) { + super(paramString, paramThrowable); + } +} diff --git a/src/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java b/src/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java new file mode 100644 index 0000000..b08cfb1 --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.exception; + +public class NetworkFailureException extends Exception { + private static final long serialVersionUID = 2107610287180234136L; + + public NetworkFailureException() { + super(); + } + + public NetworkFailureException(String paramString) { + super(paramString); + } + + public NetworkFailureException(String paramString, Throwable paramThrowable) { + super(paramString, paramThrowable); + } +} diff --git a/src/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java b/src/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java new file mode 100644 index 0000000..f65b025 --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java @@ -0,0 +1,125 @@ + +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.os.AsyncTask; + +import net.micode.notes.R; +import net.micode.notes.ui.NotesListActivity; +import net.micode.notes.ui.NotesPreferenceActivity; + + +public class GTaskASyncTask extends AsyncTask { + + private static int GTASK_SYNC_NOTIFICATION_ID = 5234235; + + public interface OnCompleteListener { + void onComplete(); + } + + private Context mContext; + + private NotificationManager mNotifiManager; + + private GTaskManager mTaskManager; + + private OnCompleteListener mOnCompleteListener; + + public GTaskASyncTask(Context context, OnCompleteListener listener) { + mContext = context; + mOnCompleteListener = listener; + mNotifiManager = (NotificationManager) mContext + .getSystemService(Context.NOTIFICATION_SERVICE); + mTaskManager = GTaskManager.getInstance(); + } + + public void cancelSync() { + mTaskManager.cancelSync(); + } + + public void publishProgess(String message) { + publishProgress(new String[] { + message + }); + } + + private void showNotification(int tickerId, String content) { + PendingIntent pendingIntent; + if (tickerId != R.string.ticker_success) { + pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, + NotesPreferenceActivity.class), PendingIntent.FLAG_IMMUTABLE); + } else { + pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, + NotesListActivity.class), PendingIntent.FLAG_IMMUTABLE); + } + Notification.Builder builder = new Notification.Builder(mContext) + .setAutoCancel(true) + .setContentTitle(mContext.getString(R.string.app_name)) + .setContentText(content) + .setContentIntent(pendingIntent) + .setWhen(System.currentTimeMillis()) + .setOngoing(true); + Notification notification=builder.getNotification(); + mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); + } + + + @Override + protected Integer doInBackground(Void... unused) { + publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity + .getSyncAccountName(mContext))); + return mTaskManager.sync(mContext, this); + } + + @Override + protected void onProgressUpdate(String... progress) { + showNotification(R.string.ticker_syncing, progress[0]); + if (mContext instanceof GTaskSyncService) { + ((GTaskSyncService) mContext).sendBroadcast(progress[0]); + } + } + + @Override + protected void onPostExecute(Integer result) { + if (result == GTaskManager.STATE_SUCCESS) { + showNotification(R.string.ticker_success, mContext.getString( + R.string.success_sync_account, mTaskManager.getSyncAccount())); + NotesPreferenceActivity.setLastSyncTime(mContext, System.currentTimeMillis()); + } else if (result == GTaskManager.STATE_NETWORK_ERROR) { + showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_network)); + } else if (result == GTaskManager.STATE_INTERNAL_ERROR) { + showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_internal)); + } else if (result == GTaskManager.STATE_SYNC_CANCELLED) { + showNotification(R.string.ticker_cancel, mContext + .getString(R.string.error_sync_cancelled)); + } + if (mOnCompleteListener != null) { + new Thread(new Runnable() { + + public void run() { + mOnCompleteListener.onComplete(); + } + }).start(); + } + } +} diff --git a/src/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java b/src/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java new file mode 100644 index 0000000..c67dfdf --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java @@ -0,0 +1,585 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.accounts.Account; +import android.accounts.AccountManager; +import android.accounts.AccountManagerFuture; +import android.app.Activity; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.gtask.data.Node; +import net.micode.notes.gtask.data.Task; +import net.micode.notes.gtask.data.TaskList; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.gtask.exception.NetworkFailureException; +import net.micode.notes.tool.GTaskStringUtils; +import net.micode.notes.ui.NotesPreferenceActivity; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.cookie.Cookie; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.params.BasicHttpParams; +import org.apache.http.params.HttpConnectionParams; +import org.apache.http.params.HttpParams; +import org.apache.http.params.HttpProtocolParams; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.LinkedList; +import java.util.List; +import java.util.zip.GZIPInputStream; +import java.util.zip.Inflater; +import java.util.zip.InflaterInputStream; + + +public class GTaskClient { + private static final String TAG = GTaskClient.class.getSimpleName(); + + private static final String GTASK_URL = "https://mail.google.com/tasks/"; + + private static final String GTASK_GET_URL = "https://mail.google.com/tasks/ig"; + + private static final String GTASK_POST_URL = "https://mail.google.com/tasks/r/ig"; + + private static GTaskClient mInstance = null; + + private DefaultHttpClient mHttpClient; + + private String mGetUrl; + + private String mPostUrl; + + private long mClientVersion; + + private boolean mLoggedin; + + private long mLastLoginTime; + + private int mActionId; + + private Account mAccount; + + private JSONArray mUpdateArray; + + private GTaskClient() { + mHttpClient = null; + mGetUrl = GTASK_GET_URL; + mPostUrl = GTASK_POST_URL; + mClientVersion = -1; + mLoggedin = false; + mLastLoginTime = 0; + mActionId = 1; + mAccount = null; + mUpdateArray = null; + } + + public static synchronized GTaskClient getInstance() { + if (mInstance == null) { + mInstance = new GTaskClient(); + } + return mInstance; + } + + public boolean login(Activity activity) { + // we suppose that the cookie would expire after 5 minutes + // then we need to re-login + final long interval = 1000 * 60 * 5; + if (mLastLoginTime + interval < System.currentTimeMillis()) { + mLoggedin = false; + } + + // need to re-login after account switch + if (mLoggedin + && !TextUtils.equals(getSyncAccount().name, NotesPreferenceActivity + .getSyncAccountName(activity))) { + mLoggedin = false; + } + + if (mLoggedin) { + Log.d(TAG, "already logged in"); + return true; + } + + mLastLoginTime = System.currentTimeMillis(); + String authToken = loginGoogleAccount(activity, false); + if (authToken == null) { + Log.e(TAG, "login google account failed"); + return false; + } + + // login with custom domain if necessary + if (!(mAccount.name.toLowerCase().endsWith("gmail.com") || mAccount.name.toLowerCase() + .endsWith("googlemail.com"))) { + StringBuilder url = new StringBuilder(GTASK_URL).append("a/"); + int index = mAccount.name.indexOf('@') + 1; + String suffix = mAccount.name.substring(index); + url.append(suffix + "/"); + mGetUrl = url.toString() + "ig"; + mPostUrl = url.toString() + "r/ig"; + + if (tryToLoginGtask(activity, authToken)) { + mLoggedin = true; + } + } + + // try to login with google official url + if (!mLoggedin) { + mGetUrl = GTASK_GET_URL; + mPostUrl = GTASK_POST_URL; + if (!tryToLoginGtask(activity, authToken)) { + return false; + } + } + + mLoggedin = true; + return true; + } + + private String loginGoogleAccount(Activity activity, boolean invalidateToken) { + String authToken; + AccountManager accountManager = AccountManager.get(activity); + Account[] accounts = accountManager.getAccountsByType("com.google"); + + if (accounts.length == 0) { + Log.e(TAG, "there is no available google account"); + return null; + } + + String accountName = NotesPreferenceActivity.getSyncAccountName(activity); + Account account = null; + for (Account a : accounts) { + if (a.name.equals(accountName)) { + account = a; + break; + } + } + if (account != null) { + mAccount = account; + } else { + Log.e(TAG, "unable to get an account with the same name in the settings"); + return null; + } + + // get the token now + AccountManagerFuture accountManagerFuture = accountManager.getAuthToken(account, + "goanna_mobile", null, activity, null, null); + try { + Bundle authTokenBundle = accountManagerFuture.getResult(); + authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN); + if (invalidateToken) { + accountManager.invalidateAuthToken("com.google", authToken); + loginGoogleAccount(activity, false); + } + } catch (Exception e) { + Log.e(TAG, "get auth token failed"); + authToken = null; + } + + return authToken; + } + + private boolean tryToLoginGtask(Activity activity, String authToken) { + if (!loginGtask(authToken)) { + // maybe the auth token is out of date, now let's invalidate the + // token and try again + authToken = loginGoogleAccount(activity, true); + if (authToken == null) { + Log.e(TAG, "login google account failed"); + return false; + } + + if (!loginGtask(authToken)) { + Log.e(TAG, "login gtask failed"); + return false; + } + } + return true; + } + + private boolean loginGtask(String authToken) { + int timeoutConnection = 10000; + int timeoutSocket = 15000; + HttpParams httpParameters = new BasicHttpParams(); + HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); + HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); + mHttpClient = new DefaultHttpClient(httpParameters); + BasicCookieStore localBasicCookieStore = new BasicCookieStore(); + mHttpClient.setCookieStore(localBasicCookieStore); + HttpProtocolParams.setUseExpectContinue(mHttpClient.getParams(), false); + + // login gtask + try { + String loginUrl = mGetUrl + "?auth=" + authToken; + HttpGet httpGet = new HttpGet(loginUrl); + HttpResponse response = null; + response = mHttpClient.execute(httpGet); + + // get the cookie now + List cookies = mHttpClient.getCookieStore().getCookies(); + boolean hasAuthCookie = false; + for (Cookie cookie : cookies) { + if (cookie.getName().contains("GTL")) { + hasAuthCookie = true; + } + } + if (!hasAuthCookie) { + Log.w(TAG, "it seems that there is no auth cookie"); + } + + // get the client version + String resString = getResponseContent(response.getEntity()); + String jsBegin = "_setup("; + String jsEnd = ")}"; + int begin = resString.indexOf(jsBegin); + int end = resString.lastIndexOf(jsEnd); + String jsString = null; + if (begin != -1 && end != -1 && begin < end) { + jsString = resString.substring(begin + jsBegin.length(), end); + } + JSONObject js = new JSONObject(jsString); + mClientVersion = js.getLong("v"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return false; + } catch (Exception e) { + // simply catch all exceptions + Log.e(TAG, "httpget gtask_url failed"); + return false; + } + + return true; + } + + private int getActionId() { + return mActionId++; + } + + private HttpPost createHttpPost() { + HttpPost httpPost = new HttpPost(mPostUrl); + httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + httpPost.setHeader("AT", "1"); + return httpPost; + } + + private String getResponseContent(HttpEntity entity) throws IOException { + String contentEncoding = null; + if (entity.getContentEncoding() != null) { + contentEncoding = entity.getContentEncoding().getValue(); + Log.d(TAG, "encoding: " + contentEncoding); + } + + InputStream input = entity.getContent(); + if (contentEncoding != null && contentEncoding.equalsIgnoreCase("gzip")) { + input = new GZIPInputStream(entity.getContent()); + } else if (contentEncoding != null && contentEncoding.equalsIgnoreCase("deflate")) { + Inflater inflater = new Inflater(true); + input = new InflaterInputStream(entity.getContent(), inflater); + } + + try { + InputStreamReader isr = new InputStreamReader(input); + BufferedReader br = new BufferedReader(isr); + StringBuilder sb = new StringBuilder(); + + while (true) { + String buff = br.readLine(); + if (buff == null) { + return sb.toString(); + } + sb = sb.append(buff); + } + } finally { + input.close(); + } + } + + private JSONObject postRequest(JSONObject js) throws NetworkFailureException { + if (!mLoggedin) { + Log.e(TAG, "please login first"); + throw new ActionFailureException("not logged in"); + } + + HttpPost httpPost = createHttpPost(); + try { + LinkedList list = new LinkedList(); + list.add(new BasicNameValuePair("r", js.toString())); + UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, "UTF-8"); + httpPost.setEntity(entity); + + // execute the post + HttpResponse response = mHttpClient.execute(httpPost); + String jsString = getResponseContent(response.getEntity()); + return new JSONObject(jsString); + + } catch (ClientProtocolException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("postRequest failed"); + } catch (IOException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("postRequest failed"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("unable to convert response content to jsonobject"); + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("error occurs when posting request"); + } + } + + public void createTask(Task task) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + actionList.put(task.getCreateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + // post + JSONObject jsResponse = postRequest(jsPost); + JSONObject jsResult = (JSONObject) jsResponse.getJSONArray( + GTaskStringUtils.GTASK_JSON_RESULTS).get(0); + task.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID)); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("create task: handing jsonobject failed"); + } + } + + public void createTaskList(TaskList tasklist) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + actionList.put(tasklist.getCreateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + // post + JSONObject jsResponse = postRequest(jsPost); + JSONObject jsResult = (JSONObject) jsResponse.getJSONArray( + GTaskStringUtils.GTASK_JSON_RESULTS).get(0); + tasklist.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID)); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("create tasklist: handing jsonobject failed"); + } + } + + public void commitUpdate() throws NetworkFailureException { + if (mUpdateArray != null) { + try { + JSONObject jsPost = new JSONObject(); + + // action_list + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, mUpdateArray); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + mUpdateArray = null; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("commit update: handing jsonobject failed"); + } + } + } + + public void addUpdateNode(Node node) throws NetworkFailureException { + if (node != null) { + // too many update items may result in an error + // set max to 10 items + if (mUpdateArray != null && mUpdateArray.length() > 10) { + commitUpdate(); + } + + if (mUpdateArray == null) + mUpdateArray = new JSONArray(); + mUpdateArray.put(node.getUpdateAction(getActionId())); + } + } + + public void moveTask(Task task, TaskList preParent, TaskList curParent) + throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + JSONObject action = new JSONObject(); + + // action_list + action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_MOVE); + action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); + action.put(GTaskStringUtils.GTASK_JSON_ID, task.getGid()); + if (preParent == curParent && task.getPriorSibling() != null) { + // put prioring_sibing_id only if moving within the tasklist and + // it is not the first one + action.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, task.getPriorSibling()); + } + action.put(GTaskStringUtils.GTASK_JSON_SOURCE_LIST, preParent.getGid()); + action.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT, curParent.getGid()); + if (preParent != curParent) { + // put the dest_list only if moving between tasklists + action.put(GTaskStringUtils.GTASK_JSON_DEST_LIST, curParent.getGid()); + } + actionList.put(action); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("move task: handing jsonobject failed"); + } + } + + public void deleteNode(Node node) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + node.setDeleted(true); + actionList.put(node.getUpdateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + mUpdateArray = null; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("delete node: handing jsonobject failed"); + } + } + + public JSONArray getTaskLists() throws NetworkFailureException { + if (!mLoggedin) { + Log.e(TAG, "please login first"); + throw new ActionFailureException("not logged in"); + } + + try { + HttpGet httpGet = new HttpGet(mGetUrl); + HttpResponse response = null; + response = mHttpClient.execute(httpGet); + + // get the task list + String resString = getResponseContent(response.getEntity()); + String jsBegin = "_setup("; + String jsEnd = ")}"; + int begin = resString.indexOf(jsBegin); + int end = resString.lastIndexOf(jsEnd); + String jsString = null; + if (begin != -1 && end != -1 && begin < end) { + jsString = resString.substring(begin + jsBegin.length(), end); + } + JSONObject js = new JSONObject(jsString); + return js.getJSONObject("t").getJSONArray(GTaskStringUtils.GTASK_JSON_LISTS); + } catch (ClientProtocolException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("gettasklists: httpget failed"); + } catch (IOException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("gettasklists: httpget failed"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("get task lists: handing jasonobject failed"); + } + } + + public JSONArray getTaskList(String listGid) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + JSONObject action = new JSONObject(); + + // action_list + action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_GETALL); + action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); + action.put(GTaskStringUtils.GTASK_JSON_LIST_ID, listGid); + action.put(GTaskStringUtils.GTASK_JSON_GET_DELETED, false); + actionList.put(action); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + JSONObject jsResponse = postRequest(jsPost); + return jsResponse.getJSONArray(GTaskStringUtils.GTASK_JSON_TASKS); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("get task list: handing jsonobject failed"); + } + } + + public Account getSyncAccount() { + return mAccount; + } + + public void resetUpdateArray() { + mUpdateArray = null; + } +} diff --git a/src/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java b/src/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java new file mode 100644 index 0000000..d2b4082 --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java @@ -0,0 +1,800 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Activity; +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.data.MetaData; +import net.micode.notes.gtask.data.Node; +import net.micode.notes.gtask.data.SqlNote; +import net.micode.notes.gtask.data.Task; +import net.micode.notes.gtask.data.TaskList; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.gtask.exception.NetworkFailureException; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; + + +public class GTaskManager { + private static final String TAG = GTaskManager.class.getSimpleName(); + + public static final int STATE_SUCCESS = 0; + + public static final int STATE_NETWORK_ERROR = 1; + + public static final int STATE_INTERNAL_ERROR = 2; + + public static final int STATE_SYNC_IN_PROGRESS = 3; + + public static final int STATE_SYNC_CANCELLED = 4; + + private static GTaskManager mInstance = null; + + private Activity mActivity; + + private Context mContext; + + private ContentResolver mContentResolver; + + private boolean mSyncing; + + private boolean mCancelled; + + private HashMap mGTaskListHashMap; + + private HashMap mGTaskHashMap; + + private HashMap mMetaHashMap; + + private TaskList mMetaList; + + private HashSet mLocalDeleteIdMap; + + private HashMap mGidToNid; + + private HashMap mNidToGid; + + private GTaskManager() { + mSyncing = false; + mCancelled = false; + mGTaskListHashMap = new HashMap(); + mGTaskHashMap = new HashMap(); + mMetaHashMap = new HashMap(); + mMetaList = null; + mLocalDeleteIdMap = new HashSet(); + mGidToNid = new HashMap(); + mNidToGid = new HashMap(); + } + + public static synchronized GTaskManager getInstance() { + if (mInstance == null) { + mInstance = new GTaskManager(); + } + return mInstance; + } + + public synchronized void setActivityContext(Activity activity) { + // used for getting authtoken + mActivity = activity; + } + + public int sync(Context context, GTaskASyncTask asyncTask) { + if (mSyncing) { + Log.d(TAG, "Sync is in progress"); + return STATE_SYNC_IN_PROGRESS; + } + mContext = context; + mContentResolver = mContext.getContentResolver(); + mSyncing = true; + mCancelled = false; + mGTaskListHashMap.clear(); + mGTaskHashMap.clear(); + mMetaHashMap.clear(); + mLocalDeleteIdMap.clear(); + mGidToNid.clear(); + mNidToGid.clear(); + + try { + GTaskClient client = GTaskClient.getInstance(); + client.resetUpdateArray(); + + // login google task + if (!mCancelled) { + if (!client.login(mActivity)) { + throw new NetworkFailureException("login google task failed"); + } + } + + // get the task list from google + asyncTask.publishProgess(mContext.getString(R.string.sync_progress_init_list)); + initGTaskList(); + + // do content sync work + asyncTask.publishProgess(mContext.getString(R.string.sync_progress_syncing)); + syncContent(); + } catch (NetworkFailureException e) { + Log.e(TAG, e.toString()); + return STATE_NETWORK_ERROR; + } catch (ActionFailureException e) { + Log.e(TAG, e.toString()); + return STATE_INTERNAL_ERROR; + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return STATE_INTERNAL_ERROR; + } finally { + mGTaskListHashMap.clear(); + mGTaskHashMap.clear(); + mMetaHashMap.clear(); + mLocalDeleteIdMap.clear(); + mGidToNid.clear(); + mNidToGid.clear(); + mSyncing = false; + } + + return mCancelled ? STATE_SYNC_CANCELLED : STATE_SUCCESS; + } + + private void initGTaskList() throws NetworkFailureException { + if (mCancelled) + return; + GTaskClient client = GTaskClient.getInstance(); + try { + JSONArray jsTaskLists = client.getTaskLists(); + + // init meta list first + mMetaList = null; + for (int i = 0; i < jsTaskLists.length(); i++) { + JSONObject object = jsTaskLists.getJSONObject(i); + String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); + + if (name + .equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_META)) { + mMetaList = new TaskList(); + mMetaList.setContentByRemoteJSON(object); + + // load meta data + JSONArray jsMetas = client.getTaskList(gid); + for (int j = 0; j < jsMetas.length(); j++) { + object = (JSONObject) jsMetas.getJSONObject(j); + MetaData metaData = new MetaData(); + metaData.setContentByRemoteJSON(object); + if (metaData.isWorthSaving()) { + mMetaList.addChildTask(metaData); + if (metaData.getGid() != null) { + mMetaHashMap.put(metaData.getRelatedGid(), metaData); + } + } + } + } + } + + // create meta list if not existed + if (mMetaList == null) { + mMetaList = new TaskList(); + mMetaList.setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_META); + GTaskClient.getInstance().createTaskList(mMetaList); + } + + // init task list + for (int i = 0; i < jsTaskLists.length(); i++) { + JSONObject object = jsTaskLists.getJSONObject(i); + String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); + + if (name.startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX) + && !name.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_META)) { + TaskList tasklist = new TaskList(); + tasklist.setContentByRemoteJSON(object); + mGTaskListHashMap.put(gid, tasklist); + mGTaskHashMap.put(gid, tasklist); + + // load tasks + JSONArray jsTasks = client.getTaskList(gid); + for (int j = 0; j < jsTasks.length(); j++) { + object = (JSONObject) jsTasks.getJSONObject(j); + gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + Task task = new Task(); + task.setContentByRemoteJSON(object); + if (task.isWorthSaving()) { + task.setMetaInfo(mMetaHashMap.get(gid)); + tasklist.addChildTask(task); + mGTaskHashMap.put(gid, task); + } + } + } + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("initGTaskList: handing JSONObject failed"); + } + } + + private void syncContent() throws NetworkFailureException { + int syncType; + Cursor c = null; + String gid; + Node node; + + mLocalDeleteIdMap.clear(); + + if (mCancelled) { + return; + } + + // for local deleted note + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type<>? AND parent_id=?)", new String[] { + String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) + }, null); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + doContentSync(Node.SYNC_ACTION_DEL_REMOTE, node, c); + } + + mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); + } + } else { + Log.w(TAG, "failed to query trash folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // sync folder first + syncFolder(); + + // for note existing in database + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type=? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_NOTE), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); + mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); + syncType = node.getSyncAction(c); + } else { + if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { + // local add + syncType = Node.SYNC_ACTION_ADD_REMOTE; + } else { + // remote delete + syncType = Node.SYNC_ACTION_DEL_LOCAL; + } + } + doContentSync(syncType, node, c); + } + } else { + Log.w(TAG, "failed to query existing note in database"); + } + + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // go through remaining items + Iterator> iter = mGTaskHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + node = entry.getValue(); + doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); + } + + // mCancelled can be set by another thread, so we neet to check one by + // one + // clear local delete table + if (!mCancelled) { + if (!DataUtils.batchDeleteNotes(mContentResolver, mLocalDeleteIdMap)) { + throw new ActionFailureException("failed to batch-delete local deleted notes"); + } + } + + // refresh local sync id + if (!mCancelled) { + GTaskClient.getInstance().commitUpdate(); + refreshLocalSyncId(); + } + + } + + private void syncFolder() throws NetworkFailureException { + Cursor c = null; + String gid; + Node node; + int syncType; + + if (mCancelled) { + return; + } + + // for root folder + try { + c = mContentResolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, + Notes.ID_ROOT_FOLDER), SqlNote.PROJECTION_NOTE, null, null, null); + if (c != null) { + c.moveToNext(); + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, (long) Notes.ID_ROOT_FOLDER); + mNidToGid.put((long) Notes.ID_ROOT_FOLDER, gid); + // for system folder, only update remote name if necessary + if (!node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) + doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); + } else { + doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); + } + } else { + Log.w(TAG, "failed to query root folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for call-note folder + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, "(_id=?)", + new String[] { + String.valueOf(Notes.ID_CALL_RECORD_FOLDER) + }, null); + if (c != null) { + if (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, (long) Notes.ID_CALL_RECORD_FOLDER); + mNidToGid.put((long) Notes.ID_CALL_RECORD_FOLDER, gid); + // for system folder, only update remote name if + // necessary + if (!node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_CALL_NOTE)) + doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); + } else { + doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); + } + } + } else { + Log.w(TAG, "failed to query call note folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for local existing folders + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type=? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); + mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); + syncType = node.getSyncAction(c); + } else { + if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { + // local add + syncType = Node.SYNC_ACTION_ADD_REMOTE; + } else { + // remote delete + syncType = Node.SYNC_ACTION_DEL_LOCAL; + } + } + doContentSync(syncType, node, c); + } + } else { + Log.w(TAG, "failed to query existing folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for remote add folders + Iterator> iter = mGTaskListHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + gid = entry.getKey(); + node = entry.getValue(); + if (mGTaskHashMap.containsKey(gid)) { + mGTaskHashMap.remove(gid); + doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); + } + } + + if (!mCancelled) + GTaskClient.getInstance().commitUpdate(); + } + + private void doContentSync(int syncType, Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + MetaData meta; + switch (syncType) { + case Node.SYNC_ACTION_ADD_LOCAL: + addLocalNode(node); + break; + case Node.SYNC_ACTION_ADD_REMOTE: + addRemoteNode(node, c); + break; + case Node.SYNC_ACTION_DEL_LOCAL: + meta = mMetaHashMap.get(c.getString(SqlNote.GTASK_ID_COLUMN)); + if (meta != null) { + GTaskClient.getInstance().deleteNode(meta); + } + mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); + break; + case Node.SYNC_ACTION_DEL_REMOTE: + meta = mMetaHashMap.get(node.getGid()); + if (meta != null) { + GTaskClient.getInstance().deleteNode(meta); + } + GTaskClient.getInstance().deleteNode(node); + break; + case Node.SYNC_ACTION_UPDATE_LOCAL: + updateLocalNode(node, c); + break; + case Node.SYNC_ACTION_UPDATE_REMOTE: + updateRemoteNode(node, c); + break; + case Node.SYNC_ACTION_UPDATE_CONFLICT: + // merging both modifications maybe a good idea + // right now just use local update simply + updateRemoteNode(node, c); + break; + case Node.SYNC_ACTION_NONE: + break; + case Node.SYNC_ACTION_ERROR: + default: + throw new ActionFailureException("unkown sync action type"); + } + } + + private void addLocalNode(Node node) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote; + if (node instanceof TaskList) { + if (node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) { + sqlNote = new SqlNote(mContext, Notes.ID_ROOT_FOLDER); + } else if (node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_CALL_NOTE)) { + sqlNote = new SqlNote(mContext, Notes.ID_CALL_RECORD_FOLDER); + } else { + sqlNote = new SqlNote(mContext); + sqlNote.setContent(node.getLocalJSONFromContent()); + sqlNote.setParentId(Notes.ID_ROOT_FOLDER); + } + } else { + sqlNote = new SqlNote(mContext); + JSONObject js = node.getLocalJSONFromContent(); + try { + if (js.has(GTaskStringUtils.META_HEAD_NOTE)) { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + if (note.has(NoteColumns.ID)) { + long id = note.getLong(NoteColumns.ID); + if (DataUtils.existInNoteDatabase(mContentResolver, id)) { + // the id is not available, have to create a new one + note.remove(NoteColumns.ID); + } + } + } + + if (js.has(GTaskStringUtils.META_HEAD_DATA)) { + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (data.has(DataColumns.ID)) { + long dataId = data.getLong(DataColumns.ID); + if (DataUtils.existInDataDatabase(mContentResolver, dataId)) { + // the data id is not available, have to create + // a new one + data.remove(DataColumns.ID); + } + } + } + + } + } catch (JSONException e) { + Log.w(TAG, e.toString()); + e.printStackTrace(); + } + sqlNote.setContent(js); + + Long parentId = mGidToNid.get(((Task) node).getParent().getGid()); + if (parentId == null) { + Log.e(TAG, "cannot find task's parent id locally"); + throw new ActionFailureException("cannot add local node"); + } + sqlNote.setParentId(parentId.longValue()); + } + + // create the local node + sqlNote.setGtaskId(node.getGid()); + sqlNote.commit(false); + + // update gid-nid mapping + mGidToNid.put(node.getGid(), sqlNote.getId()); + mNidToGid.put(sqlNote.getId(), node.getGid()); + + // update meta + updateRemoteMeta(node.getGid(), sqlNote); + } + + private void updateLocalNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote; + // update the note locally + sqlNote = new SqlNote(mContext, c); + sqlNote.setContent(node.getLocalJSONFromContent()); + + Long parentId = (node instanceof Task) ? mGidToNid.get(((Task) node).getParent().getGid()) + : new Long(Notes.ID_ROOT_FOLDER); + if (parentId == null) { + Log.e(TAG, "cannot find task's parent id locally"); + throw new ActionFailureException("cannot update local node"); + } + sqlNote.setParentId(parentId.longValue()); + sqlNote.commit(true); + + // update meta info + updateRemoteMeta(node.getGid(), sqlNote); + } + + private void addRemoteNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote = new SqlNote(mContext, c); + Node n; + + // update remotely + if (sqlNote.isNoteType()) { + Task task = new Task(); + task.setContentByLocalJSON(sqlNote.getContent()); + + String parentGid = mNidToGid.get(sqlNote.getParentId()); + if (parentGid == null) { + Log.e(TAG, "cannot find task's parent tasklist"); + throw new ActionFailureException("cannot add remote task"); + } + mGTaskListHashMap.get(parentGid).addChildTask(task); + + GTaskClient.getInstance().createTask(task); + n = (Node) task; + + // add meta + updateRemoteMeta(task.getGid(), sqlNote); + } else { + TaskList tasklist = null; + + // we need to skip folder if it has already existed + String folderName = GTaskStringUtils.MIUI_FOLDER_PREFFIX; + if (sqlNote.getId() == Notes.ID_ROOT_FOLDER) + folderName += GTaskStringUtils.FOLDER_DEFAULT; + else if (sqlNote.getId() == Notes.ID_CALL_RECORD_FOLDER) + folderName += GTaskStringUtils.FOLDER_CALL_NOTE; + else + folderName += sqlNote.getSnippet(); + + Iterator> iter = mGTaskListHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + String gid = entry.getKey(); + TaskList list = entry.getValue(); + + if (list.getName().equals(folderName)) { + tasklist = list; + if (mGTaskHashMap.containsKey(gid)) { + mGTaskHashMap.remove(gid); + } + break; + } + } + + // no match we can add now + if (tasklist == null) { + tasklist = new TaskList(); + tasklist.setContentByLocalJSON(sqlNote.getContent()); + GTaskClient.getInstance().createTaskList(tasklist); + mGTaskListHashMap.put(tasklist.getGid(), tasklist); + } + n = (Node) tasklist; + } + + // update local note + sqlNote.setGtaskId(n.getGid()); + sqlNote.commit(false); + sqlNote.resetLocalModified(); + sqlNote.commit(true); + + // gid-id mapping + mGidToNid.put(n.getGid(), sqlNote.getId()); + mNidToGid.put(sqlNote.getId(), n.getGid()); + } + + private void updateRemoteNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote = new SqlNote(mContext, c); + + // update remotely + node.setContentByLocalJSON(sqlNote.getContent()); + GTaskClient.getInstance().addUpdateNode(node); + + // update meta + updateRemoteMeta(node.getGid(), sqlNote); + + // move task if necessary + if (sqlNote.isNoteType()) { + Task task = (Task) node; + TaskList preParentList = task.getParent(); + + String curParentGid = mNidToGid.get(sqlNote.getParentId()); + if (curParentGid == null) { + Log.e(TAG, "cannot find task's parent tasklist"); + throw new ActionFailureException("cannot update remote task"); + } + TaskList curParentList = mGTaskListHashMap.get(curParentGid); + + if (preParentList != curParentList) { + preParentList.removeChildTask(task); + curParentList.addChildTask(task); + GTaskClient.getInstance().moveTask(task, preParentList, curParentList); + } + } + + // clear local modified flag + sqlNote.resetLocalModified(); + sqlNote.commit(true); + } + + private void updateRemoteMeta(String gid, SqlNote sqlNote) throws NetworkFailureException { + if (sqlNote != null && sqlNote.isNoteType()) { + MetaData metaData = mMetaHashMap.get(gid); + if (metaData != null) { + metaData.setMeta(gid, sqlNote.getContent()); + GTaskClient.getInstance().addUpdateNode(metaData); + } else { + metaData = new MetaData(); + metaData.setMeta(gid, sqlNote.getContent()); + mMetaList.addChildTask(metaData); + mMetaHashMap.put(gid, metaData); + GTaskClient.getInstance().createTask(metaData); + } + } + } + + private void refreshLocalSyncId() throws NetworkFailureException { + if (mCancelled) { + return; + } + + // get the latest gtask list + mGTaskHashMap.clear(); + mGTaskListHashMap.clear(); + mMetaHashMap.clear(); + initGTaskList(); + + Cursor c = null; + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type<>? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + String gid = c.getString(SqlNote.GTASK_ID_COLUMN); + Node node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + ContentValues values = new ContentValues(); + values.put(NoteColumns.SYNC_ID, node.getLastModified()); + mContentResolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, + c.getLong(SqlNote.ID_COLUMN)), values, null, null); + } else { + Log.e(TAG, "something is missed"); + throw new ActionFailureException( + "some local items don't have gid after sync"); + } + } + } else { + Log.w(TAG, "failed to query local note to refresh sync id"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + } + + public String getSyncAccount() { + return GTaskClient.getInstance().getSyncAccount().name; + } + + public void cancelSync() { + mCancelled = true; + } +} diff --git a/src/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java b/src/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java new file mode 100644 index 0000000..cca36f7 --- /dev/null +++ b/src/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Activity; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.IBinder; + +public class GTaskSyncService extends Service { + public final static String ACTION_STRING_NAME = "sync_action_type"; + + public final static int ACTION_START_SYNC = 0; + + public final static int ACTION_CANCEL_SYNC = 1; + + public final static int ACTION_INVALID = 2; + + public final static String GTASK_SERVICE_BROADCAST_NAME = "net.micode.notes.gtask.remote.gtask_sync_service"; + + public final static String GTASK_SERVICE_BROADCAST_IS_SYNCING = "isSyncing"; + + public final static String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = "progressMsg"; + + private static GTaskASyncTask mSyncTask = null; + + private static String mSyncProgress = ""; + + private void startSync() { + if (mSyncTask == null) { + mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() { + public void onComplete() { + mSyncTask = null; + sendBroadcast(""); + stopSelf(); + } + }); + sendBroadcast(""); + mSyncTask.execute(); + } + } + + private void cancelSync() { + if (mSyncTask != null) { + mSyncTask.cancelSync(); + } + } + + @Override + public void onCreate() { + mSyncTask = null; + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + Bundle bundle = intent.getExtras(); + if (bundle != null && bundle.containsKey(ACTION_STRING_NAME)) { + switch (bundle.getInt(ACTION_STRING_NAME, ACTION_INVALID)) { + case ACTION_START_SYNC: + startSync(); + break; + case ACTION_CANCEL_SYNC: + cancelSync(); + break; + default: + break; + } + return START_STICKY; + } + return super.onStartCommand(intent, flags, startId); + } + + @Override + public void onLowMemory() { + if (mSyncTask != null) { + mSyncTask.cancelSync(); + } + } + + public IBinder onBind(Intent intent) { + return null; + } + + public void sendBroadcast(String msg) { + mSyncProgress = msg; + Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); + intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != null); + intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg); + sendBroadcast(intent); + } + + public static void startSync(Activity activity) { + GTaskManager.getInstance().setActivityContext(activity); + Intent intent = new Intent(activity, GTaskSyncService.class); + intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC); + activity.startService(intent); + } + + public static void cancelSync(Context context) { + Intent intent = new Intent(context, GTaskSyncService.class); + intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC); + context.startService(intent); + } + + public static boolean isSyncing() { + return mSyncTask != null; + } + + public static String getProgressString() { + return mSyncProgress; + } +} diff --git a/src/src/main/java/net/micode/notes/model/Note.java b/src/src/main/java/net/micode/notes/model/Note.java new file mode 100644 index 0000000..6706cf6 --- /dev/null +++ b/src/src/main/java/net/micode/notes/model/Note.java @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.model; +import android.content.ContentProviderOperation; +import android.content.ContentProviderResult; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.content.OperationApplicationException; +import android.net.Uri; +import android.os.RemoteException; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.Notes.TextNote; + +import java.util.ArrayList; + + +public class Note { + private ContentValues mNoteDiffValues; + private NoteData mNoteData; + private static final String TAG = "Note"; + /** + * Create a new note id for adding a new note to databases + */ + public static synchronized long getNewNoteId(Context context, long folderId) { + // Create a new note in the database + ContentValues values = new ContentValues(); + long createdTime = System.currentTimeMillis(); + values.put(NoteColumns.CREATED_DATE, createdTime); + values.put(NoteColumns.MODIFIED_DATE, createdTime); + values.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + values.put(NoteColumns.PARENT_ID, folderId); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_NOTE_URI, values); + + long noteId = 0; + try { + noteId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + noteId = 0; + } + if (noteId == -1) { + throw new IllegalStateException("Wrong note id:" + noteId); + } + return noteId; + } + + public Note() { + mNoteDiffValues = new ContentValues(); + mNoteData = new NoteData(); + } + + public void setNoteValue(String key, String value) { + mNoteDiffValues.put(key, value); + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + public void setTextData(String key, String value) { + mNoteData.setTextData(key, value); + } + + public void setTextDataId(long id) { + mNoteData.setTextDataId(id); + } + + public long getTextDataId() { + return mNoteData.mTextDataId; + } + + public void setCallDataId(long id) { + mNoteData.setCallDataId(id); + } + + public void setCallData(String key, String value) { + mNoteData.setCallData(key, value); + } + + public boolean isLocalModified() { + return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified(); + } + + public boolean syncNote(Context context, long noteId) { + if (noteId <= 0) { + throw new IllegalArgumentException("Wrong note id:" + noteId); + } + + if (!isLocalModified()) { + return true; + } + + /** + * In theory, once data changed, the note should be updated on {@link NoteColumns#LOCAL_MODIFIED} and + * {@link NoteColumns#MODIFIED_DATE}. For data safety, though update note fails, we also update the + * note data info + */ + if (context.getContentResolver().update( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), mNoteDiffValues, null, + null) == 0) { + Log.e(TAG, "Update note error, should not happen"); + // Do not return, fall through + } + mNoteDiffValues.clear(); + + if (mNoteData.isLocalModified() + && (mNoteData.pushIntoContentResolver(context, noteId) == null)) { + return false; + } + + return true; + } + + private class NoteData { + private long mTextDataId; + + private ContentValues mTextDataValues; + + private long mCallDataId; + + private ContentValues mCallDataValues; + + private static final String TAG = "NoteData"; + + public NoteData() { + mTextDataValues = new ContentValues(); + mCallDataValues = new ContentValues(); + mTextDataId = 0; + mCallDataId = 0; + } + + boolean isLocalModified() { + return mTextDataValues.size() > 0 || mCallDataValues.size() > 0; + } + + void setTextDataId(long id) { + if(id <= 0) { + throw new IllegalArgumentException("Text data id should larger than 0"); + } + mTextDataId = id; + } + + void setCallDataId(long id) { + if (id <= 0) { + throw new IllegalArgumentException("Call data id should larger than 0"); + } + mCallDataId = id; + } + + void setCallData(String key, String value) { + mCallDataValues.put(key, value); + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + void setTextData(String key, String value) { + mTextDataValues.put(key, value); + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + Uri pushIntoContentResolver(Context context, long noteId) { + /** + * Check for safety + */ + if (noteId <= 0) { + throw new IllegalArgumentException("Wrong note id:" + noteId); + } + + ArrayList operationList = new ArrayList(); + ContentProviderOperation.Builder builder = null; + + if(mTextDataValues.size() > 0) { + mTextDataValues.put(DataColumns.NOTE_ID, noteId); + if (mTextDataId == 0) { + mTextDataValues.put(DataColumns.MIME_TYPE, TextNote.CONTENT_ITEM_TYPE); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, + mTextDataValues); + try { + setTextDataId(Long.valueOf(uri.getPathSegments().get(1))); + } catch (NumberFormatException e) { + Log.e(TAG, "Insert new text data fail with noteId" + noteId); + mTextDataValues.clear(); + return null; + } + } else { + builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mTextDataId)); + builder.withValues(mTextDataValues); + operationList.add(builder.build()); + } + mTextDataValues.clear(); + } + + if(mCallDataValues.size() > 0) { + mCallDataValues.put(DataColumns.NOTE_ID, noteId); + if (mCallDataId == 0) { + mCallDataValues.put(DataColumns.MIME_TYPE, CallNote.CONTENT_ITEM_TYPE); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, + mCallDataValues); + try { + setCallDataId(Long.valueOf(uri.getPathSegments().get(1))); + } catch (NumberFormatException e) { + Log.e(TAG, "Insert new call data fail with noteId" + noteId); + mCallDataValues.clear(); + return null; + } + } else { + builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mCallDataId)); + builder.withValues(mCallDataValues); + operationList.add(builder.build()); + } + mCallDataValues.clear(); + } + + if (operationList.size() > 0) { + try { + ContentProviderResult[] results = context.getContentResolver().applyBatch( + Notes.AUTHORITY, operationList); + return (results == null || results.length == 0 || results[0] == null) ? null + : ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId); + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + return null; + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + return null; + } + } + return null; + } + } +} diff --git a/src/src/main/java/net/micode/notes/model/WorkingNote.java b/src/src/main/java/net/micode/notes/model/WorkingNote.java new file mode 100644 index 0000000..be081e4 --- /dev/null +++ b/src/src/main/java/net/micode/notes/model/WorkingNote.java @@ -0,0 +1,368 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.model; + +import android.appwidget.AppWidgetManager; +import android.content.ContentUris; +import android.content.Context; +import android.database.Cursor; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.Notes.TextNote; +import net.micode.notes.tool.ResourceParser.NoteBgResources; + + +public class WorkingNote { + // Note for the working note + private Note mNote; + // Note Id + private long mNoteId; + // Note content + private String mContent; + // Note mode + private int mMode; + + private long mAlertDate; + + private long mModifiedDate; + + private int mBgColorId; + + private int mWidgetId; + + private int mWidgetType; + + private long mFolderId; + + private Context mContext; + + private static final String TAG = "WorkingNote"; + + private boolean mIsDeleted; + + private NoteSettingChangedListener mNoteSettingStatusListener; + + public static final String[] DATA_PROJECTION = new String[] { + DataColumns.ID, + DataColumns.CONTENT, + DataColumns.MIME_TYPE, + DataColumns.DATA1, + DataColumns.DATA2, + DataColumns.DATA3, + DataColumns.DATA4, + }; + + public static final String[] NOTE_PROJECTION = new String[] { + NoteColumns.PARENT_ID, + NoteColumns.ALERTED_DATE, + NoteColumns.BG_COLOR_ID, + NoteColumns.WIDGET_ID, + NoteColumns.WIDGET_TYPE, + NoteColumns.MODIFIED_DATE + }; + + private static final int DATA_ID_COLUMN = 0; + + private static final int DATA_CONTENT_COLUMN = 1; + + private static final int DATA_MIME_TYPE_COLUMN = 2; + + private static final int DATA_MODE_COLUMN = 3; + + private static final int NOTE_PARENT_ID_COLUMN = 0; + + private static final int NOTE_ALERTED_DATE_COLUMN = 1; + + private static final int NOTE_BG_COLOR_ID_COLUMN = 2; + + private static final int NOTE_WIDGET_ID_COLUMN = 3; + + private static final int NOTE_WIDGET_TYPE_COLUMN = 4; + + private static final int NOTE_MODIFIED_DATE_COLUMN = 5; + + // New note construct + private WorkingNote(Context context, long folderId) { + mContext = context; + mAlertDate = 0; + mModifiedDate = System.currentTimeMillis(); + mFolderId = folderId; + mNote = new Note(); + mNoteId = 0; + mIsDeleted = false; + mMode = 0; + mWidgetType = Notes.TYPE_WIDGET_INVALIDE; + } + + // Existing note construct + private WorkingNote(Context context, long noteId, long folderId) { + mContext = context; + mNoteId = noteId; + mFolderId = folderId; + mIsDeleted = false; + mNote = new Note(); + loadNote(); + } + + private void loadNote() { + Cursor cursor = mContext.getContentResolver().query( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null, + null, null); + + if (cursor != null) { + if (cursor.moveToFirst()) { + mFolderId = cursor.getLong(NOTE_PARENT_ID_COLUMN); + mBgColorId = cursor.getInt(NOTE_BG_COLOR_ID_COLUMN); + mWidgetId = cursor.getInt(NOTE_WIDGET_ID_COLUMN); + mWidgetType = cursor.getInt(NOTE_WIDGET_TYPE_COLUMN); + mAlertDate = cursor.getLong(NOTE_ALERTED_DATE_COLUMN); + mModifiedDate = cursor.getLong(NOTE_MODIFIED_DATE_COLUMN); + } + cursor.close(); + } else { + Log.e(TAG, "No note with id:" + mNoteId); + throw new IllegalArgumentException("Unable to find note with id " + mNoteId); + } + loadNoteData(); + } + + private void loadNoteData() { + Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION, + DataColumns.NOTE_ID + "=?", new String[] { + String.valueOf(mNoteId) + }, null); + + if (cursor != null) { + if (cursor.moveToFirst()) { + do { + String type = cursor.getString(DATA_MIME_TYPE_COLUMN); + if (DataConstants.NOTE.equals(type)) { + mContent = cursor.getString(DATA_CONTENT_COLUMN); + mMode = cursor.getInt(DATA_MODE_COLUMN); + mNote.setTextDataId(cursor.getLong(DATA_ID_COLUMN)); + } else if (DataConstants.CALL_NOTE.equals(type)) { + mNote.setCallDataId(cursor.getLong(DATA_ID_COLUMN)); + } else { + Log.d(TAG, "Wrong note type with type:" + type); + } + } while (cursor.moveToNext()); + } + cursor.close(); + } else { + Log.e(TAG, "No data with id:" + mNoteId); + throw new IllegalArgumentException("Unable to find note's data with id " + mNoteId); + } + } + + public static WorkingNote createEmptyNote(Context context, long folderId, int widgetId, + int widgetType, int defaultBgColorId) { + WorkingNote note = new WorkingNote(context, folderId); + note.setBgColorId(defaultBgColorId); + note.setWidgetId(widgetId); + note.setWidgetType(widgetType); + return note; + } + + public static WorkingNote load(Context context, long id) { + return new WorkingNote(context, id, 0); + } + + public synchronized boolean saveNote() { + if (isWorthSaving()) { + if (!existInDatabase()) { + if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) { + Log.e(TAG, "Create new note fail with id:" + mNoteId); + return false; + } + } + + mNote.syncNote(mContext, mNoteId); + + /** + * Update widget content if there exist any widget of this note + */ + if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && mWidgetType != Notes.TYPE_WIDGET_INVALIDE + && mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onWidgetChanged(); + } + return true; + } else { + return false; + } + } + + public boolean existInDatabase() { + return mNoteId > 0; + } + + private boolean isWorthSaving() { + if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) + || (existInDatabase() && !mNote.isLocalModified())) { + return false; + } else { + return true; + } + } + + public void setOnSettingStatusChangedListener(NoteSettingChangedListener l) { + mNoteSettingStatusListener = l; + } + + public void setAlertDate(long date, boolean set) { + if (date != mAlertDate) { + mAlertDate = date; + mNote.setNoteValue(NoteColumns.ALERTED_DATE, String.valueOf(mAlertDate)); + } + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onClockAlertChanged(date, set); + } + } + + public void markDeleted(boolean mark) { + mIsDeleted = mark; + if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && mWidgetType != Notes.TYPE_WIDGET_INVALIDE && mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onWidgetChanged(); + } + } + + public void setBgColorId(int id) { + if (id != mBgColorId) { + mBgColorId = id; + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onBackgroundColorChanged(); + } + mNote.setNoteValue(NoteColumns.BG_COLOR_ID, String.valueOf(id)); + } + } + + public void setCheckListMode(int mode) { + if (mMode != mode) { + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onCheckListModeChanged(mMode, mode); + } + mMode = mode; + mNote.setTextData(TextNote.MODE, String.valueOf(mMode)); + } + } + + public void setWidgetType(int type) { + if (type != mWidgetType) { + mWidgetType = type; + mNote.setNoteValue(NoteColumns.WIDGET_TYPE, String.valueOf(mWidgetType)); + } + } + + public void setWidgetId(int id) { + if (id != mWidgetId) { + mWidgetId = id; + mNote.setNoteValue(NoteColumns.WIDGET_ID, String.valueOf(mWidgetId)); + } + } + + public void setWorkingText(String text) { + if (!TextUtils.equals(mContent, text)) { + mContent = text; + mNote.setTextData(DataColumns.CONTENT, mContent); + } + } + + public void convertToCallNote(String phoneNumber, long callDate) { + mNote.setCallData(CallNote.CALL_DATE, String.valueOf(callDate)); + mNote.setCallData(CallNote.PHONE_NUMBER, phoneNumber); + mNote.setNoteValue(NoteColumns.PARENT_ID, String.valueOf(Notes.ID_CALL_RECORD_FOLDER)); + } + + public boolean hasClockAlert() { + return (mAlertDate > 0 ? true : false); + } + + public String getContent() { + return mContent; + } + + public long getAlertDate() { + return mAlertDate; + } + + public long getModifiedDate() { + return mModifiedDate; + } + + public int getBgColorResId() { + return NoteBgResources.getNoteBgResource(mBgColorId); + } + + public int getBgColorId() { + return mBgColorId; + } + + public int getTitleBgResId() { + return NoteBgResources.getNoteTitleBgResource(mBgColorId); + } + + public int getCheckListMode() { + return mMode; + } + + public long getNoteId() { + return mNoteId; + } + + public long getFolderId() { + return mFolderId; + } + + public int getWidgetId() { + return mWidgetId; + } + + public int getWidgetType() { + return mWidgetType; + } + + public interface NoteSettingChangedListener { + /** + * Called when the background color of current note has just changed + */ + void onBackgroundColorChanged(); + + /** + * Called when user set clock + */ + void onClockAlertChanged(long date, boolean set); + + /** + * Call when user create note from widget + */ + void onWidgetChanged(); + + /** + * Call when switch between check list mode and normal mode + * @param oldMode is previous mode before change + * @param newMode is new mode + */ + void onCheckListModeChanged(int oldMode, int newMode); + } +} diff --git a/src/src/main/java/net/micode/notes/sonar-project.properties b/src/src/main/java/net/micode/notes/sonar-project.properties new file mode 100644 index 0000000..f10fd07 --- /dev/null +++ b/src/src/main/java/net/micode/notes/sonar-project.properties @@ -0,0 +1,15 @@ +sonar.projectKey=Notes-master +sonar.projectName=My project + +sonar.sources=. + +sonar.sourceEncoding=UTF-8 + + +sonar.java.binaries=. + +sonar.language=java + +sonar.token=sqp_6c4d24dd0297b62e8c3bcb66405f408c0cd7bdcd +sonar.host.url=http://localhost:9000 +#sonar-scanner.bat -D"sonar.projectKey=Notes-master" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.token=sqp_6c4d24dd0297b62e8c3bcb66405f408c0cd7bdcd" \ No newline at end of file diff --git a/src/src/main/java/net/micode/notes/tool/BackupUtils.java b/src/src/main/java/net/micode/notes/tool/BackupUtils.java new file mode 100644 index 0000000..39f6ec4 --- /dev/null +++ b/src/src/main/java/net/micode/notes/tool/BackupUtils.java @@ -0,0 +1,344 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.Context; +import android.database.Cursor; +import android.os.Environment; +import android.text.TextUtils; +import android.text.format.DateFormat; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; + + +public class BackupUtils { + private static final String TAG = "BackupUtils"; + // Singleton stuff + private static BackupUtils sInstance; + + public static synchronized BackupUtils getInstance(Context context) { + if (sInstance == null) { + sInstance = new BackupUtils(context); + } + return sInstance; + } + + /** + * Following states are signs to represents backup or restore + * status + */ + // Currently, the sdcard is not mounted + public static final int STATE_SD_CARD_UNMOUONTED = 0; + // The backup file not exist + public static final int STATE_BACKUP_FILE_NOT_EXIST = 1; + // The data is not well formated, may be changed by other programs + public static final int STATE_DATA_DESTROIED = 2; + // Some run-time exception which causes restore or backup fails + public static final int STATE_SYSTEM_ERROR = 3; + // Backup or restore success + public static final int STATE_SUCCESS = 4; + + private TextExport mTextExport; + + private BackupUtils(Context context) { + mTextExport = new TextExport(context); + } + + private static boolean externalStorageAvailable() { + return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()); + } + + public int exportToText() { + return mTextExport.exportToText(); + } + + public String getExportedTextFileName() { + return mTextExport.mFileName; + } + + public String getExportedTextFileDir() { + return mTextExport.mFileDirectory; + } + + private static class TextExport { + private static final String[] NOTE_PROJECTION = { + NoteColumns.ID, + NoteColumns.MODIFIED_DATE, + NoteColumns.SNIPPET, + NoteColumns.TYPE + }; + + private static final int NOTE_COLUMN_ID = 0; + + private static final int NOTE_COLUMN_MODIFIED_DATE = 1; + + private static final int NOTE_COLUMN_SNIPPET = 2; + + private static final String[] DATA_PROJECTION = { + DataColumns.CONTENT, + DataColumns.MIME_TYPE, + DataColumns.DATA1, + DataColumns.DATA2, + DataColumns.DATA3, + DataColumns.DATA4, + }; + + private static final int DATA_COLUMN_CONTENT = 0; + + private static final int DATA_COLUMN_MIME_TYPE = 1; + + private static final int DATA_COLUMN_CALL_DATE = 2; + + private static final int DATA_COLUMN_PHONE_NUMBER = 4; + + private final String [] TEXT_FORMAT; + private static final int FORMAT_FOLDER_NAME = 0; + private static final int FORMAT_NOTE_DATE = 1; + private static final int FORMAT_NOTE_CONTENT = 2; + + private Context mContext; + private String mFileName; + private String mFileDirectory; + + public TextExport(Context context) { + TEXT_FORMAT = context.getResources().getStringArray(R.array.format_for_exported_note); + mContext = context; + mFileName = ""; + mFileDirectory = ""; + } + + private String getFormat(int id) { + return TEXT_FORMAT[id]; + } + + /** + * Export the folder identified by folder id to text + */ + private void exportFolderToText(String folderId, PrintStream ps) { + // Query notes belong to this folder + Cursor notesCursor = mContext.getContentResolver().query(Notes.CONTENT_NOTE_URI, + NOTE_PROJECTION, NoteColumns.PARENT_ID + "=?", new String[] { + folderId + }, null); + + if (notesCursor != null) { + if (notesCursor.moveToFirst()) { + do { + // Print note's last modified date + ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format( + mContext.getString(R.string.format_datetime_mdhm), + notesCursor.getLong(NOTE_COLUMN_MODIFIED_DATE)))); + // Query data belong to this note + String noteId = notesCursor.getString(NOTE_COLUMN_ID); + exportNoteToText(noteId, ps); + } while (notesCursor.moveToNext()); + } + notesCursor.close(); + } + } + + /** + * Export note identified by id to a print stream + */ + private void exportNoteToText(String noteId, PrintStream ps) { + Cursor dataCursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, + DATA_PROJECTION, DataColumns.NOTE_ID + "=?", new String[] { + noteId + }, null); + + if (dataCursor != null) { + if (dataCursor.moveToFirst()) { + do { + String mimeType = dataCursor.getString(DATA_COLUMN_MIME_TYPE); + if (DataConstants.CALL_NOTE.equals(mimeType)) { + // Print phone number + String phoneNumber = dataCursor.getString(DATA_COLUMN_PHONE_NUMBER); + long callDate = dataCursor.getLong(DATA_COLUMN_CALL_DATE); + String location = dataCursor.getString(DATA_COLUMN_CONTENT); + + if (!TextUtils.isEmpty(phoneNumber)) { + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), + phoneNumber)); + } + // Print call date + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), DateFormat + .format(mContext.getString(R.string.format_datetime_mdhm), + callDate))); + // Print call attachment location + if (!TextUtils.isEmpty(location)) { + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), + location)); + } + } else if (DataConstants.NOTE.equals(mimeType)) { + String content = dataCursor.getString(DATA_COLUMN_CONTENT); + if (!TextUtils.isEmpty(content)) { + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), + content)); + } + } + } while (dataCursor.moveToNext()); + } + dataCursor.close(); + } + // print a line separator between note + try { + ps.write(new byte[] { + Character.LINE_SEPARATOR, Character.LETTER_NUMBER + }); + } catch (IOException e) { + Log.e(TAG, e.toString()); + } + } + + /** + * Note will be exported as text which is user readable + */ + public int exportToText() { + if (!externalStorageAvailable()) { + Log.d(TAG, "Media was not mounted"); + return STATE_SD_CARD_UNMOUONTED; + } + + PrintStream ps = getExportToTextPrintStream(); + if (ps == null) { + Log.e(TAG, "get print stream error"); + return STATE_SYSTEM_ERROR; + } + // First export folder and its notes + Cursor folderCursor = mContext.getContentResolver().query( + Notes.CONTENT_NOTE_URI, + NOTE_PROJECTION, + "(" + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + " AND " + + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + ") OR " + + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER, null, null); + + if (folderCursor != null) { + if (folderCursor.moveToFirst()) { + do { + // Print folder's name + String folderName = ""; + if(folderCursor.getLong(NOTE_COLUMN_ID) == Notes.ID_CALL_RECORD_FOLDER) { + folderName = mContext.getString(R.string.call_record_folder_name); + } else { + folderName = folderCursor.getString(NOTE_COLUMN_SNIPPET); + } + if (!TextUtils.isEmpty(folderName)) { + ps.println(String.format(getFormat(FORMAT_FOLDER_NAME), folderName)); + } + String folderId = folderCursor.getString(NOTE_COLUMN_ID); + exportFolderToText(folderId, ps); + } while (folderCursor.moveToNext()); + } + folderCursor.close(); + } + + // Export notes in root's folder + Cursor noteCursor = mContext.getContentResolver().query( + Notes.CONTENT_NOTE_URI, + NOTE_PROJECTION, + NoteColumns.TYPE + "=" + +Notes.TYPE_NOTE + " AND " + NoteColumns.PARENT_ID + + "=0", null, null); + + if (noteCursor != null) { + if (noteCursor.moveToFirst()) { + do { + ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format( + mContext.getString(R.string.format_datetime_mdhm), + noteCursor.getLong(NOTE_COLUMN_MODIFIED_DATE)))); + // Query data belong to this note + String noteId = noteCursor.getString(NOTE_COLUMN_ID); + exportNoteToText(noteId, ps); + } while (noteCursor.moveToNext()); + } + noteCursor.close(); + } + ps.close(); + + return STATE_SUCCESS; + } + + /** + * Get a print stream pointed to the file {@generateExportedTextFile} + */ + private PrintStream getExportToTextPrintStream() { + File file = generateFileMountedOnSDcard(mContext, R.string.file_path, + R.string.file_name_txt_format); + if (file == null) { + Log.e(TAG, "create file to exported failed"); + return null; + } + mFileName = file.getName(); + mFileDirectory = mContext.getString(R.string.file_path); + PrintStream ps = null; + try { + FileOutputStream fos = new FileOutputStream(file); + ps = new PrintStream(fos); + } catch (FileNotFoundException e) { + e.printStackTrace(); + return null; + } catch (NullPointerException e) { + e.printStackTrace(); + return null; + } + return ps; + } + } + + /** + * Generate the text file to store imported data + */ + private static File generateFileMountedOnSDcard(Context context, int filePathResId, int fileNameFormatResId) { + StringBuilder sb = new StringBuilder(); + sb.append(Environment.getExternalStorageDirectory()); + sb.append(context.getString(filePathResId)); + File filedir = new File(sb.toString()); + sb.append(context.getString( + fileNameFormatResId, + DateFormat.format(context.getString(R.string.format_date_ymd), + System.currentTimeMillis()))); + File file = new File(sb.toString()); + + try { + if (!filedir.exists()) { + filedir.mkdir(); + } + if (!file.exists()) { + file.createNewFile(); + } + return file; + } catch (SecurityException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } +} + + diff --git a/src/src/main/java/net/micode/notes/tool/DataUtils.java b/src/src/main/java/net/micode/notes/tool/DataUtils.java new file mode 100644 index 0000000..2a14982 --- /dev/null +++ b/src/src/main/java/net/micode/notes/tool/DataUtils.java @@ -0,0 +1,295 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.ContentProviderOperation; +import android.content.ContentProviderResult; +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.OperationApplicationException; +import android.database.Cursor; +import android.os.RemoteException; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; + +import java.util.ArrayList; +import java.util.HashSet; + + +public class DataUtils { + public static final String TAG = "DataUtils"; + public static boolean batchDeleteNotes(ContentResolver resolver, HashSet ids) { + if (ids == null) { + Log.d(TAG, "the ids is null"); + return true; + } + if (ids.size() == 0) { + Log.d(TAG, "no id is in the hashset"); + return true; + } + + ArrayList operationList = new ArrayList(); + for (long id : ids) { + if(id == Notes.ID_ROOT_FOLDER) { + Log.e(TAG, "Don't delete system folder root"); + continue; + } + ContentProviderOperation.Builder builder = ContentProviderOperation + .newDelete(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id)); + operationList.add(builder.build()); + } + try { + ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList); + if (results == null || results.length == 0 || results[0] == null) { + Log.d(TAG, "delete notes failed, ids:" + ids.toString()); + return false; + } + return true; + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } + return false; + } + + public static void moveNoteToFoler(ContentResolver resolver, long id, long srcFolderId, long desFolderId) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.PARENT_ID, desFolderId); + values.put(NoteColumns.ORIGIN_PARENT_ID, srcFolderId); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null); + } + + public static boolean batchMoveToFolder(ContentResolver resolver, HashSet ids, + long folderId) { + if (ids == null) { + Log.d(TAG, "the ids is null"); + return true; + } + + ArrayList operationList = new ArrayList(); + for (long id : ids) { + ContentProviderOperation.Builder builder = ContentProviderOperation + .newUpdate(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id)); + builder.withValue(NoteColumns.PARENT_ID, folderId); + builder.withValue(NoteColumns.LOCAL_MODIFIED, 1); + operationList.add(builder.build()); + } + + try { + ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList); + if (results == null || results.length == 0 || results[0] == null) { + Log.d(TAG, "delete notes failed, ids:" + ids.toString()); + return false; + } + return true; + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } + return false; + } + + /** + * Get the all folder count except system folders {@link Notes#TYPE_SYSTEM}} + */ + 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); + + int count = 0; + if(cursor != null) { + if(cursor.moveToFirst()) { + try { + count = cursor.getInt(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "get folder count failed:" + e.toString()); + } finally { + cursor.close(); + } + } + } + return count; + } + + 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); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), + null, null, null, null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + public static boolean existInDataDatabase(ContentResolver resolver, long dataId) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), + null, null, null, null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + 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; + } + cursor.close(); + } + return exist; + } + + public static HashSet 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); + + HashSet set = null; + if (c != null) { + if (c.moveToFirst()) { + set = new HashSet(); + do { + try { + AppWidgetAttribute widget = new AppWidgetAttribute(); + widget.widgetId = c.getInt(0); + widget.widgetType = c.getInt(1); + set.add(widget); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, e.toString()); + } + } while (c.moveToNext()); + } + c.close(); + } + return set; + } + + 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); + + if (cursor != null && cursor.moveToFirst()) { + try { + return cursor.getString(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "Get call number fails " + e.toString()); + } finally { + cursor.close(); + } + } + return ""; + } + + 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); + + if (cursor != null) { + if (cursor.moveToFirst()) { + try { + return cursor.getLong(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "Get call note id fails " + e.toString()); + } + } + cursor.close(); + } + return 0; + } + + 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); + + if (cursor != null) { + String snippet = ""; + if (cursor.moveToFirst()) { + snippet = cursor.getString(0); + } + cursor.close(); + return snippet; + } + throw new IllegalArgumentException("Note is not found with id: " + noteId); + } + + 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); + } + } + return snippet; + } +} diff --git a/src/src/main/java/net/micode/notes/tool/GTaskStringUtils.java b/src/src/main/java/net/micode/notes/tool/GTaskStringUtils.java new file mode 100644 index 0000000..666b729 --- /dev/null +++ b/src/src/main/java/net/micode/notes/tool/GTaskStringUtils.java @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +public class GTaskStringUtils { + + public final static String GTASK_JSON_ACTION_ID = "action_id"; + + public final static String GTASK_JSON_ACTION_LIST = "action_list"; + + public final static String GTASK_JSON_ACTION_TYPE = "action_type"; + + public final static String GTASK_JSON_ACTION_TYPE_CREATE = "create"; + + public final static String GTASK_JSON_ACTION_TYPE_GETALL = "get_all"; + + public final static String GTASK_JSON_ACTION_TYPE_MOVE = "move"; + + public final static String GTASK_JSON_ACTION_TYPE_UPDATE = "update"; + + public final static String GTASK_JSON_CREATOR_ID = "creator_id"; + + public final static String GTASK_JSON_CHILD_ENTITY = "child_entity"; + + public final static String GTASK_JSON_CLIENT_VERSION = "client_version"; + + public final static String GTASK_JSON_COMPLETED = "completed"; + + public final static String GTASK_JSON_CURRENT_LIST_ID = "current_list_id"; + + public final static String GTASK_JSON_DEFAULT_LIST_ID = "default_list_id"; + + public final static String GTASK_JSON_DELETED = "deleted"; + + public final static String GTASK_JSON_DEST_LIST = "dest_list"; + + public final static String GTASK_JSON_DEST_PARENT = "dest_parent"; + + public final static String GTASK_JSON_DEST_PARENT_TYPE = "dest_parent_type"; + + public final static String GTASK_JSON_ENTITY_DELTA = "entity_delta"; + + public final static String GTASK_JSON_ENTITY_TYPE = "entity_type"; + + public final static String GTASK_JSON_GET_DELETED = "get_deleted"; + + public final static String GTASK_JSON_ID = "id"; + + public final static String GTASK_JSON_INDEX = "index"; + + public final static String GTASK_JSON_LAST_MODIFIED = "last_modified"; + + public final static String GTASK_JSON_LATEST_SYNC_POINT = "latest_sync_point"; + + public final static String GTASK_JSON_LIST_ID = "list_id"; + + public final static String GTASK_JSON_LISTS = "lists"; + + public final static String GTASK_JSON_NAME = "name"; + + public final static String GTASK_JSON_NEW_ID = "new_id"; + + public final static String GTASK_JSON_NOTES = "notes"; + + public final static String GTASK_JSON_PARENT_ID = "parent_id"; + + public final static String GTASK_JSON_PRIOR_SIBLING_ID = "prior_sibling_id"; + + public final static String GTASK_JSON_RESULTS = "results"; + + public final static String GTASK_JSON_SOURCE_LIST = "source_list"; + + public final static String GTASK_JSON_TASKS = "tasks"; + + public final static String GTASK_JSON_TYPE = "type"; + + public final static String GTASK_JSON_TYPE_GROUP = "GROUP"; + + public final static String GTASK_JSON_TYPE_TASK = "TASK"; + + public final static String GTASK_JSON_USER = "user"; + + public final static String MIUI_FOLDER_PREFFIX = "[MIUI_Notes]"; + + public final static String FOLDER_DEFAULT = "Default"; + + public final static String FOLDER_CALL_NOTE = "Call_Note"; + + public final static String FOLDER_META = "METADATA"; + + public final static String META_HEAD_GTASK_ID = "meta_gid"; + + public final static String META_HEAD_NOTE = "meta_note"; + + public final static String META_HEAD_DATA = "meta_data"; + + public final static String META_NOTE_NAME = "[META INFO] DON'T UPDATE AND DELETE"; + +} diff --git a/src/src/main/java/net/micode/notes/tool/ResourceParser.java b/src/src/main/java/net/micode/notes/tool/ResourceParser.java new file mode 100644 index 0000000..1ad3ad6 --- /dev/null +++ b/src/src/main/java/net/micode/notes/tool/ResourceParser.java @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.Context; +import android.preference.PreferenceManager; + +import net.micode.notes.R; +import net.micode.notes.ui.NotesPreferenceActivity; + +public class ResourceParser { + + public static final int YELLOW = 0; + public static final int BLUE = 1; + public static final int WHITE = 2; + public static final int GREEN = 3; + public static final int RED = 4; + + public static final int BG_DEFAULT_COLOR = YELLOW; + + public static final int TEXT_SMALL = 0; + public static final int TEXT_MEDIUM = 1; + public static final int TEXT_LARGE = 2; + public static final int TEXT_SUPER = 3; + + public static final int BG_DEFAULT_FONT_SIZE = TEXT_MEDIUM; + + public static class NoteBgResources { + private final static int [] BG_EDIT_RESOURCES = new int [] { + R.drawable.edit_yellow, + R.drawable.edit_blue, + R.drawable.edit_white, + R.drawable.edit_green, + R.drawable.edit_red + }; + + private final static int [] BG_EDIT_TITLE_RESOURCES = new int [] { + R.drawable.edit_title_yellow, + R.drawable.edit_title_blue, + R.drawable.edit_title_white, + R.drawable.edit_title_green, + R.drawable.edit_title_red + }; + + public static int getNoteBgResource(int id) { + return BG_EDIT_RESOURCES[id]; + } + + public static int getNoteTitleBgResource(int id) { + return BG_EDIT_TITLE_RESOURCES[id]; + } + } + + public static int getDefaultBgId(Context context) { + if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean( + NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) { + return (int) (Math.random() * NoteBgResources.BG_EDIT_RESOURCES.length); + } else { + return BG_DEFAULT_COLOR; + } + } + + public static class NoteItemBgResources { + private final static int [] BG_FIRST_RESOURCES = new int [] { + R.drawable.list_yellow_up, + R.drawable.list_blue_up, + R.drawable.list_white_up, + R.drawable.list_green_up, + R.drawable.list_red_up + }; + + private final static int [] BG_NORMAL_RESOURCES = new int [] { + R.drawable.list_yellow_middle, + R.drawable.list_blue_middle, + R.drawable.list_white_middle, + R.drawable.list_green_middle, + R.drawable.list_red_middle + }; + + private final static int [] BG_LAST_RESOURCES = new int [] { + R.drawable.list_yellow_down, + R.drawable.list_blue_down, + R.drawable.list_white_down, + R.drawable.list_green_down, + R.drawable.list_red_down, + }; + + private final static int [] BG_SINGLE_RESOURCES = new int [] { + R.drawable.list_yellow_single, + R.drawable.list_blue_single, + R.drawable.list_white_single, + R.drawable.list_green_single, + R.drawable.list_red_single + }; + + public static int getNoteBgFirstRes(int id) { + return BG_FIRST_RESOURCES[id]; + } + + public static int getNoteBgLastRes(int id) { + return BG_LAST_RESOURCES[id]; + } + + public static int getNoteBgSingleRes(int id) { + return BG_SINGLE_RESOURCES[id]; + } + + public static int getNoteBgNormalRes(int id) { + return BG_NORMAL_RESOURCES[id]; + } + + public static int getFolderBgRes() { + return R.drawable.list_folder; + } + } + + public static class WidgetBgResources { + private final static int [] BG_2X_RESOURCES = new int [] { + R.drawable.widget_2x_yellow, + R.drawable.widget_2x_blue, + R.drawable.widget_2x_white, + R.drawable.widget_2x_green, + R.drawable.widget_2x_red, + }; + + public static int getWidget2xBgResource(int id) { + return BG_2X_RESOURCES[id]; + } + + private final static int [] BG_4X_RESOURCES = new int [] { + R.drawable.widget_4x_yellow, + R.drawable.widget_4x_blue, + R.drawable.widget_4x_white, + R.drawable.widget_4x_green, + R.drawable.widget_4x_red + }; + + public static int getWidget4xBgResource(int id) { + return BG_4X_RESOURCES[id]; + } + } + + public static class TextAppearanceResources { + private final static int [] TEXTAPPEARANCE_RESOURCES = new int [] { + R.style.TextAppearanceNormal, + R.style.TextAppearanceMedium, + R.style.TextAppearanceLarge, + R.style.TextAppearanceSuper + }; + + public static int getTexAppearanceResource(int id) { + /** + * HACKME: Fix bug of store the resource id in shared preference. + * The id may larger than the length of resources, in this case, + * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} + */ + if (id >= TEXTAPPEARANCE_RESOURCES.length) { + return BG_DEFAULT_FONT_SIZE; + } + return TEXTAPPEARANCE_RESOURCES[id]; + } + + public static int getResourcesSize() { + return TEXTAPPEARANCE_RESOURCES.length; + } + } +} diff --git a/src/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java b/src/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java new file mode 100644 index 0000000..85723be --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.content.DialogInterface.OnDismissListener; +import android.content.Intent; +import android.media.AudioManager; +import android.media.MediaPlayer; +import android.media.RingtoneManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.PowerManager; +import android.provider.Settings; +import android.view.Window; +import android.view.WindowManager; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.DataUtils; + +import java.io.IOException; + + +public class AlarmAlertActivity extends Activity implements OnClickListener, OnDismissListener { + private long mNoteId; + private String mSnippet; + private static final int SNIPPET_PREW_MAX_LEN = 60; + MediaPlayer mPlayer; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + + final Window win = getWindow(); + win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); + + if (!isScreenOn()) { + win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON + | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON + | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON + | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR); + } + + Intent intent = getIntent(); + + try { + mNoteId = Long.valueOf(intent.getData().getPathSegments().get(1)); + mSnippet = DataUtils.getSnippetById(this.getContentResolver(), mNoteId); + mSnippet = mSnippet.length() > SNIPPET_PREW_MAX_LEN ? mSnippet.substring(0, + SNIPPET_PREW_MAX_LEN) + getResources().getString(R.string.notelist_string_info) + : mSnippet; + } catch (IllegalArgumentException e) { + e.printStackTrace(); + return; + } + + mPlayer = new MediaPlayer(); + if (DataUtils.visibleInNoteDatabase(getContentResolver(), mNoteId, Notes.TYPE_NOTE)) { + showActionDialog(); + playAlarmSound(); + } else { + finish(); + } + } + + private boolean isScreenOn() { + PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); + return pm.isScreenOn(); + } + + private void playAlarmSound() { + Uri url = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM); + + int silentModeStreams = Settings.System.getInt(getContentResolver(), + Settings.System.MODE_RINGER_STREAMS_AFFECTED, 0); + + if ((silentModeStreams & (1 << AudioManager.STREAM_ALARM)) != 0) { + mPlayer.setAudioStreamType(silentModeStreams); + } else { + mPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); + } + try { + mPlayer.setDataSource(this, url); + mPlayer.prepare(); + mPlayer.setLooping(true); + mPlayer.start(); + } catch (IllegalArgumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (SecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalStateException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private void showActionDialog() { + AlertDialog.Builder dialog = new AlertDialog.Builder(this); + dialog.setTitle(R.string.app_name); + dialog.setMessage(mSnippet); + dialog.setPositiveButton(R.string.notealert_ok, this); + if (isScreenOn()) { + dialog.setNegativeButton(R.string.notealert_enter, this); + } + dialog.show().setOnDismissListener(this); + } + + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_NEGATIVE: + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, mNoteId); + startActivity(intent); + break; + default: + break; + } + } + + public void onDismiss(DialogInterface dialog) { + stopAlarmSound(); + finish(); + } + + private void stopAlarmSound() { + if (mPlayer != null) { + mPlayer.stop(); + mPlayer.release(); + mPlayer = null; + } + } +} diff --git a/src/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java b/src/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java new file mode 100644 index 0000000..f221202 --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.AlarmManager; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.ContentUris; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; + + +public class AlarmInitReceiver extends BroadcastReceiver { + + private static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.ALERTED_DATE + }; + + private static final int COLUMN_ID = 0; + private static final int COLUMN_ALERTED_DATE = 1; + + @Override + public void onReceive(Context context, Intent intent) { + long currentDate = System.currentTimeMillis(); + Cursor c = context.getContentResolver().query(Notes.CONTENT_NOTE_URI, + PROJECTION, + NoteColumns.ALERTED_DATE + ">? AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE, + new String[] { String.valueOf(currentDate) }, + null); + + if (c != null) { + if (c.moveToFirst()) { + do { + long alertDate = c.getLong(COLUMN_ALERTED_DATE); + Intent sender = new Intent(context, AlarmReceiver.class); + sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID))); + PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, sender, 0); + AlarmManager alermManager = (AlarmManager) context + .getSystemService(Context.ALARM_SERVICE); + alermManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent); + } while (c.moveToNext()); + } + c.close(); + } + } +} diff --git a/src/src/main/java/net/micode/notes/ui/AlarmReceiver.java b/src/src/main/java/net/micode/notes/ui/AlarmReceiver.java new file mode 100644 index 0000000..54e503b --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/AlarmReceiver.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +public class AlarmReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + intent.setClass(context, AlarmAlertActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } +} diff --git a/src/src/main/java/net/micode/notes/ui/DateTimePicker.java b/src/src/main/java/net/micode/notes/ui/DateTimePicker.java new file mode 100644 index 0000000..496b0cd --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/DateTimePicker.java @@ -0,0 +1,485 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import java.text.DateFormatSymbols; +import java.util.Calendar; + +import net.micode.notes.R; + + +import android.content.Context; +import android.text.format.DateFormat; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.NumberPicker; + +public class DateTimePicker extends FrameLayout { + + private static final boolean DEFAULT_ENABLE_STATE = true; + + private static final int HOURS_IN_HALF_DAY = 12; + private static final int HOURS_IN_ALL_DAY = 24; + private static final int DAYS_IN_ALL_WEEK = 7; + private static final int DATE_SPINNER_MIN_VAL = 0; + private static final int DATE_SPINNER_MAX_VAL = DAYS_IN_ALL_WEEK - 1; + private static final int HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW = 0; + private static final int HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW = 23; + private static final int HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW = 1; + private static final int HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW = 12; + private static final int MINUT_SPINNER_MIN_VAL = 0; + private static final int MINUT_SPINNER_MAX_VAL = 59; + private static final int AMPM_SPINNER_MIN_VAL = 0; + private static final int AMPM_SPINNER_MAX_VAL = 1; + + private final NumberPicker mDateSpinner; + private final NumberPicker mHourSpinner; + private final NumberPicker mMinuteSpinner; + private final NumberPicker mAmPmSpinner; + private Calendar mDate; + + private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK]; + + private boolean mIsAm; + + private boolean mIs24HourView; + + private boolean mIsEnabled = DEFAULT_ENABLE_STATE; + + private boolean mInitialising; + + private OnDateTimeChangedListener mOnDateTimeChangedListener; + + private NumberPicker.OnValueChangeListener mOnDateChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + mDate.add(Calendar.DAY_OF_YEAR, newVal - oldVal); + updateDateControl(); + onDateTimeChanged(); + } + }; + + private NumberPicker.OnValueChangeListener mOnHourChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + boolean isDateChanged = false; + Calendar cal = Calendar.getInstance(); + if (!mIs24HourView) { + if (!mIsAm && oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, 1); + isDateChanged = true; + } else if (mIsAm && oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -1); + isDateChanged = true; + } + if (oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY || + oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { + mIsAm = !mIsAm; + updateAmPmControl(); + } + } else { + if (oldVal == HOURS_IN_ALL_DAY - 1 && newVal == 0) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, 1); + isDateChanged = true; + } else if (oldVal == 0 && newVal == HOURS_IN_ALL_DAY - 1) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -1); + isDateChanged = true; + } + } + int newHour = mHourSpinner.getValue() % HOURS_IN_HALF_DAY + (mIsAm ? 0 : HOURS_IN_HALF_DAY); + mDate.set(Calendar.HOUR_OF_DAY, newHour); + onDateTimeChanged(); + if (isDateChanged) { + setCurrentYear(cal.get(Calendar.YEAR)); + setCurrentMonth(cal.get(Calendar.MONTH)); + setCurrentDay(cal.get(Calendar.DAY_OF_MONTH)); + } + } + }; + + private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + int minValue = mMinuteSpinner.getMinValue(); + int maxValue = mMinuteSpinner.getMaxValue(); + int offset = 0; + if (oldVal == maxValue && newVal == minValue) { + offset += 1; + } else if (oldVal == minValue && newVal == maxValue) { + offset -= 1; + } + if (offset != 0) { + mDate.add(Calendar.HOUR_OF_DAY, offset); + mHourSpinner.setValue(getCurrentHour()); + updateDateControl(); + int newHour = getCurrentHourOfDay(); + if (newHour >= HOURS_IN_HALF_DAY) { + mIsAm = false; + updateAmPmControl(); + } else { + mIsAm = true; + updateAmPmControl(); + } + } + mDate.set(Calendar.MINUTE, newVal); + onDateTimeChanged(); + } + }; + + private NumberPicker.OnValueChangeListener mOnAmPmChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + mIsAm = !mIsAm; + if (mIsAm) { + mDate.add(Calendar.HOUR_OF_DAY, -HOURS_IN_HALF_DAY); + } else { + mDate.add(Calendar.HOUR_OF_DAY, HOURS_IN_HALF_DAY); + } + updateAmPmControl(); + onDateTimeChanged(); + } + }; + + public interface OnDateTimeChangedListener { + void onDateTimeChanged(DateTimePicker view, int year, int month, + int dayOfMonth, int hourOfDay, int minute); + } + + public DateTimePicker(Context context) { + this(context, System.currentTimeMillis()); + } + + public DateTimePicker(Context context, long date) { + this(context, date, DateFormat.is24HourFormat(context)); + } + + public DateTimePicker(Context context, long date, boolean is24HourView) { + super(context); + mDate = Calendar.getInstance(); + mInitialising = true; + mIsAm = getCurrentHourOfDay() >= HOURS_IN_HALF_DAY; + inflate(context, R.layout.datetime_picker, this); + + mDateSpinner = (NumberPicker) findViewById(R.id.date); + mDateSpinner.setMinValue(DATE_SPINNER_MIN_VAL); + mDateSpinner.setMaxValue(DATE_SPINNER_MAX_VAL); + mDateSpinner.setOnValueChangedListener(mOnDateChangedListener); + + mHourSpinner = (NumberPicker) findViewById(R.id.hour); + mHourSpinner.setOnValueChangedListener(mOnHourChangedListener); + mMinuteSpinner = (NumberPicker) findViewById(R.id.minute); + mMinuteSpinner.setMinValue(MINUT_SPINNER_MIN_VAL); + mMinuteSpinner.setMaxValue(MINUT_SPINNER_MAX_VAL); + mMinuteSpinner.setOnLongPressUpdateInterval(100); + mMinuteSpinner.setOnValueChangedListener(mOnMinuteChangedListener); + + String[] stringsForAmPm = new DateFormatSymbols().getAmPmStrings(); + mAmPmSpinner = (NumberPicker) findViewById(R.id.amPm); + mAmPmSpinner.setMinValue(AMPM_SPINNER_MIN_VAL); + mAmPmSpinner.setMaxValue(AMPM_SPINNER_MAX_VAL); + mAmPmSpinner.setDisplayedValues(stringsForAmPm); + mAmPmSpinner.setOnValueChangedListener(mOnAmPmChangedListener); + + // update controls to initial state + updateDateControl(); + updateHourControl(); + updateAmPmControl(); + + set24HourView(is24HourView); + + // set to current time + setCurrentDate(date); + + setEnabled(isEnabled()); + + // set the content descriptions + mInitialising = false; + } + + @Override + public void setEnabled(boolean enabled) { + if (mIsEnabled == enabled) { + return; + } + super.setEnabled(enabled); + mDateSpinner.setEnabled(enabled); + mMinuteSpinner.setEnabled(enabled); + mHourSpinner.setEnabled(enabled); + mAmPmSpinner.setEnabled(enabled); + mIsEnabled = enabled; + } + + @Override + public boolean isEnabled() { + return mIsEnabled; + } + + /** + * Get the current date in millis + * + * @return the current date in millis + */ + public long getCurrentDateInTimeMillis() { + return mDate.getTimeInMillis(); + } + + /** + * Set the current date + * + * @param date The current date in millis + */ + public void setCurrentDate(long date) { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(date); + setCurrentDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), + cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE)); + } + + /** + * Set the current date + * + * @param year The current year + * @param month The current month + * @param dayOfMonth The current dayOfMonth + * @param hourOfDay The current hourOfDay + * @param minute The current minute + */ + public void setCurrentDate(int year, int month, + int dayOfMonth, int hourOfDay, int minute) { + setCurrentYear(year); + setCurrentMonth(month); + setCurrentDay(dayOfMonth); + setCurrentHour(hourOfDay); + setCurrentMinute(minute); + } + + /** + * Get current year + * + * @return The current year + */ + public int getCurrentYear() { + return mDate.get(Calendar.YEAR); + } + + /** + * Set current year + * + * @param year The current year + */ + public void setCurrentYear(int year) { + if (!mInitialising && year == getCurrentYear()) { + return; + } + mDate.set(Calendar.YEAR, year); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current month in the year + * + * @return The current month in the year + */ + public int getCurrentMonth() { + return mDate.get(Calendar.MONTH); + } + + /** + * Set current month in the year + * + * @param month The month in the year + */ + public void setCurrentMonth(int month) { + if (!mInitialising && month == getCurrentMonth()) { + return; + } + mDate.set(Calendar.MONTH, month); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current day of the month + * + * @return The day of the month + */ + public int getCurrentDay() { + return mDate.get(Calendar.DAY_OF_MONTH); + } + + /** + * Set current day of the month + * + * @param dayOfMonth The day of the month + */ + public void setCurrentDay(int dayOfMonth) { + if (!mInitialising && dayOfMonth == getCurrentDay()) { + return; + } + mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current hour in 24 hour mode, in the range (0~23) + * @return The current hour in 24 hour mode + */ + public int getCurrentHourOfDay() { + return mDate.get(Calendar.HOUR_OF_DAY); + } + + private int getCurrentHour() { + if (mIs24HourView){ + return getCurrentHourOfDay(); + } else { + int hour = getCurrentHourOfDay(); + if (hour > HOURS_IN_HALF_DAY) { + return hour - HOURS_IN_HALF_DAY; + } else { + return hour == 0 ? HOURS_IN_HALF_DAY : hour; + } + } + } + + /** + * Set current hour in 24 hour mode, in the range (0~23) + * + * @param hourOfDay + */ + public void setCurrentHour(int hourOfDay) { + if (!mInitialising && hourOfDay == getCurrentHourOfDay()) { + return; + } + mDate.set(Calendar.HOUR_OF_DAY, hourOfDay); + if (!mIs24HourView) { + if (hourOfDay >= HOURS_IN_HALF_DAY) { + mIsAm = false; + if (hourOfDay > HOURS_IN_HALF_DAY) { + hourOfDay -= HOURS_IN_HALF_DAY; + } + } else { + mIsAm = true; + if (hourOfDay == 0) { + hourOfDay = HOURS_IN_HALF_DAY; + } + } + updateAmPmControl(); + } + mHourSpinner.setValue(hourOfDay); + onDateTimeChanged(); + } + + /** + * Get currentMinute + * + * @return The Current Minute + */ + public int getCurrentMinute() { + return mDate.get(Calendar.MINUTE); + } + + /** + * Set current minute + */ + public void setCurrentMinute(int minute) { + if (!mInitialising && minute == getCurrentMinute()) { + return; + } + mMinuteSpinner.setValue(minute); + mDate.set(Calendar.MINUTE, minute); + onDateTimeChanged(); + } + + /** + * @return true if this is in 24 hour view else false. + */ + public boolean is24HourView () { + return mIs24HourView; + } + + /** + * Set whether in 24 hour or AM/PM mode. + * + * @param is24HourView True for 24 hour mode. False for AM/PM mode. + */ + public void set24HourView(boolean is24HourView) { + if (mIs24HourView == is24HourView) { + return; + } + mIs24HourView = is24HourView; + mAmPmSpinner.setVisibility(is24HourView ? View.GONE : View.VISIBLE); + int hour = getCurrentHourOfDay(); + updateHourControl(); + setCurrentHour(hour); + updateAmPmControl(); + } + + private void updateDateControl() { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -DAYS_IN_ALL_WEEK / 2 - 1); + mDateSpinner.setDisplayedValues(null); + for (int i = 0; i < DAYS_IN_ALL_WEEK; ++i) { + cal.add(Calendar.DAY_OF_YEAR, 1); + mDateDisplayValues[i] = (String) DateFormat.format("MM.dd EEEE", cal); + } + mDateSpinner.setDisplayedValues(mDateDisplayValues); + mDateSpinner.setValue(DAYS_IN_ALL_WEEK / 2); + mDateSpinner.invalidate(); + } + + private void updateAmPmControl() { + if (mIs24HourView) { + mAmPmSpinner.setVisibility(View.GONE); + } else { + int index = mIsAm ? Calendar.AM : Calendar.PM; + mAmPmSpinner.setValue(index); + mAmPmSpinner.setVisibility(View.VISIBLE); + } + } + + private void updateHourControl() { + if (mIs24HourView) { + mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW); + mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW); + } else { + mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW); + mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW); + } + } + + /** + * Set the callback that indicates the 'Set' button has been pressed. + * @param callback the callback, if null will do nothing + */ + public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) { + mOnDateTimeChangedListener = callback; + } + + private void onDateTimeChanged() { + if (mOnDateTimeChangedListener != null) { + mOnDateTimeChangedListener.onDateTimeChanged(this, getCurrentYear(), + getCurrentMonth(), getCurrentDay(), getCurrentHourOfDay(), getCurrentMinute()); + } + } +} diff --git a/src/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java b/src/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java new file mode 100644 index 0000000..2c47ba4 --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import java.util.Calendar; + +import net.micode.notes.R; +import net.micode.notes.ui.DateTimePicker; +import net.micode.notes.ui.DateTimePicker.OnDateTimeChangedListener; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.text.format.DateFormat; +import android.text.format.DateUtils; + +public class DateTimePickerDialog extends AlertDialog implements OnClickListener { + + private Calendar mDate = Calendar.getInstance(); + private boolean mIs24HourView; + private OnDateTimeSetListener mOnDateTimeSetListener; + private DateTimePicker mDateTimePicker; + + public interface OnDateTimeSetListener { + void OnDateTimeSet(AlertDialog dialog, long date); + } + + public DateTimePickerDialog(Context context, long date) { + super(context); + mDateTimePicker = new DateTimePicker(context); + setView(mDateTimePicker); + mDateTimePicker.setOnDateTimeChangedListener(new OnDateTimeChangedListener() { + public void onDateTimeChanged(DateTimePicker view, int year, int month, + int dayOfMonth, int hourOfDay, int minute) { + mDate.set(Calendar.YEAR, year); + mDate.set(Calendar.MONTH, month); + mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); + mDate.set(Calendar.HOUR_OF_DAY, hourOfDay); + mDate.set(Calendar.MINUTE, minute); + updateTitle(mDate.getTimeInMillis()); + } + }); + mDate.setTimeInMillis(date); + mDate.set(Calendar.SECOND, 0); + mDateTimePicker.setCurrentDate(mDate.getTimeInMillis()); + setButton(context.getString(R.string.datetime_dialog_ok), this); + setButton2(context.getString(R.string.datetime_dialog_cancel), (OnClickListener)null); + set24HourView(DateFormat.is24HourFormat(this.getContext())); + updateTitle(mDate.getTimeInMillis()); + } + + public void set24HourView(boolean is24HourView) { + mIs24HourView = is24HourView; + } + + public void setOnDateTimeSetListener(OnDateTimeSetListener callBack) { + mOnDateTimeSetListener = callBack; + } + + private void updateTitle(long date) { + int flag = + DateUtils.FORMAT_SHOW_YEAR | + DateUtils.FORMAT_SHOW_DATE | + DateUtils.FORMAT_SHOW_TIME; + flag |= mIs24HourView ? DateUtils.FORMAT_24HOUR : DateUtils.FORMAT_24HOUR; + setTitle(DateUtils.formatDateTime(this.getContext(), date, flag)); + } + + public void onClick(DialogInterface arg0, int arg1) { + if (mOnDateTimeSetListener != null) { + mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis()); + } + } + +} \ No newline at end of file diff --git a/src/src/main/java/net/micode/notes/ui/DropdownMenu.java b/src/src/main/java/net/micode/notes/ui/DropdownMenu.java new file mode 100644 index 0000000..613dc74 --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/DropdownMenu.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.PopupMenu; +import android.widget.PopupMenu.OnMenuItemClickListener; + +import net.micode.notes.R; + +public class DropdownMenu { + private Button mButton; + private PopupMenu mPopupMenu; + private Menu mMenu; + + public DropdownMenu(Context context, Button button, int menuId) { + mButton = button; + mButton.setBackgroundResource(R.drawable.dropdown_icon); + mPopupMenu = new PopupMenu(context, mButton); + mMenu = mPopupMenu.getMenu(); + mPopupMenu.getMenuInflater().inflate(menuId, mMenu); + mButton.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + mPopupMenu.show(); + } + }); + } + + public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) { + if (mPopupMenu != null) { + mPopupMenu.setOnMenuItemClickListener(listener); + } + } + + public MenuItem findItem(int id) { + return mMenu.findItem(id); + } + + public void setTitle(CharSequence title) { + mButton.setText(title); + } +} diff --git a/src/src/main/java/net/micode/notes/ui/FoldersListAdapter.java b/src/src/main/java/net/micode/notes/ui/FoldersListAdapter.java new file mode 100644 index 0000000..96b77da --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/FoldersListAdapter.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CursorAdapter; +import android.widget.LinearLayout; +import android.widget.TextView; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; + + +public class FoldersListAdapter extends CursorAdapter { + public static final String [] PROJECTION = { + NoteColumns.ID, + NoteColumns.SNIPPET + }; + + public static final int ID_COLUMN = 0; + public static final int NAME_COLUMN = 1; + + public FoldersListAdapter(Context context, Cursor c) { + super(context, c); + // TODO Auto-generated constructor stub + } + + @Override + public View newView(Context context, Cursor cursor, ViewGroup parent) { + return new FolderListItem(context); + } + + @Override + public void bindView(View view, Context context, Cursor cursor) { + if (view instanceof FolderListItem) { + String folderName = (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context + .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); + ((FolderListItem) view).bind(folderName); + } + } + + public String getFolderName(Context context, int position) { + Cursor cursor = (Cursor) getItem(position); + return (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context + .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); + } + + private class FolderListItem extends LinearLayout { + private TextView mName; + + public FolderListItem(Context context) { + super(context); + inflate(context, R.layout.folder_list_item, this); + mName = (TextView) findViewById(R.id.tv_folder_name); + } + + public void bind(String name) { + mName.setText(name); + } + } + +} diff --git a/src/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/src/src/main/java/net/micode/notes/ui/NoteEditActivity.java new file mode 100644 index 0000000..96a9ff8 --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -0,0 +1,873 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlarmManager; +import android.app.AlertDialog; +import android.app.PendingIntent; +import android.app.SearchManager; +import android.appwidget.AppWidgetManager; +import android.content.ContentUris; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Paint; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.TextUtils; +import android.text.format.DateUtils; +import android.text.style.BackgroundColorSpan; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.TextNote; +import net.micode.notes.model.WorkingNote; +import net.micode.notes.model.WorkingNote.NoteSettingChangedListener; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.tool.ResourceParser.TextAppearanceResources; +import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener; +import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener; +import net.micode.notes.widget.NoteWidgetProvider_2x; +import net.micode.notes.widget.NoteWidgetProvider_4x; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +public class NoteEditActivity extends Activity implements OnClickListener, + NoteSettingChangedListener, OnTextViewChangeListener { + private class HeadViewHolder { + public TextView tvModified; + + public ImageView ivAlertIcon; + + public TextView tvAlertDate; + + public ImageView ibSetBgColor; + } + + private static final Map sBgSelectorBtnsMap = new HashMap(); + static { + sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW); + sBgSelectorBtnsMap.put(R.id.iv_bg_red, ResourceParser.RED); + sBgSelectorBtnsMap.put(R.id.iv_bg_blue, ResourceParser.BLUE); + sBgSelectorBtnsMap.put(R.id.iv_bg_green, ResourceParser.GREEN); + sBgSelectorBtnsMap.put(R.id.iv_bg_white, ResourceParser.WHITE); + } + + private static final Map sBgSelectorSelectionMap = new HashMap(); + static { + sBgSelectorSelectionMap.put(ResourceParser.YELLOW, R.id.iv_bg_yellow_select); + sBgSelectorSelectionMap.put(ResourceParser.RED, R.id.iv_bg_red_select); + sBgSelectorSelectionMap.put(ResourceParser.BLUE, R.id.iv_bg_blue_select); + sBgSelectorSelectionMap.put(ResourceParser.GREEN, R.id.iv_bg_green_select); + sBgSelectorSelectionMap.put(ResourceParser.WHITE, R.id.iv_bg_white_select); + } + + private static final Map sFontSizeBtnsMap = new HashMap(); + static { + sFontSizeBtnsMap.put(R.id.ll_font_large, ResourceParser.TEXT_LARGE); + sFontSizeBtnsMap.put(R.id.ll_font_small, ResourceParser.TEXT_SMALL); + sFontSizeBtnsMap.put(R.id.ll_font_normal, ResourceParser.TEXT_MEDIUM); + sFontSizeBtnsMap.put(R.id.ll_font_super, ResourceParser.TEXT_SUPER); + } + + private static final Map sFontSelectorSelectionMap = new HashMap(); + static { + sFontSelectorSelectionMap.put(ResourceParser.TEXT_LARGE, R.id.iv_large_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_SMALL, R.id.iv_small_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_MEDIUM, R.id.iv_medium_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_SUPER, R.id.iv_super_select); + } + + private static final String TAG = "NoteEditActivity"; + + private HeadViewHolder mNoteHeaderHolder; + + private View mHeadViewPanel; + + private View mNoteBgColorSelector; + + private View mFontSizeSelector; + + private EditText mNoteEditor; + + private View mNoteEditorPanel; + + private WorkingNote mWorkingNote; + + private SharedPreferences mSharedPrefs; + private int mFontSizeId; + + private static final String PREFERENCE_FONT_SIZE = "pref_font_size"; + + private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10; + + public static final String TAG_CHECKED = String.valueOf('\u221A'); + public static final String TAG_UNCHECKED = String.valueOf('\u25A1'); + + private LinearLayout mEditTextList; + + private String mUserQuery; + private Pattern mPattern; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + this.setContentView(R.layout.note_edit); + + if (savedInstanceState == null && !initActivityState(getIntent())) { + finish(); + return; + } + initResources(); + } + + /** + * Current activity may be killed when the memory is low. Once it is killed, for another time + * user load this activity, we should restore the former state + */ + @Override + protected void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + if (savedInstanceState != null && savedInstanceState.containsKey(Intent.EXTRA_UID)) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, savedInstanceState.getLong(Intent.EXTRA_UID)); + if (!initActivityState(intent)) { + finish(); + return; + } + Log.d(TAG, "Restoring from killed activity"); + } + } + + private boolean initActivityState(Intent intent) { + /** + * If the user specified the {@link Intent#ACTION_VIEW} but not provided with id, + * then jump to the NotesListActivity + */ + mWorkingNote = null; + if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) { + long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0); + mUserQuery = ""; + + /** + * Starting from the searched result + */ + if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) { + noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY)); + mUserQuery = intent.getStringExtra(SearchManager.USER_QUERY); + } + + if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) { + Intent jump = new Intent(this, NotesListActivity.class); + startActivity(jump); + showToast(R.string.error_note_not_exist); + finish(); + return false; + } else { + mWorkingNote = WorkingNote.load(this, noteId); + if (mWorkingNote == null) { + Log.e(TAG, "load note failed with note id" + noteId); + finish(); + return false; + } + } + getWindow().setSoftInputMode( + WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN + | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); + } else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) { + // New note + long folderId = intent.getLongExtra(Notes.INTENT_EXTRA_FOLDER_ID, 0); + int widgetId = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_ID, + AppWidgetManager.INVALID_APPWIDGET_ID); + int widgetType = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, + Notes.TYPE_WIDGET_INVALIDE); + int bgResId = intent.getIntExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, + ResourceParser.getDefaultBgId(this)); + + // Parse call-record note + String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); + long callDate = intent.getLongExtra(Notes.INTENT_EXTRA_CALL_DATE, 0); + if (callDate != 0 && phoneNumber != null) { + if (TextUtils.isEmpty(phoneNumber)) { + Log.w(TAG, "The call record number is null"); + } + long noteId = 0; + if ((noteId = DataUtils.getNoteIdByPhoneNumberAndCallDate(getContentResolver(), + phoneNumber, callDate)) > 0) { + mWorkingNote = WorkingNote.load(this, noteId); + if (mWorkingNote == null) { + Log.e(TAG, "load call note failed with note id" + noteId); + finish(); + return false; + } + } else { + mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, + widgetType, bgResId); + mWorkingNote.convertToCallNote(phoneNumber, callDate); + } + } else { + mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, widgetType, + bgResId); + } + + getWindow().setSoftInputMode( + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE + | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); + } else { + Log.e(TAG, "Intent not specified action, should not support"); + finish(); + return false; + } + mWorkingNote.setOnSettingStatusChangedListener(this); + return true; + } + + @Override + protected void onResume() { + super.onResume(); + initNoteScreen(); + } + + private void initNoteScreen() { + mNoteEditor.setTextAppearance(this, TextAppearanceResources + .getTexAppearanceResource(mFontSizeId)); + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + switchToListMode(mWorkingNote.getContent()); + } else { + mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); + mNoteEditor.setSelection(mNoteEditor.getText().length()); + } + for (Integer id : sBgSelectorSelectionMap.keySet()) { + findViewById(sBgSelectorSelectionMap.get(id)).setVisibility(View.GONE); + } + mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); + mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); + + mNoteHeaderHolder.tvModified.setText(DateUtils.formatDateTime(this, + mWorkingNote.getModifiedDate(), DateUtils.FORMAT_SHOW_DATE + | DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_SHOW_TIME + | DateUtils.FORMAT_SHOW_YEAR)); + + /** + * TODO: Add the menu for setting alert. Currently disable it because the DateTimePicker + * is not ready + */ + showAlertHeader(); + } + + private void showAlertHeader() { + if (mWorkingNote.hasClockAlert()) { + long time = System.currentTimeMillis(); + if (time > mWorkingNote.getAlertDate()) { + mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired); + } else { + mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString( + mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS)); + } + mNoteHeaderHolder.tvAlertDate.setVisibility(View.VISIBLE); + mNoteHeaderHolder.ivAlertIcon.setVisibility(View.VISIBLE); + } else { + mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE); + mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE); + }; + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + initActivityState(intent); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + /** + * For new note without note id, we should firstly save it to + * generate a id. If the editing note is not worth saving, there + * is no id which is equivalent to create new note + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + outState.putLong(Intent.EXTRA_UID, mWorkingNote.getNoteId()); + Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState"); + } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + if (mNoteBgColorSelector.getVisibility() == View.VISIBLE + && !inRangeOfView(mNoteBgColorSelector, ev)) { + mNoteBgColorSelector.setVisibility(View.GONE); + return true; + } + + if (mFontSizeSelector.getVisibility() == View.VISIBLE + && !inRangeOfView(mFontSizeSelector, ev)) { + mFontSizeSelector.setVisibility(View.GONE); + return true; + } + return super.dispatchTouchEvent(ev); + } + + private boolean inRangeOfView(View view, MotionEvent ev) { + int []location = new int[2]; + view.getLocationOnScreen(location); + int x = location[0]; + int y = location[1]; + if (ev.getX() < x + || ev.getX() > (x + view.getWidth()) + || ev.getY() < y + || ev.getY() > (y + view.getHeight())) { + return false; + } + return true; + } + + private void initResources() { + mHeadViewPanel = findViewById(R.id.note_title); + mNoteHeaderHolder = new HeadViewHolder(); + mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date); + mNoteHeaderHolder.ivAlertIcon = (ImageView) findViewById(R.id.iv_alert_icon); + mNoteHeaderHolder.tvAlertDate = (TextView) findViewById(R.id.tv_alert_date); + mNoteHeaderHolder.ibSetBgColor = (ImageView) findViewById(R.id.btn_set_bg_color); + mNoteHeaderHolder.ibSetBgColor.setOnClickListener(this); + mNoteEditor = (EditText) findViewById(R.id.note_edit_view); + mNoteEditorPanel = findViewById(R.id.sv_note_edit); + mNoteBgColorSelector = findViewById(R.id.note_bg_color_selector); + for (int id : sBgSelectorBtnsMap.keySet()) { + ImageView iv = (ImageView) findViewById(id); + iv.setOnClickListener(this); + } + + mFontSizeSelector = findViewById(R.id.font_size_selector); + for (int id : sFontSizeBtnsMap.keySet()) { + View view = findViewById(id); + view.setOnClickListener(this); + }; + mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); + mFontSizeId = mSharedPrefs.getInt(PREFERENCE_FONT_SIZE, ResourceParser.BG_DEFAULT_FONT_SIZE); + /** + * HACKME: Fix bug of store the resource id in shared preference. + * The id may larger than the length of resources, in this case, + * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} + */ + if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) { + mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE; + } + mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list); + } + + @Override + protected void onPause() { + super.onPause(); + if(saveNote()) { + Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length()); + } + clearSettingState(); + } + + private void updateWidget() { + Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) { + intent.setClass(this, NoteWidgetProvider_2x.class); + } else if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_4X) { + intent.setClass(this, NoteWidgetProvider_4x.class); + } else { + Log.e(TAG, "Unspported widget type"); + return; + } + + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { + mWorkingNote.getWidgetId() + }); + + sendBroadcast(intent); + setResult(RESULT_OK, intent); + } + + public void onClick(View v) { + int id = v.getId(); + if (id == R.id.btn_set_bg_color) { + mNoteBgColorSelector.setVisibility(View.VISIBLE); + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + - View.VISIBLE); + } else if (sBgSelectorBtnsMap.containsKey(id)) { + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + View.GONE); + mWorkingNote.setBgColorId(sBgSelectorBtnsMap.get(id)); + mNoteBgColorSelector.setVisibility(View.GONE); + } else if (sFontSizeBtnsMap.containsKey(id)) { + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.GONE); + mFontSizeId = sFontSizeBtnsMap.get(id); + mSharedPrefs.edit().putInt(PREFERENCE_FONT_SIZE, mFontSizeId).commit(); + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + getWorkingText(); + switchToListMode(mWorkingNote.getContent()); + } else { + mNoteEditor.setTextAppearance(this, + TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + } + mFontSizeSelector.setVisibility(View.GONE); + } + } + + @Override + public void onBackPressed() { + if(clearSettingState()) { + return; + } + + saveNote(); + super.onBackPressed(); + } + + private boolean clearSettingState() { + if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) { + mNoteBgColorSelector.setVisibility(View.GONE); + return true; + } else if (mFontSizeSelector.getVisibility() == View.VISIBLE) { + mFontSizeSelector.setVisibility(View.GONE); + return true; + } + return false; + } + + public void onBackgroundColorChanged() { + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + View.VISIBLE); + mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); + mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + if (isFinishing()) { + return true; + } + clearSettingState(); + menu.clear(); + if (mWorkingNote.getFolderId() == Notes.ID_CALL_RECORD_FOLDER) { + getMenuInflater().inflate(R.menu.call_note_edit, menu); + } else { + getMenuInflater().inflate(R.menu.note_edit, menu); + } + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_normal_mode); + } else { + menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_list_mode); + } + if (mWorkingNote.hasClockAlert()) { + menu.findItem(R.id.menu_alert).setVisible(false); + } else { + menu.findItem(R.id.menu_delete_remind).setVisible(false); + } + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_new_note: + createNewNote(); + 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, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + deleteCurrentNote(); + finish(); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show(); + break; + case R.id.menu_font_size: + mFontSizeSelector.setVisibility(View.VISIBLE); + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); + break; + case R.id.menu_list_mode: + mWorkingNote.setCheckListMode(mWorkingNote.getCheckListMode() == 0 ? + TextNote.MODE_CHECK_LIST : 0); + break; + case R.id.menu_share: + getWorkingText(); + sendTo(this, mWorkingNote.getContent()); + break; + case R.id.menu_send_to_desktop: + sendToDesktop(); + break; + case R.id.menu_alert: + setReminder(); + break; + case R.id.menu_delete_remind: + mWorkingNote.setAlertDate(0, false); + break; + default: + break; + } + return true; + } + + private void setReminder() { + DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis()); + d.setOnDateTimeSetListener(new OnDateTimeSetListener() { + public void OnDateTimeSet(AlertDialog dialog, long date) { + mWorkingNote.setAlertDate(date , true); + } + }); + d.show(); + } + + /** + * Share note to apps that support {@link Intent#ACTION_SEND} action + * and {@text/plain} type + */ + private void sendTo(Context context, String info) { + Intent intent = new Intent(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_TEXT, info); + intent.setType("text/plain"); + context.startActivity(intent); + } + + private void createNewNote() { + // Firstly, save current editing notes + saveNote(); + + // For safety, start a new NoteEditActivity + finish(); + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId()); + startActivity(intent); + } + + private void deleteCurrentNote() { + if (mWorkingNote.existInDatabase()) { + HashSet ids = new HashSet(); + long id = mWorkingNote.getNoteId(); + if (id != Notes.ID_ROOT_FOLDER) { + ids.add(id); + } else { + Log.d(TAG, "Wrong note id, should not happen"); + } + if (!isSyncMode()) { + if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) { + 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); + } + + private boolean isSyncMode() { + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + } + + public void onClockAlertChanged(long date, boolean set) { + /** + * User could set clock to an unsaved note, so before setting the + * alert clock, we should save the note first + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + if (mWorkingNote.getNoteId() > 0) { + Intent intent = new Intent(this, AlarmReceiver.class); + intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId())); + PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); + AlarmManager alarmManager = ((AlarmManager) getSystemService(ALARM_SERVICE)); + showAlertHeader(); + if(!set) { + alarmManager.cancel(pendingIntent); + } else { + alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent); + } + } else { + /** + * There is the condition that user has input nothing (the note is + * not worthy saving), we have no note id, remind the user that he + * should input something + */ + Log.e(TAG, "Clock alert setting error"); + showToast(R.string.error_note_empty_for_clock); + } + } + + public void onWidgetChanged() { + updateWidget(); + } + + public void onEditTextDelete(int index, String text) { + int childCount = mEditTextList.getChildCount(); + if (childCount == 1) { + return; + } + + for (int i = index + 1; i < childCount; i++) { + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + .setIndex(i - 1); + } + + mEditTextList.removeViewAt(index); + NoteEditText edit = null; + if(index == 0) { + edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById( + R.id.et_edit_text); + } else { + edit = (NoteEditText) mEditTextList.getChildAt(index - 1).findViewById( + R.id.et_edit_text); + } + int length = edit.length(); + edit.append(text); + edit.requestFocus(); + edit.setSelection(length); + } + + public void onEditTextEnter(int index, String text) { + /** + * Should not happen, check for debug + */ + if(index > mEditTextList.getChildCount()) { + Log.e(TAG, "Index out of mEditTextList boundrary, should not happen"); + } + + View view = getListItem(text, index); + mEditTextList.addView(view, index); + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + edit.requestFocus(); + edit.setSelection(0); + for (int i = index + 1; i < mEditTextList.getChildCount(); i++) { + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + .setIndex(i); + } + } + + private void switchToListMode(String text) { + mEditTextList.removeAllViews(); + String[] items = text.split("\n"); + int index = 0; + for (String item : items) { + if(!TextUtils.isEmpty(item)) { + mEditTextList.addView(getListItem(item, index)); + index++; + } + } + mEditTextList.addView(getListItem("", index)); + mEditTextList.getChildAt(index).findViewById(R.id.et_edit_text).requestFocus(); + + mNoteEditor.setVisibility(View.GONE); + mEditTextList.setVisibility(View.VISIBLE); + } + + private Spannable getHighlightQueryResult(String fullText, String userQuery) { + SpannableString spannable = new SpannableString(fullText == null ? "" : fullText); + if (!TextUtils.isEmpty(userQuery)) { + mPattern = Pattern.compile(userQuery); + Matcher m = mPattern.matcher(fullText); + int start = 0; + while (m.find(start)) { + spannable.setSpan( + new BackgroundColorSpan(this.getResources().getColor( + R.color.user_query_highlight)), m.start(), m.end(), + Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + start = m.end(); + } + } + return spannable; + } + + private View getListItem(String item, int index) { + View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null); + final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + edit.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + CheckBox cb = ((CheckBox) view.findViewById(R.id.cb_edit_item)); + cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + } else { + edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); + } + } + }); + + if (item.startsWith(TAG_CHECKED)) { + cb.setChecked(true); + edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + item = item.substring(TAG_CHECKED.length(), item.length()).trim(); + } else if (item.startsWith(TAG_UNCHECKED)) { + cb.setChecked(false); + edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); + item = item.substring(TAG_UNCHECKED.length(), item.length()).trim(); + } + + edit.setOnTextViewChangeListener(this); + edit.setIndex(index); + edit.setText(getHighlightQueryResult(item, mUserQuery)); + return view; + } + + public void onTextChange(int index, boolean hasText) { + if (index >= mEditTextList.getChildCount()) { + Log.e(TAG, "Wrong index, should not happen"); + return; + } + if(hasText) { + mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.VISIBLE); + } else { + mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.GONE); + } + } + + public void onCheckListModeChanged(int oldMode, int newMode) { + if (newMode == TextNote.MODE_CHECK_LIST) { + switchToListMode(mNoteEditor.getText().toString()); + } else { + if (!getWorkingText()) { + mWorkingNote.setWorkingText(mWorkingNote.getContent().replace(TAG_UNCHECKED + " ", + "")); + } + mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); + mEditTextList.setVisibility(View.GONE); + mNoteEditor.setVisibility(View.VISIBLE); + } + } + + private boolean getWorkingText() { + boolean hasChecked = false; + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < mEditTextList.getChildCount(); i++) { + View view = mEditTextList.getChildAt(i); + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + if (!TextUtils.isEmpty(edit.getText())) { + if (((CheckBox) view.findViewById(R.id.cb_edit_item)).isChecked()) { + sb.append(TAG_CHECKED).append(" ").append(edit.getText()).append("\n"); + hasChecked = true; + } else { + sb.append(TAG_UNCHECKED).append(" ").append(edit.getText()).append("\n"); + } + } + } + mWorkingNote.setWorkingText(sb.toString()); + } else { + mWorkingNote.setWorkingText(mNoteEditor.getText().toString()); + } + return hasChecked; + } + + private boolean saveNote() { + getWorkingText(); + boolean saved = mWorkingNote.saveNote(); + if (saved) { + /** + * There are two modes from List view to edit view, open one note, + * create/edit a node. Opening node requires to the original + * position in the list when back from edit view, while creating a + * new node requires to the top of the list. This code + * {@link #RESULT_OK} is used to identify the create/edit state + */ + setResult(RESULT_OK); + } + return saved; + } + + private void sendToDesktop() { + /** + * Before send message to home, we should make sure that current + * editing note is exists in databases. So, for new note, firstly + * save it + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + + if (mWorkingNote.getNoteId() > 0) { + Intent sender = new Intent(); + Intent shortcutIntent = new Intent(this, NoteEditActivity.class); + shortcutIntent.setAction(Intent.ACTION_VIEW); + shortcutIntent.putExtra(Intent.EXTRA_UID, mWorkingNote.getNoteId()); + sender.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); + sender.putExtra(Intent.EXTRA_SHORTCUT_NAME, + makeShortcutIconTitle(mWorkingNote.getContent())); + sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, + Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app)); + sender.putExtra("duplicate", true); + sender.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); + showToast(R.string.info_note_enter_desktop); + sendBroadcast(sender); + } else { + /** + * There is the condition that user has input nothing (the note is + * not worthy saving), we have no note id, remind the user that he + * should input something + */ + Log.e(TAG, "Send to desktop error"); + showToast(R.string.error_note_empty_for_send_to_desktop); + } + } + + private String makeShortcutIconTitle(String content) { + content = content.replace(TAG_CHECKED, ""); + content = content.replace(TAG_UNCHECKED, ""); + return content.length() > SHORTCUT_ICON_TITLE_MAX_LEN ? content.substring(0, + SHORTCUT_ICON_TITLE_MAX_LEN) : content; + } + + private void showToast(int resId) { + showToast(resId, Toast.LENGTH_SHORT); + } + + private void showToast(int resId, int duration) { + Toast.makeText(this, resId, duration).show(); + } +} diff --git a/src/src/main/java/net/micode/notes/ui/NoteEditText.java b/src/src/main/java/net/micode/notes/ui/NoteEditText.java new file mode 100644 index 0000000..2afe2a8 --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/NoteEditText.java @@ -0,0 +1,217 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.graphics.Rect; +import android.text.Layout; +import android.text.Selection; +import android.text.Spanned; +import android.text.TextUtils; +import android.text.style.URLSpan; +import android.util.AttributeSet; +import android.util.Log; +import android.view.ContextMenu; +import android.view.KeyEvent; +import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; +import android.view.MotionEvent; +import android.widget.EditText; + +import net.micode.notes.R; + +import java.util.HashMap; +import java.util.Map; + +public class NoteEditText extends EditText { + private static final String TAG = "NoteEditText"; + private int mIndex; + private int mSelectionStartBeforeDelete; + + private static final String SCHEME_TEL = "tel:" ; + private static final String SCHEME_HTTP = "http:" ; + private static final String SCHEME_EMAIL = "mailto:" ; + + private static final Map sSchemaActionResMap = new HashMap(); + static { + sSchemaActionResMap.put(SCHEME_TEL, R.string.note_link_tel); + sSchemaActionResMap.put(SCHEME_HTTP, R.string.note_link_web); + sSchemaActionResMap.put(SCHEME_EMAIL, R.string.note_link_email); + } + + /** + * Call by the {@link NoteEditActivity} to delete or add edit text + */ + public interface OnTextViewChangeListener { + /** + * Delete current edit text when {@link KeyEvent#KEYCODE_DEL} happens + * and the text is null + */ + void onEditTextDelete(int index, String text); + + /** + * Add edit text after current edit text when {@link KeyEvent#KEYCODE_ENTER} + * happen + */ + void onEditTextEnter(int index, String text); + + /** + * Hide or show item option when text change + */ + void onTextChange(int index, boolean hasText); + } + + private OnTextViewChangeListener mOnTextViewChangeListener; + + public NoteEditText(Context context) { + super(context, null); + mIndex = 0; + } + + public void setIndex(int index) { + mIndex = index; + } + + public void setOnTextViewChangeListener(OnTextViewChangeListener listener) { + mOnTextViewChangeListener = listener; + } + + public NoteEditText(Context context, AttributeSet attrs) { + super(context, attrs, android.R.attr.editTextStyle); + } + + public NoteEditText(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + // TODO Auto-generated constructor stub + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: + + int x = (int) event.getX(); + int y = (int) event.getY(); + x -= getTotalPaddingLeft(); + y -= getTotalPaddingTop(); + x += getScrollX(); + y += getScrollY(); + + Layout layout = getLayout(); + int line = layout.getLineForVertical(y); + int off = layout.getOffsetForHorizontal(line, x); + Selection.setSelection(getText(), off); + break; + } + + return super.onTouchEvent(event); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + switch (keyCode) { + case KeyEvent.KEYCODE_ENTER: + if (mOnTextViewChangeListener != null) { + return false; + } + break; + case KeyEvent.KEYCODE_DEL: + mSelectionStartBeforeDelete = getSelectionStart(); + break; + default: + break; + } + return super.onKeyDown(keyCode, event); + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + switch(keyCode) { + case KeyEvent.KEYCODE_DEL: + if (mOnTextViewChangeListener != null) { + if (0 == mSelectionStartBeforeDelete && mIndex != 0) { + mOnTextViewChangeListener.onEditTextDelete(mIndex, getText().toString()); + return true; + } + } else { + Log.d(TAG, "OnTextViewChangeListener was not seted"); + } + break; + case KeyEvent.KEYCODE_ENTER: + if (mOnTextViewChangeListener != null) { + int selectionStart = getSelectionStart(); + String text = getText().subSequence(selectionStart, length()).toString(); + setText(getText().subSequence(0, selectionStart)); + mOnTextViewChangeListener.onEditTextEnter(mIndex + 1, text); + } else { + Log.d(TAG, "OnTextViewChangeListener was not seted"); + } + break; + default: + break; + } + return super.onKeyUp(keyCode, event); + } + + @Override + protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { + if (mOnTextViewChangeListener != null) { + if (!focused && TextUtils.isEmpty(getText())) { + mOnTextViewChangeListener.onTextChange(mIndex, false); + } else { + mOnTextViewChangeListener.onTextChange(mIndex, true); + } + } + super.onFocusChanged(focused, direction, previouslyFocusedRect); + } + + @Override + protected void onCreateContextMenu(ContextMenu menu) { + if (getText() instanceof Spanned) { + int selStart = getSelectionStart(); + int selEnd = getSelectionEnd(); + + int min = Math.min(selStart, selEnd); + int max = Math.max(selStart, selEnd); + + final URLSpan[] urls = ((Spanned) getText()).getSpans(min, max, URLSpan.class); + if (urls.length == 1) { + int defaultResId = 0; + for(String schema: sSchemaActionResMap.keySet()) { + if(urls[0].getURL().indexOf(schema) >= 0) { + defaultResId = sSchemaActionResMap.get(schema); + break; + } + } + + if (defaultResId == 0) { + defaultResId = R.string.note_link_other; + } + + menu.add(0, 0, 0, defaultResId).setOnMenuItemClickListener( + new OnMenuItemClickListener() { + public boolean onMenuItemClick(MenuItem item) { + // goto a new intent + urls[0].onClick(NoteEditText.this); + return true; + } + }); + } + } + super.onCreateContextMenu(menu); + } +} diff --git a/src/src/main/java/net/micode/notes/ui/NoteItemData.java b/src/src/main/java/net/micode/notes/ui/NoteItemData.java new file mode 100644 index 0000000..0f5a878 --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -0,0 +1,224 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.text.TextUtils; + +import net.micode.notes.data.Contact; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.tool.DataUtils; + + +public class NoteItemData { + static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.ALERTED_DATE, + NoteColumns.BG_COLOR_ID, + NoteColumns.CREATED_DATE, + NoteColumns.HAS_ATTACHMENT, + NoteColumns.MODIFIED_DATE, + NoteColumns.NOTES_COUNT, + NoteColumns.PARENT_ID, + NoteColumns.SNIPPET, + NoteColumns.TYPE, + NoteColumns.WIDGET_ID, + NoteColumns.WIDGET_TYPE, + }; + + private static final int ID_COLUMN = 0; + private static final int ALERTED_DATE_COLUMN = 1; + private static final int BG_COLOR_ID_COLUMN = 2; + private static final int CREATED_DATE_COLUMN = 3; + private static final int HAS_ATTACHMENT_COLUMN = 4; + private static final int MODIFIED_DATE_COLUMN = 5; + private static final int NOTES_COUNT_COLUMN = 6; + private static final int PARENT_ID_COLUMN = 7; + private static final int SNIPPET_COLUMN = 8; + private static final int TYPE_COLUMN = 9; + private static final int WIDGET_ID_COLUMN = 10; + private static final int WIDGET_TYPE_COLUMN = 11; + + private long mId; + private long mAlertDate; + private int mBgColorId; + private long mCreatedDate; + private boolean mHasAttachment; + private long mModifiedDate; + private int mNotesCount; + private long mParentId; + private String mSnippet; + private int mType; + private int mWidgetId; + private int mWidgetType; + private String mName; + private String mPhoneNumber; + + private boolean mIsLastItem; + private boolean mIsFirstItem; + private boolean mIsOnlyOneItem; + private boolean mIsOneNoteFollowingFolder; + private boolean mIsMultiNotesFollowingFolder; + + public NoteItemData(Context context, Cursor cursor) { + mId = cursor.getLong(ID_COLUMN); + mAlertDate = cursor.getLong(ALERTED_DATE_COLUMN); + mBgColorId = cursor.getInt(BG_COLOR_ID_COLUMN); + mCreatedDate = cursor.getLong(CREATED_DATE_COLUMN); + mHasAttachment = (cursor.getInt(HAS_ATTACHMENT_COLUMN) > 0) ? true : false; + mModifiedDate = cursor.getLong(MODIFIED_DATE_COLUMN); + mNotesCount = cursor.getInt(NOTES_COUNT_COLUMN); + mParentId = cursor.getLong(PARENT_ID_COLUMN); + mSnippet = cursor.getString(SNIPPET_COLUMN); + mSnippet = mSnippet.replace(NoteEditActivity.TAG_CHECKED, "").replace( + NoteEditActivity.TAG_UNCHECKED, ""); + mType = cursor.getInt(TYPE_COLUMN); + mWidgetId = cursor.getInt(WIDGET_ID_COLUMN); + mWidgetType = cursor.getInt(WIDGET_TYPE_COLUMN); + + mPhoneNumber = ""; + if (mParentId == Notes.ID_CALL_RECORD_FOLDER) { + mPhoneNumber = DataUtils.getCallNumberByNoteId(context.getContentResolver(), mId); + if (!TextUtils.isEmpty(mPhoneNumber)) { + mName = Contact.getContact(context, mPhoneNumber); + if (mName == null) { + mName = mPhoneNumber; + } + } + } + + if (mName == null) { + mName = ""; + } + checkPostion(cursor); + } + + private void checkPostion(Cursor cursor) { + mIsLastItem = cursor.isLast() ? true : false; + mIsFirstItem = cursor.isFirst() ? true : false; + mIsOnlyOneItem = (cursor.getCount() == 1); + mIsMultiNotesFollowingFolder = false; + mIsOneNoteFollowingFolder = false; + + if (mType == Notes.TYPE_NOTE && !mIsFirstItem) { + int position = cursor.getPosition(); + if (cursor.moveToPrevious()) { + if (cursor.getInt(TYPE_COLUMN) == Notes.TYPE_FOLDER + || cursor.getInt(TYPE_COLUMN) == Notes.TYPE_SYSTEM) { + if (cursor.getCount() > (position + 1)) { + mIsMultiNotesFollowingFolder = true; + } else { + mIsOneNoteFollowingFolder = true; + } + } + if (!cursor.moveToNext()) { + throw new IllegalStateException("cursor move to previous but can't move back"); + } + } + } + } + + public boolean isOneFollowingFolder() { + return mIsOneNoteFollowingFolder; + } + + public boolean isMultiFollowingFolder() { + return mIsMultiNotesFollowingFolder; + } + + public boolean isLast() { + return mIsLastItem; + } + + public String getCallName() { + return mName; + } + + public boolean isFirst() { + return mIsFirstItem; + } + + public boolean isSingle() { + return mIsOnlyOneItem; + } + + public long getId() { + return mId; + } + + public long getAlertDate() { + return mAlertDate; + } + + public long getCreatedDate() { + return mCreatedDate; + } + + public boolean hasAttachment() { + return mHasAttachment; + } + + public long getModifiedDate() { + return mModifiedDate; + } + + public int getBgColorId() { + return mBgColorId; + } + + public long getParentId() { + return mParentId; + } + + public int getNotesCount() { + return mNotesCount; + } + + public long getFolderId () { + return mParentId; + } + + public int getType() { + return mType; + } + + public int getWidgetType() { + return mWidgetType; + } + + public int getWidgetId() { + return mWidgetId; + } + + public String getSnippet() { + return mSnippet; + } + + public boolean hasAlert() { + return (mAlertDate > 0); + } + + public boolean isCallRecord() { + return (mParentId == Notes.ID_CALL_RECORD_FOLDER && !TextUtils.isEmpty(mPhoneNumber)); + } + + public static int getNoteType(Cursor cursor) { + return cursor.getInt(TYPE_COLUMN); + } +} diff --git a/src/src/main/java/net/micode/notes/ui/NotesListActivity.java b/src/src/main/java/net/micode/notes/ui/NotesListActivity.java new file mode 100644 index 0000000..33b96cd --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -0,0 +1,984 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.appwidget.AppWidgetManager; +import android.content.AsyncQueryHandler; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.Log; +import android.view.ActionMode; +import android.view.ContextMenu; +import android.view.ContextMenu.ContextMenuInfo; +import android.view.Display; +import android.view.HapticFeedbackConstants; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnCreateContextMenuListener; +import android.view.View.OnTouchListener; +import android.view.inputmethod.InputMethodManager; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.AdapterView.OnItemLongClickListener; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ListView; +import android.widget.PopupMenu; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.remote.GTaskSyncService; +import net.micode.notes.model.WorkingNote; +import net.micode.notes.tool.BackupUtils; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; +import net.micode.notes.widget.NoteWidgetProvider_2x; +import net.micode.notes.widget.NoteWidgetProvider_4x; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashSet; + +public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener { + + private int mode = 1; + private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0; + + private static final int FOLDER_LIST_QUERY_TOKEN = 1; + + private static final int MENU_FOLDER_DELETE = 0; + + private static final int MENU_FOLDER_VIEW = 1; + + private static final int MENU_FOLDER_CHANGE_NAME = 2; + + private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction"; + + private enum ListEditState { + NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER + }; + + private ListEditState mState; + + private BackgroundQueryHandler mBackgroundQueryHandler; + + private NotesListAdapter mNotesListAdapter; + + private ListView mNotesListView; + + private Button mAddNewNote; + + private boolean mDispatch; + + private int mOriginY; + + private int mDispatchY; + + private TextView mTitleBar; + + private long mCurrentFolderId; + + private ContentResolver mContentResolver; + + private ModeCallback mModeCallBack; + + private static final String TAG = "NotesListActivity"; + + public static final int NOTES_LISTVIEW_SCROLL_RATE = 30; + + private NoteItemData mFocusNoteDataItem; + + private static final String NORMAL_SELECTION = NoteColumns.PARENT_ID + "=?"; + + private static final String ROOT_FOLDER_SELECTION = "(" + NoteColumns.TYPE + "<>" + + Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)" + " OR (" + + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER + " AND " + + NoteColumns.NOTES_COUNT + ">0)"; + + private final static int REQUEST_CODE_OPEN_NODE = 102; + private final static int REQUEST_CODE_NEW_NODE = 103; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.note_list); + + getWindow().setBackgroundDrawableResource(R.drawable.xi); + getWindow().setBackgroundDrawableResource(R.drawable.lan); + getWindow().setBackgroundDrawableResource(R.drawable.hui); + initResources(); + + /** + * Insert an introduction when user firstly use this application + */ + setAppInfoFromRawRes(); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == RESULT_OK + && (requestCode == REQUEST_CODE_OPEN_NODE || requestCode == REQUEST_CODE_NEW_NODE)) { + mNotesListAdapter.changeCursor(null); + } else { + super.onActivityResult(requestCode, resultCode, data); + } + } + + private void setAppInfoFromRawRes() { + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); + if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) { + StringBuilder sb = new StringBuilder(); + InputStream in = null; + try { + in = getResources().openRawResource(R.raw.introduction); + if (in != null) { + InputStreamReader isr = new InputStreamReader(in); + BufferedReader br = new BufferedReader(isr); + char [] buf = new char[1024]; + int len = 0; + while ((len = br.read(buf)) > 0) { + sb.append(buf, 0, len); + } + } else { + Log.e(TAG, "Read introduction file error"); + return; + } + } catch (IOException e) { + e.printStackTrace(); + return; + } finally { + if(in != null) { + try { + in.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + WorkingNote note = WorkingNote.createEmptyNote(this, Notes.ID_ROOT_FOLDER, + AppWidgetManager.INVALID_APPWIDGET_ID, Notes.TYPE_WIDGET_INVALIDE, + ResourceParser.RED); + note.setWorkingText(sb.toString()); + if (note.saveNote()) { + sp.edit().putBoolean(PREFERENCE_ADD_INTRODUCTION, true).commit(); + } else { + Log.e(TAG, "Save introduction note error"); + return; + } + } + } + + @Override + protected void onStart() { + super.onStart(); + startAsyncNotesListQuery(); + } + + private void initResources() { + mContentResolver = this.getContentResolver(); + mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver()); + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mNotesListView = (ListView) findViewById(R.id.notes_list); + mNotesListView.addFooterView(LayoutInflater.from(this).inflate(R.layout.note_list_footer, null), + null, false); + mNotesListView.setOnItemClickListener(new OnListItemClickListener()); + mNotesListView.setOnItemLongClickListener(this); + mNotesListAdapter = new NotesListAdapter(this); + mNotesListView.setAdapter(mNotesListAdapter); + mAddNewNote = (Button) findViewById(R.id.btn_new_note); + mAddNewNote.setOnClickListener(this); + mAddNewNote.setOnTouchListener(new NewNoteOnTouchListener()); + mDispatch = false; + mDispatchY = 0; + mOriginY = 0; + mTitleBar = (TextView) findViewById(R.id.tv_title_bar); + mState = ListEditState.NOTE_LIST; + mModeCallBack = new ModeCallback(); + } + + private class ModeCallback implements ListView.MultiChoiceModeListener, OnMenuItemClickListener { + private DropdownMenu mDropDownMenu; + private ActionMode mActionMode; + private MenuItem mMoveMenu; + + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + getMenuInflater().inflate(R.menu.note_list_options, menu); + menu.findItem(R.id.delete).setOnMenuItemClickListener(this); + mMoveMenu = menu.findItem(R.id.move); + if (mFocusNoteDataItem.getParentId() == Notes.ID_CALL_RECORD_FOLDER + || DataUtils.getUserFolderCount(mContentResolver) == 0) { + mMoveMenu.setVisible(false); + } else { + mMoveMenu.setVisible(true); + mMoveMenu.setOnMenuItemClickListener(this); + } + mActionMode = mode; + mNotesListAdapter.setChoiceMode(true); + mNotesListView.setLongClickable(false); + mAddNewNote.setVisibility(View.GONE); + + View customView = LayoutInflater.from(NotesListActivity.this).inflate( + R.layout.note_list_dropdown_menu, null); + mode.setCustomView(customView); + mDropDownMenu = new DropdownMenu(NotesListActivity.this, + (Button) customView.findViewById(R.id.selection_menu), + R.menu.note_list_dropdown); + mDropDownMenu.setOnDropdownMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){ + public boolean onMenuItemClick(MenuItem item) { + mNotesListAdapter.selectAll(!mNotesListAdapter.isAllSelected()); + updateMenu(); + return true; + } + + }); + return true; + } + + private void updateMenu() { + int selectedCount = mNotesListAdapter.getSelectedCount(); + // Update dropdown menu + String format = getResources().getString(R.string.menu_select_title, selectedCount); + mDropDownMenu.setTitle(format); + MenuItem item = mDropDownMenu.findItem(R.id.action_select_all); + if (item != null) { + if (mNotesListAdapter.isAllSelected()) { + item.setChecked(true); + item.setTitle(R.string.menu_deselect_all); + } else { + item.setChecked(false); + item.setTitle(R.string.menu_select_all); + } + } + } + + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + // TODO Auto-generated method stub + return false; + } + + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + // TODO Auto-generated method stub + return false; + } + + public void onDestroyActionMode(ActionMode mode) { + mNotesListAdapter.setChoiceMode(false); + mNotesListView.setLongClickable(true); + mAddNewNote.setVisibility(View.VISIBLE); + } + + public void finishActionMode() { + mActionMode.finish(); + } + + public void onItemCheckedStateChanged(ActionMode mode, int position, long id, + boolean checked) { + mNotesListAdapter.setCheckedItem(position, checked); + updateMenu(); + } + + public boolean onMenuItemClick(MenuItem item) { + if (mNotesListAdapter.getSelectedCount() == 0) { + Toast.makeText(NotesListActivity.this, getString(R.string.menu_select_none), + Toast.LENGTH_SHORT).show(); + return true; + } + + switch (item.getItemId()) { + case R.id.delete: + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.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_notes, + mNotesListAdapter.getSelectedCount())); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, + int which) { + batchDelete(); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show(); + break; + case R.id.move: + startQueryDestinationFolders(); + break; + default: + return false; + } + return true; + } + } + + private class NewNoteOnTouchListener implements OnTouchListener { + + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: { + Display display = getWindowManager().getDefaultDisplay(); + int screenHeight = display.getHeight(); + int newNoteViewHeight = mAddNewNote.getHeight(); + int start = screenHeight - newNoteViewHeight; + int eventY = start + (int) event.getY(); + /** + * Minus TitleBar's height + */ + if (mState == ListEditState.SUB_FOLDER) { + eventY -= mTitleBar.getHeight(); + start -= mTitleBar.getHeight(); + } + /** + * HACKME:When click the transparent part of "New Note" button, dispatch + * the event to the list view behind this button. The transparent part of + * "New Note" button could be expressed by formula y=-0.12x+94(Unit:pixel) + * and the line top of the button. The coordinate based on left of the "New + * Note" button. The 94 represents maximum height of the transparent part. + * Notice that, if the background of the button changes, the formula should + * also change. This is very bad, just for the UI designer's strong requirement. + */ + if (event.getY() < (event.getX() * (-0.12) + 94)) { + View view = mNotesListView.getChildAt(mNotesListView.getChildCount() - 1 + - mNotesListView.getFooterViewsCount()); + if (view != null && view.getBottom() > start + && (view.getTop() < (start + 94))) { + mOriginY = (int) event.getY(); + mDispatchY = eventY; + event.setLocation(event.getX(), mDispatchY); + mDispatch = true; + return mNotesListView.dispatchTouchEvent(event); + } + } + break; + } + case MotionEvent.ACTION_MOVE: { + if (mDispatch) { + mDispatchY += (int) event.getY() - mOriginY; + event.setLocation(event.getX(), mDispatchY); + return mNotesListView.dispatchTouchEvent(event); + } + break; + } + default: { + if (mDispatch) { + event.setLocation(event.getX(), mDispatchY); + mDispatch = false; + return mNotesListView.dispatchTouchEvent(event); + } + break; + } + } + return false; + } + + }; + + private void startAsyncNotesListQuery() { + String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION + : NORMAL_SELECTION; + mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, + Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] { + String.valueOf(mCurrentFolderId) + }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); + } + + private final class BackgroundQueryHandler extends AsyncQueryHandler { + public BackgroundQueryHandler(ContentResolver contentResolver) { + super(contentResolver); + } + + @Override + protected void onQueryComplete(int token, Object cookie, Cursor cursor) { + switch (token) { + case FOLDER_NOTE_LIST_QUERY_TOKEN: + mNotesListAdapter.changeCursor(cursor); + break; + case FOLDER_LIST_QUERY_TOKEN: + if (cursor != null && cursor.getCount() > 0) { + showFolderListMenu(cursor); + } else { + Log.e(TAG, "Query folder failed"); + } + break; + default: + return; + } + } + } + + private void showFolderListMenu(Cursor cursor) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(R.string.menu_title_select_folder); + final FoldersListAdapter adapter = new FoldersListAdapter(this, cursor); + builder.setAdapter(adapter, new DialogInterface.OnClickListener() { + + public void onClick(DialogInterface dialog, int which) { + DataUtils.batchMoveToFolder(mContentResolver, + mNotesListAdapter.getSelectedItemIds(), adapter.getItemId(which)); + Toast.makeText( + NotesListActivity.this, + getString(R.string.format_move_notes_to_folder, + mNotesListAdapter.getSelectedCount(), + adapter.getFolderName(NotesListActivity.this, which)), + Toast.LENGTH_SHORT).show(); + mModeCallBack.finishActionMode(); + } + }); + builder.show(); + } + + private void createNewNote() { + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mCurrentFolderId); + this.startActivityForResult(intent, REQUEST_CODE_NEW_NODE); + } + + private void batchDelete() { + new AsyncTask>() { + protected HashSet doInBackground(Void... unused) { + HashSet widgets = mNotesListAdapter.getSelectedWidget(); + if (!isSyncMode()) { + // if not synced, delete notes directly + if (DataUtils.batchDeleteNotes(mContentResolver, mNotesListAdapter + .getSelectedItemIds())) { + } else { + Log.e(TAG, "Delete notes error, should not happens"); + } + } else { + // in sync mode, we'll move the deleted note into the trash + // folder + if (!DataUtils.batchMoveToFolder(mContentResolver, mNotesListAdapter + .getSelectedItemIds(), Notes.ID_TRASH_FOLER)) { + Log.e(TAG, "Move notes to trash folder error, should not happens"); + } + } + return widgets; + } + + @Override + protected void onPostExecute(HashSet widgets) { + if (widgets != null) { + for (AppWidgetAttribute widget : widgets) { + if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { + updateWidget(widget.widgetId, widget.widgetType); + } + } + } + mModeCallBack.finishActionMode(); + } + }.execute(); + } + + private void deleteFolder(long folderId) { + if (folderId == Notes.ID_ROOT_FOLDER) { + Log.e(TAG, "Wrong folder id, should not happen " + folderId); + return; + } + + HashSet ids = new HashSet(); + ids.add(folderId); + HashSet widgets = DataUtils.getFolderNoteWidget(mContentResolver, + folderId); + if (!isSyncMode()) { + // if not synced, delete folder directly + 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); + } + if (widgets != null) { + for (AppWidgetAttribute widget : widgets) { + if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { + updateWidget(widget.widgetId, widget.widgetType); + } + } + } + } + + private void openNode(NoteItemData data) { + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, data.getId()); + this.startActivityForResult(intent, REQUEST_CODE_OPEN_NODE); + } + + private void openFolder(NoteItemData data) { + mCurrentFolderId = data.getId(); + startAsyncNotesListQuery(); + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mState = ListEditState.CALL_RECORD_FOLDER; + mAddNewNote.setVisibility(View.GONE); + } else { + mState = ListEditState.SUB_FOLDER; + } + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mTitleBar.setText(R.string.call_record_folder_name); + } else { + mTitleBar.setText(data.getSnippet()); + } + mTitleBar.setVisibility(View.VISIBLE); + } + + public void onClick(View v) { + switch (v.getId()) { + case R.id.btn_new_note: + createNewNote(); + break; + default: + break; + } + } + + private void showSoftInput() { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + if (inputMethodManager != null) { + inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } + } + + private void hideSoftInput(View view) { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + + private void showCreateOrModifyFolderDialog(final boolean create) { + final AlertDialog.Builder builder = new AlertDialog.Builder(this); + View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text, null); + final EditText etName = (EditText) view.findViewById(R.id.et_foler_name); + showSoftInput(); + if (!create) { + if (mFocusNoteDataItem != null) { + etName.setText(mFocusNoteDataItem.getSnippet()); + builder.setTitle(getString(R.string.menu_folder_change_name)); + } else { + Log.e(TAG, "The long click data item is null"); + return; + } + } else { + etName.setText(""); + builder.setTitle(this.getString(R.string.menu_create_folder)); + } + + builder.setPositiveButton(android.R.string.ok, null); + builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + hideSoftInput(etName); + } + }); + + final Dialog dialog = builder.setView(view).show(); + final Button positive = (Button)dialog.findViewById(android.R.id.button1); + positive.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + hideSoftInput(etName); + String name = etName.getText().toString(); + if (DataUtils.checkVisibleFolderName(mContentResolver, name)) { + Toast.makeText(NotesListActivity.this, getString(R.string.folder_exist, name), + Toast.LENGTH_LONG).show(); + etName.setSelection(0, etName.length()); + return; + } + if (!create) { + if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.SNIPPET, name); + values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + mContentResolver.update(Notes.CONTENT_NOTE_URI, values, NoteColumns.ID + + "=?", new String[] { + String.valueOf(mFocusNoteDataItem.getId()) + }); + } + } else if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.SNIPPET, name); + values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + mContentResolver.insert(Notes.CONTENT_NOTE_URI, values); + } + dialog.dismiss(); + } + }); + + if (TextUtils.isEmpty(etName.getText())) { + positive.setEnabled(false); + } + /** + * When the name edit text is null, disable the positive button + */ + etName.addTextChangedListener(new TextWatcher() { + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + // TODO Auto-generated method stub + + } + + public void onTextChanged(CharSequence s, int start, int before, int count) { + if (TextUtils.isEmpty(etName.getText())) { + positive.setEnabled(false); + } else { + positive.setEnabled(true); + } + } + + public void afterTextChanged(Editable s) { + // TODO Auto-generated method stub + + } + }); + } + + @Override + public void onBackPressed() { + switch (mState) { + case SUB_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + startAsyncNotesListQuery(); + mTitleBar.setVisibility(View.GONE); + break; + case CALL_RECORD_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + mAddNewNote.setVisibility(View.VISIBLE); + mTitleBar.setVisibility(View.GONE); + startAsyncNotesListQuery(); + break; + case NOTE_LIST: + super.onBackPressed(); + break; + default: + break; + } + } + + private void updateWidget(int appWidgetId, int appWidgetType) { + Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + if (appWidgetType == Notes.TYPE_WIDGET_2X) { + intent.setClass(this, NoteWidgetProvider_2x.class); + } else if (appWidgetType == Notes.TYPE_WIDGET_4X) { + intent.setClass(this, NoteWidgetProvider_4x.class); + } else { + Log.e(TAG, "Unspported widget type"); + return; + } + + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { + appWidgetId + }); + + sendBroadcast(intent); + setResult(RESULT_OK, intent); + } + + private final OnCreateContextMenuListener mFolderOnCreateContextMenuListener = new OnCreateContextMenuListener() { + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { + if (mFocusNoteDataItem != null) { + menu.setHeaderTitle(mFocusNoteDataItem.getSnippet()); + menu.add(0, MENU_FOLDER_VIEW, 0, R.string.menu_folder_view); + menu.add(0, MENU_FOLDER_DELETE, 0, R.string.menu_folder_delete); + menu.add(0, MENU_FOLDER_CHANGE_NAME, 0, R.string.menu_folder_change_name); + } + } + }; + + @Override + public void onContextMenuClosed(Menu menu) { + if (mNotesListView != null) { + mNotesListView.setOnCreateContextMenuListener(null); + } + super.onContextMenuClosed(menu); + } + + @Override + public boolean onContextItemSelected(MenuItem item) { + if (mFocusNoteDataItem == null) { + Log.e(TAG, "The long click data item is null"); + return false; + } + switch (item.getItemId()) { + case MENU_FOLDER_VIEW: + openFolder(mFocusNoteDataItem); + break; + case MENU_FOLDER_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_folder)); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + deleteFolder(mFocusNoteDataItem.getId()); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show(); + break; + case MENU_FOLDER_CHANGE_NAME: + showCreateOrModifyFolderDialog(false); + break; + default: + break; + } + + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + menu.clear(); + if (mState == ListEditState.NOTE_LIST) { + getMenuInflater().inflate(R.menu.note_list, menu); + // set sync or sync_cancel + menu.findItem(R.id.menu_sync).setTitle( + GTaskSyncService.isSyncing() ? R.string.menu_sync_cancel : R.string.menu_sync); + } else if (mState == ListEditState.SUB_FOLDER) { + getMenuInflater().inflate(R.menu.sub_folder, menu); + } else if (mState == ListEditState.CALL_RECORD_FOLDER) { + getMenuInflater().inflate(R.menu.call_record_folder, menu); + } else { + Log.e(TAG, "Wrong state:" + mState); + } + + if(mode == -1) + menu.findItem(R.id.hui).setVisible(false); + else if(mode == 0) + menu.findItem(R.id.lan).setVisible(false); + else if(mode == 1) + menu.findItem(R.id.xi).setVisible(false); + + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.hui:{ + mode = -1; + getWindow().setBackgroundDrawableResource(R.drawable.hui); + break; + } + case R.id.lan:{ + mode = 0; + getWindow().setBackgroundDrawableResource(R.drawable.lan); + break; + } + case R.id.xi:{ + mode = 1; + getWindow().setBackgroundDrawableResource(R.drawable.xi); + break; + } + case R.id.menu_new_folder: { + showCreateOrModifyFolderDialog(true); + break; + } + case R.id.menu_export_text: { + exportNoteToText(); + break; + } + case R.id.menu_sync: { + if (isSyncMode()) { + if (TextUtils.equals(item.getTitle(), getString(R.string.menu_sync))) { + GTaskSyncService.startSync(this); + } else { + GTaskSyncService.cancelSync(this); + } + } else { + startPreferenceActivity(); + } + break; + } + case R.id.menu_setting: { + startPreferenceActivity(); + break; + } + case R.id.menu_new_note: { + createNewNote(); + break; + } + case R.id.menu_search: + onSearchRequested(); + break; + default: + break; + } + return true; + } + + @Override + public boolean onSearchRequested() { + startSearch(null, false, null /* appData */, false); + return true; + } + + private void exportNoteToText() { + final BackupUtils backup = BackupUtils.getInstance(NotesListActivity.this); + new AsyncTask() { + + @Override + protected Integer doInBackground(Void... unused) { + return backup.exportToText(); + } + + @Override + protected void onPostExecute(Integer result) { + if (result == BackupUtils.STATE_SD_CARD_UNMOUONTED) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.failed_sdcard_export)); + builder.setMessage(NotesListActivity.this + .getString(R.string.error_sdcard_unmounted)); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } else if (result == BackupUtils.STATE_SUCCESS) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.success_sdcard_export)); + builder.setMessage(NotesListActivity.this.getString( + R.string.format_exported_file_location, backup + .getExportedTextFileName(), backup.getExportedTextFileDir())); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } else if (result == BackupUtils.STATE_SYSTEM_ERROR) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.failed_sdcard_export)); + builder.setMessage(NotesListActivity.this + .getString(R.string.error_sdcard_export)); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } + } + + }.execute(); + } + + private boolean isSyncMode() { + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + } + + private void startPreferenceActivity() { + Activity from = getParent() != null ? getParent() : this; + Intent intent = new Intent(from, NotesPreferenceActivity.class); + from.startActivityIfNeeded(intent, -1); + } + + private class OnListItemClickListener implements OnItemClickListener { + + public void onItemClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { + NoteItemData item = ((NotesListItem) view).getItemData(); + if (mNotesListAdapter.isInChoiceMode()) { + if (item.getType() == Notes.TYPE_NOTE) { + position = position - mNotesListView.getHeaderViewsCount(); + mModeCallBack.onItemCheckedStateChanged(null, position, id, + !mNotesListAdapter.isSelectedItem(position)); + } + return; + } + + switch (mState) { + case NOTE_LIST: + if (item.getType() == Notes.TYPE_FOLDER + || item.getType() == Notes.TYPE_SYSTEM) { + openFolder(item); + } else if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in NOTE_LIST"); + } + break; + case SUB_FOLDER: + case CALL_RECORD_FOLDER: + if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in SUB_FOLDER"); + } + break; + default: + break; + } + } + } + + } + + private void startQueryDestinationFolders() { + String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?"; + selection = (mState == ListEditState.NOTE_LIST) ? selection: + "(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")"; + + mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN, + null, + Notes.CONTENT_NOTE_URI, + FoldersListAdapter.PROJECTION, + selection, + new String[] { + String.valueOf(Notes.TYPE_FOLDER), + String.valueOf(Notes.ID_TRASH_FOLER), + String.valueOf(mCurrentFolderId) + }, + NoteColumns.MODIFIED_DATE + " DESC"); + } + + public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { + mFocusNoteDataItem = ((NotesListItem) view).getItemData(); + if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode()) { + if (mNotesListView.startActionMode(mModeCallBack) != null) { + mModeCallBack.onItemCheckedStateChanged(null, position, id, true); + mNotesListView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); + } else { + Log.e(TAG, "startActionMode fails"); + } + } else if (mFocusNoteDataItem.getType() == Notes.TYPE_FOLDER) { + mNotesListView.setOnCreateContextMenuListener(mFolderOnCreateContextMenuListener); + } + } + return false; + } + +} diff --git a/src/src/main/java/net/micode/notes/ui/NotesListAdapter.java b/src/src/main/java/net/micode/notes/ui/NotesListAdapter.java new file mode 100644 index 0000000..51c9cb9 --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/NotesListAdapter.java @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CursorAdapter; + +import net.micode.notes.data.Notes; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; + + +public class NotesListAdapter extends CursorAdapter { + private static final String TAG = "NotesListAdapter"; + private Context mContext; + private HashMap mSelectedIndex; + private int mNotesCount; + private boolean mChoiceMode; + + public static class AppWidgetAttribute { + public int widgetId; + public int widgetType; + }; + + public NotesListAdapter(Context context) { + super(context, null); + mSelectedIndex = new HashMap(); + mContext = context; + mNotesCount = 0; + } + + @Override + public View newView(Context context, Cursor cursor, ViewGroup parent) { + return new NotesListItem(context); + } + + @Override + public void bindView(View view, Context context, Cursor cursor) { + if (view instanceof NotesListItem) { + NoteItemData itemData = new NoteItemData(context, cursor); + ((NotesListItem) view).bind(context, itemData, mChoiceMode, + isSelectedItem(cursor.getPosition())); + } + } + + public void setCheckedItem(final int position, final boolean checked) { + mSelectedIndex.put(position, checked); + notifyDataSetChanged(); + } + + public boolean isInChoiceMode() { + return mChoiceMode; + } + + public void setChoiceMode(boolean mode) { + mSelectedIndex.clear(); + mChoiceMode = mode; + } + + public void selectAll(boolean checked) { + Cursor cursor = getCursor(); + for (int i = 0; i < getCount(); i++) { + if (cursor.moveToPosition(i)) { + if (NoteItemData.getNoteType(cursor) == Notes.TYPE_NOTE) { + setCheckedItem(i, checked); + } + } + } + } + + public HashSet getSelectedItemIds() { + HashSet itemSet = new HashSet(); + for (Integer position : mSelectedIndex.keySet()) { + if (mSelectedIndex.get(position) == true) { + Long id = getItemId(position); + if (id == Notes.ID_ROOT_FOLDER) { + Log.d(TAG, "Wrong item id, should not happen"); + } else { + itemSet.add(id); + } + } + } + + return itemSet; + } + + public HashSet getSelectedWidget() { + HashSet itemSet = new HashSet(); + for (Integer position : mSelectedIndex.keySet()) { + if (mSelectedIndex.get(position) == true) { + Cursor c = (Cursor) getItem(position); + if (c != null) { + AppWidgetAttribute widget = new AppWidgetAttribute(); + NoteItemData item = new NoteItemData(mContext, c); + widget.widgetId = item.getWidgetId(); + widget.widgetType = item.getWidgetType(); + itemSet.add(widget); + /** + * Don't close cursor here, only the adapter could close it + */ + } else { + Log.e(TAG, "Invalid cursor"); + return null; + } + } + } + return itemSet; + } + + public int getSelectedCount() { + Collection values = mSelectedIndex.values(); + if (null == values) { + return 0; + } + Iterator iter = values.iterator(); + int count = 0; + while (iter.hasNext()) { + if (true == iter.next()) { + count++; + } + } + return count; + } + + public boolean isAllSelected() { + int checkedCount = getSelectedCount(); + return (checkedCount != 0 && checkedCount == mNotesCount); + } + + public boolean isSelectedItem(final int position) { + if (null == mSelectedIndex.get(position)) { + return false; + } + return mSelectedIndex.get(position); + } + + @Override + protected void onContentChanged() { + super.onContentChanged(); + calcNotesCount(); + } + + @Override + public void changeCursor(Cursor cursor) { + super.changeCursor(cursor); + calcNotesCount(); + } + + private void calcNotesCount() { + mNotesCount = 0; + for (int i = 0; i < getCount(); i++) { + Cursor c = (Cursor) getItem(i); + if (c != null) { + if (NoteItemData.getNoteType(c) == Notes.TYPE_NOTE) { + mNotesCount++; + } + } else { + Log.e(TAG, "Invalid cursor"); + return; + } + } + } +} diff --git a/src/src/main/java/net/micode/notes/ui/NotesListItem.java b/src/src/main/java/net/micode/notes/ui/NotesListItem.java new file mode 100644 index 0000000..1221e80 --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/NotesListItem.java @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.text.format.DateUtils; +import android.view.View; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser.NoteItemBgResources; + + +public class NotesListItem extends LinearLayout { + private ImageView mAlert; + private TextView mTitle; + private TextView mTime; + private TextView mCallName; + private NoteItemData mItemData; + private CheckBox mCheckBox; + + public NotesListItem(Context context) { + super(context); + inflate(context, R.layout.note_item, this); + mAlert = (ImageView) findViewById(R.id.iv_alert_icon); + mTitle = (TextView) findViewById(R.id.tv_title); + mTime = (TextView) findViewById(R.id.tv_time); + mCallName = (TextView) findViewById(R.id.tv_name); + mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); + } + + public void bind(Context context, NoteItemData data, boolean choiceMode, boolean checked) { + if (choiceMode && data.getType() == Notes.TYPE_NOTE) { + mCheckBox.setVisibility(View.VISIBLE); + mCheckBox.setChecked(checked); + } else { + mCheckBox.setVisibility(View.GONE); + } + + mItemData = data; + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mCallName.setVisibility(View.GONE); + mAlert.setVisibility(View.VISIBLE); + mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); + mTitle.setText(context.getString(R.string.call_record_folder_name) + + context.getString(R.string.format_folder_files_count, data.getNotesCount())); + mAlert.setImageResource(R.drawable.call_record); + } else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) { + mCallName.setVisibility(View.VISIBLE); + mCallName.setText(data.getCallName()); + mTitle.setTextAppearance(context,R.style.TextAppearanceSecondaryItem); + mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + if (data.hasAlert()) { + mAlert.setImageResource(R.drawable.clock); + mAlert.setVisibility(View.VISIBLE); + } else { + mAlert.setVisibility(View.GONE); + } + } else { + mCallName.setVisibility(View.GONE); + mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); + + if (data.getType() == Notes.TYPE_FOLDER) { + mTitle.setText(data.getSnippet() + + context.getString(R.string.format_folder_files_count, + data.getNotesCount())); + mAlert.setVisibility(View.GONE); + } else { + mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + if (data.hasAlert()) { + mAlert.setImageResource(R.drawable.clock); + mAlert.setVisibility(View.VISIBLE); + } else { + mAlert.setVisibility(View.GONE); + } + } + } + mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); + + setBackground(data); + } + + private void setBackground(NoteItemData data) { + int id = data.getBgColorId(); + if (data.getType() == Notes.TYPE_NOTE) { + if (data.isSingle() || data.isOneFollowingFolder()) { + setBackgroundResource(NoteItemBgResources.getNoteBgSingleRes(id)); + } else if (data.isLast()) { + setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id)); + } else if (data.isFirst() || data.isMultiFollowingFolder()) { + setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id)); + } else { + setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id)); + } + } else { + setBackgroundResource(NoteItemBgResources.getFolderBgRes()); + } + } + + public NoteItemData getItemData() { + return mItemData; + } +} diff --git a/src/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java b/src/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java new file mode 100644 index 0000000..07c5f7e --- /dev/null +++ b/src/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java @@ -0,0 +1,388 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.accounts.Account; +import android.accounts.AccountManager; +import android.app.ActionBar; +import android.app.AlertDialog; +import android.content.BroadcastReceiver; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; +import android.preference.PreferenceActivity; +import android.preference.PreferenceCategory; +import android.text.TextUtils; +import android.text.format.DateFormat; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.remote.GTaskSyncService; + + +public class NotesPreferenceActivity extends PreferenceActivity { + public static final String PREFERENCE_NAME = "notes_preferences"; + + public static final String PREFERENCE_SYNC_ACCOUNT_NAME = "pref_key_account_name"; + + public static final String PREFERENCE_LAST_SYNC_TIME = "pref_last_sync_time"; + + public static final String PREFERENCE_SET_BG_COLOR_KEY = "pref_key_bg_random_appear"; + + private static final String PREFERENCE_SYNC_ACCOUNT_KEY = "pref_sync_account_key"; + + private static final String AUTHORITIES_FILTER_KEY = "authorities"; + + private PreferenceCategory mAccountCategory; + + private GTaskReceiver mReceiver; + + private Account[] mOriAccounts; + + private boolean mHasAddedAccount; + + @Override + protected void onCreate(Bundle icicle) { + super.onCreate(icicle); + + /* using the app icon for navigation */ + getActionBar().setDisplayHomeAsUpEnabled(true); + + addPreferencesFromResource(R.xml.preferences); + mAccountCategory = (PreferenceCategory) findPreference(PREFERENCE_SYNC_ACCOUNT_KEY); + mReceiver = new GTaskReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME); + registerReceiver(mReceiver, filter); + + mOriAccounts = null; + View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null); + getListView().addHeaderView(header, null, true); + } + + @Override + protected void onResume() { + super.onResume(); + + // need to set sync account automatically if user has added a new + // account + if (mHasAddedAccount) { + Account[] accounts = getGoogleAccounts(); + if (mOriAccounts != null && accounts.length > mOriAccounts.length) { + for (Account accountNew : accounts) { + boolean found = false; + for (Account accountOld : mOriAccounts) { + if (TextUtils.equals(accountOld.name, accountNew.name)) { + found = true; + break; + } + } + if (!found) { + setSyncAccount(accountNew.name); + break; + } + } + } + } + + refreshUI(); + } + + @Override + protected void onDestroy() { + if (mReceiver != null) { + unregisterReceiver(mReceiver); + } + super.onDestroy(); + } + + private void loadAccountPreference() { + mAccountCategory.removeAll(); + + Preference accountPref = new Preference(this); + final String defaultAccount = getSyncAccountName(this); + accountPref.setTitle(getString(R.string.preferences_account_title)); + accountPref.setSummary(getString(R.string.preferences_account_summary)); + accountPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { + public boolean onPreferenceClick(Preference preference) { + if (!GTaskSyncService.isSyncing()) { + if (TextUtils.isEmpty(defaultAccount)) { + // the first time to set account + showSelectAccountAlertDialog(); + } else { + // if the account has already been set, we need to promp + // user about the risk + showChangeAccountConfirmAlertDialog(); + } + } else { + Toast.makeText(NotesPreferenceActivity.this, + R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT) + .show(); + } + return true; + } + }); + + mAccountCategory.addPreference(accountPref); + } + + private void loadSyncButton() { + Button syncButton = (Button) findViewById(R.id.preference_sync_button); + TextView lastSyncTimeView = (TextView) findViewById(R.id.prefenerece_sync_status_textview); + + // set button state + if (GTaskSyncService.isSyncing()) { + syncButton.setText(getString(R.string.preferences_button_sync_cancel)); + syncButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + GTaskSyncService.cancelSync(NotesPreferenceActivity.this); + } + }); + } else { + syncButton.setText(getString(R.string.preferences_button_sync_immediately)); + syncButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + GTaskSyncService.startSync(NotesPreferenceActivity.this); + } + }); + } + syncButton.setEnabled(!TextUtils.isEmpty(getSyncAccountName(this))); + + // set last sync time + if (GTaskSyncService.isSyncing()) { + lastSyncTimeView.setText(GTaskSyncService.getProgressString()); + lastSyncTimeView.setVisibility(View.VISIBLE); + } else { + long lastSyncTime = getLastSyncTime(this); + if (lastSyncTime != 0) { + lastSyncTimeView.setText(getString(R.string.preferences_last_sync_time, + DateFormat.format(getString(R.string.preferences_last_sync_time_format), + lastSyncTime))); + lastSyncTimeView.setVisibility(View.VISIBLE); + } else { + lastSyncTimeView.setVisibility(View.GONE); + } + } + } + + private void refreshUI() { + loadAccountPreference(); + loadSyncButton(); + } + + private void showSelectAccountAlertDialog() { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + + View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null); + TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title); + titleTextView.setText(getString(R.string.preferences_dialog_select_account_title)); + TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); + subtitleTextView.setText(getString(R.string.preferences_dialog_select_account_tips)); + + dialogBuilder.setCustomTitle(titleView); + dialogBuilder.setPositiveButton(null, null); + + Account[] accounts = getGoogleAccounts(); + String defAccount = getSyncAccountName(this); + + mOriAccounts = accounts; + mHasAddedAccount = false; + + if (accounts.length > 0) { + CharSequence[] items = new CharSequence[accounts.length]; + final CharSequence[] itemMapping = items; + int checkedItem = -1; + int index = 0; + for (Account account : accounts) { + if (TextUtils.equals(account.name, defAccount)) { + checkedItem = index; + } + items[index++] = account.name; + } + dialogBuilder.setSingleChoiceItems(items, checkedItem, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + setSyncAccount(itemMapping[which].toString()); + dialog.dismiss(); + refreshUI(); + } + }); + } + + View addAccountView = LayoutInflater.from(this).inflate(R.layout.add_account_text, null); + dialogBuilder.setView(addAccountView); + + final AlertDialog dialog = dialogBuilder.show(); + addAccountView.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + mHasAddedAccount = true; + Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS"); + intent.putExtra(AUTHORITIES_FILTER_KEY, new String[] { + "gmail-ls" + }); + startActivityForResult(intent, -1); + dialog.dismiss(); + } + }); + } + + private void showChangeAccountConfirmAlertDialog() { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + + View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null); + TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title); + titleTextView.setText(getString(R.string.preferences_dialog_change_account_title, + getSyncAccountName(this))); + TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); + subtitleTextView.setText(getString(R.string.preferences_dialog_change_account_warn_msg)); + dialogBuilder.setCustomTitle(titleView); + + CharSequence[] menuItemArray = new CharSequence[] { + getString(R.string.preferences_menu_change_account), + getString(R.string.preferences_menu_remove_account), + getString(R.string.preferences_menu_cancel) + }; + dialogBuilder.setItems(menuItemArray, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + if (which == 0) { + showSelectAccountAlertDialog(); + } else if (which == 1) { + removeSyncAccount(); + refreshUI(); + } + } + }); + dialogBuilder.show(); + } + + private Account[] getGoogleAccounts() { + AccountManager accountManager = AccountManager.get(this); + return accountManager.getAccountsByType("com.google"); + } + + private void setSyncAccount(String account) { + if (!getSyncAccountName(this).equals(account)) { + SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + if (account != null) { + editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, account); + } else { + editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); + } + editor.commit(); + + // clean up last sync time + setLastSyncTime(this, 0); + + // clean up local gtask related info + new Thread(new Runnable() { + public void run() { + ContentValues values = new ContentValues(); + values.put(NoteColumns.GTASK_ID, ""); + values.put(NoteColumns.SYNC_ID, 0); + getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); + } + }).start(); + + Toast.makeText(NotesPreferenceActivity.this, + getString(R.string.preferences_toast_success_set_accout, account), + Toast.LENGTH_SHORT).show(); + } + } + + private void removeSyncAccount() { + SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + if (settings.contains(PREFERENCE_SYNC_ACCOUNT_NAME)) { + editor.remove(PREFERENCE_SYNC_ACCOUNT_NAME); + } + if (settings.contains(PREFERENCE_LAST_SYNC_TIME)) { + editor.remove(PREFERENCE_LAST_SYNC_TIME); + } + editor.commit(); + + // clean up local gtask related info + new Thread(new Runnable() { + public void run() { + ContentValues values = new ContentValues(); + values.put(NoteColumns.GTASK_ID, ""); + values.put(NoteColumns.SYNC_ID, 0); + getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); + } + }).start(); + } + + public static String getSyncAccountName(Context context) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + return settings.getString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); + } + + public static void setLastSyncTime(Context context, long time) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + editor.putLong(PREFERENCE_LAST_SYNC_TIME, time); + editor.commit(); + } + + public static long getLastSyncTime(Context context) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0); + } + + private class GTaskReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + refreshUI(); + if (intent.getBooleanExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_IS_SYNCING, false)) { + TextView syncStatus = (TextView) findViewById(R.id.prefenerece_sync_status_textview); + syncStatus.setText(intent + .getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG)); + } + + } + } + + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + Intent intent = new Intent(this, NotesListActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + return true; + default: + return false; + } + } +} diff --git a/src/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java b/src/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java new file mode 100644 index 0000000..ec6f819 --- /dev/null +++ b/src/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; +import android.app.PendingIntent; +import android.appwidget.AppWidgetManager; +import android.appwidget.AppWidgetProvider; +import android.content.ContentValues; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; +import android.util.Log; +import android.widget.RemoteViews; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.ui.NoteEditActivity; +import net.micode.notes.ui.NotesListActivity; + +public abstract class NoteWidgetProvider extends AppWidgetProvider { + public static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.BG_COLOR_ID, + NoteColumns.SNIPPET + }; + + public static final int COLUMN_ID = 0; + public static final int COLUMN_BG_COLOR_ID = 1; + public static final int COLUMN_SNIPPET = 2; + + private static final String TAG = "NoteWidgetProvider"; + + @Override + public void onDeleted(Context context, int[] appWidgetIds) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.WIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); + for (int i = 0; i < appWidgetIds.length; i++) { + context.getContentResolver().update(Notes.CONTENT_NOTE_URI, + values, + NoteColumns.WIDGET_ID + "=?", + new String[] { String.valueOf(appWidgetIds[i])}); + } + } + + private Cursor getNoteWidgetInfo(Context context, int widgetId) { + return context.getContentResolver().query(Notes.CONTENT_NOTE_URI, + PROJECTION, + NoteColumns.WIDGET_ID + "=? AND " + NoteColumns.PARENT_ID + "<>?", + new String[] { String.valueOf(widgetId), String.valueOf(Notes.ID_TRASH_FOLER) }, + null); + } + + protected void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + update(context, appWidgetManager, appWidgetIds, false); + } + + private void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds, + boolean privacyMode) { + for (int i = 0; i < appWidgetIds.length; i++) { + if (appWidgetIds[i] != AppWidgetManager.INVALID_APPWIDGET_ID) { + int bgId = ResourceParser.getDefaultBgId(context); + String snippet = ""; + Intent intent = new Intent(context, NoteEditActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); + intent.putExtra(Notes.INTENT_EXTRA_WIDGET_ID, appWidgetIds[i]); + intent.putExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, getWidgetType()); + + Cursor c = getNoteWidgetInfo(context, appWidgetIds[i]); + if (c != null && c.moveToFirst()) { + if (c.getCount() > 1) { + Log.e(TAG, "Multiple message with same widget id:" + appWidgetIds[i]); + c.close(); + return; + } + snippet = c.getString(COLUMN_SNIPPET); + bgId = c.getInt(COLUMN_BG_COLOR_ID); + intent.putExtra(Intent.EXTRA_UID, c.getLong(COLUMN_ID)); + intent.setAction(Intent.ACTION_VIEW); + } else { + snippet = context.getResources().getString(R.string.widget_havenot_content); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + } + + if (c != null) { + c.close(); + } + + RemoteViews rv = new RemoteViews(context.getPackageName(), getLayoutId()); + rv.setImageViewResource(R.id.widget_bg_image, getBgResourceId(bgId)); + intent.putExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, bgId); + /** + * Generate the pending intent to start host for the widget + */ + PendingIntent pendingIntent = null; + if (privacyMode) { + rv.setTextViewText(R.id.widget_text, + context.getString(R.string.widget_under_visit_mode)); + pendingIntent = PendingIntent.getActivity(context, appWidgetIds[i], new Intent( + context, NotesListActivity.class), PendingIntent.FLAG_UPDATE_CURRENT); + } else { + rv.setTextViewText(R.id.widget_text, snippet); + pendingIntent = PendingIntent.getActivity(context, appWidgetIds[i], intent, + PendingIntent.FLAG_UPDATE_CURRENT); + } + + rv.setOnClickPendingIntent(R.id.widget_text, pendingIntent); + appWidgetManager.updateAppWidget(appWidgetIds[i], rv); + } + } + } + + protected abstract int getBgResourceId(int bgId); + + protected abstract int getLayoutId(); + + protected abstract int getWidgetType(); +} diff --git a/src/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java b/src/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java new file mode 100644 index 0000000..adcb2f7 --- /dev/null +++ b/src/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; + +import android.appwidget.AppWidgetManager; +import android.content.Context; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.ResourceParser; + + +public class NoteWidgetProvider_2x extends NoteWidgetProvider { + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + super.update(context, appWidgetManager, appWidgetIds); + } + + @Override + protected int getLayoutId() { + return R.layout.widget_2x; + } + + @Override + protected int getBgResourceId(int bgId) { + return ResourceParser.WidgetBgResources.getWidget2xBgResource(bgId); + } + + @Override + protected int getWidgetType() { + return Notes.TYPE_WIDGET_2X; + } +} diff --git a/src/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java b/src/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java new file mode 100644 index 0000000..c12a02e --- /dev/null +++ b/src/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; + +import android.appwidget.AppWidgetManager; +import android.content.Context; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.ResourceParser; + + +public class NoteWidgetProvider_4x extends NoteWidgetProvider { + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + super.update(context, appWidgetManager, appWidgetIds); + } + + protected int getLayoutId() { + return R.layout.widget_4x; + } + + @Override + protected int getBgResourceId(int bgId) { + return ResourceParser.WidgetBgResources.getWidget4xBgResource(bgId); + } + + @Override + protected int getWidgetType() { + return Notes.TYPE_WIDGET_4X; + } +} diff --git a/src/src/main/res/color/primary_text_dark.xml b/src/src/main/res/color/primary_text_dark.xml new file mode 100644 index 0000000..7c85459 --- /dev/null +++ b/src/src/main/res/color/primary_text_dark.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/src/main/res/color/secondary_text_dark.xml b/src/src/main/res/color/secondary_text_dark.xml new file mode 100644 index 0000000..c1c2384 --- /dev/null +++ b/src/src/main/res/color/secondary_text_dark.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/src/src/main/res/drawable-hdpi/bg_btn_set_color.png b/src/src/main/res/drawable-hdpi/bg_btn_set_color.png new file mode 100644 index 0000000000000000000000000000000000000000..5eb5d44f561b5484eb094e18159ac10e0a32b53d GIT binary patch literal 3588 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 QZ~y=R07*qoM6N<$g4u_m#{d8T literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/dropdown_icon.9.png b/src/src/main/res/drawable-hdpi/dropdown_icon.9.png new file mode 100644 index 0000000000000000000000000000000000000000..55250257a0cd618f2dd365cfa27a38d323c7975b GIT binary patch literal 443 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/edit_red.9.png b/src/src/main/res/drawable-hdpi/edit_red.9.png new file mode 100644 index 0000000000000000000000000000000000000000..bae944a5f822df5d030a91466d439b5a7f7259e3 GIT binary patch literal 3458 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 Glm7#CUYk+? literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/edit_title_blue.9.png b/src/src/main/res/drawable-hdpi/edit_title_blue.9.png new file mode 100644 index 0000000000000000000000000000000000000000..96e60925b9ddf7115029b6c3a5eab53ab509b0d4 GIT binary patch literal 5100 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/edit_title_yellow.9.png b/src/src/main/res/drawable-hdpi/edit_title_yellow.9.png new file mode 100644 index 0000000000000000000000000000000000000000..bf8f580aaf01a744d9e7ad6b1464883eb2ed2b60 GIT binary patch literal 6000 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/edit_white.9.png b/src/src/main/res/drawable-hdpi/edit_white.9.png new file mode 100644 index 0000000000000000000000000000000000000000..918f7a6b19dbddf940ff3e75b9558779ef570d57 GIT binary patch literal 3441 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/edit_yellow.9.png b/src/src/main/res/drawable-hdpi/edit_yellow.9.png new file mode 100644 index 0000000000000000000000000000000000000000..10cb64213f33586622830edd55bf8ed6349fca16 GIT binary patch literal 3634 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/font_large.png b/src/src/main/res/drawable-hdpi/font_large.png new file mode 100644 index 0000000000000000000000000000000000000000..78cf2e6fcc38567b27f1fba2d5518eb3b71b2682 GIT binary patch literal 3161 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/font_normal.png b/src/src/main/res/drawable-hdpi/font_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..9de7ced77ee2bd01542f6853b52f05e9301a81e5 GIT binary patch literal 3097 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/font_small.png b/src/src/main/res/drawable-hdpi/font_small.png new file mode 100644 index 0000000000000000000000000000000000000000..d3ff104884a11386b10830b13b34e430e1b22a45 GIT binary patch literal 3099 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/font_super.png b/src/src/main/res/drawable-hdpi/font_super.png new file mode 100644 index 0000000000000000000000000000000000000000..85b13a1d31218ac8e264808e743f14cdfaada1ec GIT binary patch literal 3188 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/lan.jpg b/src/src/main/res/drawable-hdpi/lan.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8c86dffe1833d63cf9cd0ba7d8f84bc2774700ea GIT binary patch literal 110231 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_background.png b/src/src/main/res/drawable-hdpi/list_background.png new file mode 100644 index 0000000000000000000000000000000000000000..087e1f97a35a36bd5c168d62996e54573446c2d9 GIT binary patch literal 567323 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

bugsGA_N!+86-i*}5>zZ*_* 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 z

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

K~e=Xj^!m==^?uA2#d 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

plp!9Ko0*47^YF?b4}}i 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 z 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

XkNud$|rS*`LI7vgK=*tU3ARJEPi<$PE2 zkbqK2f*TXcOM%kXdH$AP?ntSC+^e3Pu)yWDMoCAFoDl#h`;4E_ySw$-TN(L#jXW2M zLJcR!$_i*{24f->L zXLmEGfxbSX%r=rss0;hd3Z+p>8pyvIw~4fe|L`{9(22j)TjGSZYlydIrA$^#-H##! zKw?=COpSJXtzuA_z7)|NcT!?v4ge@nfm^GdC?_;HWv#|k%256N8<(U@RFh;TW9h>$ z8%cFeG!#SewpB6DjCq03GnJPn;ZP31ePLY9e3*7`iqblZ6_KCtg<;hMBlp>5%>?*t zR%HXM+@wo%8y5Zaaml!k)+2^pH)G{|XPP#{B_*IhOPdVC4KQq__-{<)L>HAhFA3x~BeO7aBx%m=Ov!p__NXxq6!xg=-`35LlsPAreal8j2! z)JY`u?R*O=u0~hRq#vMeCnN$1EmlroWru%T^F`b~)!j>Lcor#;Nf7Z4_Mh#J zAiQ`t>c_)ULz=Rw_`xf^#n_MFg4ouD5%c`Q-cZGdvE!(^o^3plHVZ5y>j9o7GdngzJ7JIT3T?Oa*n%^=_i<~@wVI`;b#(=GNDZlg@jBY_em;M(O$EMVp|_(+efw%YwF(-egT9^e`(0zPk2 z)rzQEB>{u@bLF#3(5e#1iN?_O@&MDM@({0QNMy}BA9Q?X)QM~Effb(bI1mQuHM++= zpOSM8Ayy~Sviz$1es?WIw}pT5t*el>BxBlhqA{!2}=>3v0rP}Z8B7N)p-Fmp>Te1 z@=#2-sUQphs@vDm9j1vutd@Jz#e_u7V3>y&6p_8GwvjhE9_KC%WDDa|?98f}uPKku z7W_(AfmG>*RZ!@Y{-b(&{F2h|&XTd00s_x}&knYNZg!pGxGl`@p*^0xv#sy&9Q-&L z$cRq)Y-WA`RUAeMF>QT+x^EyG4%34bjqtdeSXrLP2t*=`JxsAr zI5>o@WdMWJJV6d~Ds?)-nHFj2(%p?I6e_;`{85{Vu(4T#rCq9q7AGe(^tEjEyb6|% z%HpNCkIR$S+Zg!#`lMU)G;b4gY!+_PPorYNdIYVTx=CwJJ1^x?9pDdng51JMfc#A~ ztU+y$(`ZhLPa!5vB~OXTe1OM8&q^yyvFSlk1D!9PrU!f7ZDpOss3@Ki_r2U5M_zll zW#-EPF-mq+?<9Bd%WMQO?vDJG=SGw6%pdTr;2yE`t7ry-XzBbrv4(iGZv=XlHJ6nUQZ*@2rQ>ZE9j|2fX;CfHEo znYXQvJ1ZqzS*jn*n{y znWiIF=a9pG0<)X0J%7lA6CjV3l)Z8nQ*-+l7sO=!XKvWzY`8VB3Glyd^XOw92C}XI zqhe7b7&C@o(t>+2vJz97j4$#xf1@HH?7jnU5)P}6{SO`#J+j`swAXc^Tz3ON4Q-!B zpnY#gt0^?Xv|)G8TW!t@Bb@-UH<2?3`eV+<0w*vYO8&+H^4o82oTI5=1zsgi7Lg}H za$krtLpd>|Y=;m5_pwU@2siq4nYp?!8piY8#ejxN7$1Rgt8GaYHay#$w)x!T;(zSo z%y_oCY>Dc%h-z&jvWns5?mCHGcTrL5opxrJ5R?_m^0c;V-=F6)@40z7{TK{UW@jL` zx)Tu+&R@OmjMy~2CXqZc)bTOFYyVtBwC

v16tv1~dCNXheHF>5(*JP`az`0m`!I z_=tom@xE%kP0l2etoJ*PUyJ@Nh47&N@+EtKD zN#V+_23(2ktAZ$1PY=BXc`($$;NGI#k&h}^qS|yu{p0fTalsG8neqt-nhjU}G zJ1^=){o2iNG>2mMX}1q6AsnT*q)LEw7z(I>uIY2+JD;5E0zf!sS+-np~89Q&@_e2!dhF^#$7CCplW%$EQCwuzrz+UT?aR^}mTv2vU`f z0gZae)cdEbd)OtpAFvN<-%;leB67z;0x~l7$QxYDtmjuav|#@04L^0#?|$n=^Zar_ z>fFs;U39S$es41<<7My7yLsMee?eKkI53VS5W z^aBJ-zpCbF=;Pj$MEbOI{&6}rHFUtQapLJj4?x zK`J&4lRQa{5(s7n_;caJKKePQG$hqhdH9~DuYG%A95G!&{%8k*7v6npZVKj*_k_B6 z4u_S85!f0%D<=7a48-pjSn1Ljr>PB>gtFC5PcBhEpYKRX7$B4WMn&MAdcKyV=!@EJ?tCpcTEu-RS_<#%Kj&=M8J1y5R7U8;or(fOfn zVSm10NoS=aGs|3|0}k=(S};dm1K3P2zMMI!6w<7ctYMQn^XpM=(yc4KPlP7dkn&zv z%R`;nGxt8s3JSq?A2N?d|9>G)i`!4N6Ak5*4?ycQUxD2Yvw3K}7=Td}!>HZn%&

e6V5FRup@?R_P~$5#0ato4?dx|UT+YZe!uO{R^{ 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
ccgGPtth9g(3C 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%0DofVu@{9+M?15 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_blue_down.9.png b/src/src/main/res/drawable-hdpi/list_blue_down.9.png new file mode 100644 index 0000000000000000000000000000000000000000..b88eebf67ab0a5e65237187408873878ef7130cb GIT binary patch literal 4361 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_blue_single.9.png b/src/src/main/res/drawable-hdpi/list_blue_single.9.png new file mode 100644 index 0000000000000000000000000000000000000000..d7e7206fc2e942f9cdb0645af8855bb2bbd24206 GIT binary patch literal 4618 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 B+)@Al literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_blue_up.9.png b/src/src/main/res/drawable-hdpi/list_blue_up.9.png new file mode 100644 index 0000000000000000000000000000000000000000..632e88c844ee1d377841adb49c0a80ffe3957a2d GIT binary patch literal 3301 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_green_down.9.png b/src/src/main/res/drawable-hdpi/list_green_down.9.png new file mode 100644 index 0000000000000000000000000000000000000000..64a39d9516f8c9df1034a1830235a64db4c663ea GIT binary patch literal 4488 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 Ee?o7YP5=M^ literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_green_middle.9.png b/src/src/main/res/drawable-hdpi/list_green_middle.9.png new file mode 100644 index 0000000000000000000000000000000000000000..897325a4f62defad10d745c527cf39b6acf2c833 GIT binary patch literal 3179 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 Ofr_H$lTvxh*Z%`qbR0MU literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_green_up.9.png b/src/src/main/res/drawable-hdpi/list_green_up.9.png new file mode 100644 index 0000000000000000000000000000000000000000..141f9e1678a0b34a5343614e38d3fda52ed47cfb GIT binary patch literal 3351 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_red_down.9.png b/src/src/main/res/drawable-hdpi/list_red_down.9.png new file mode 100644 index 0000000000000000000000000000000000000000..42243095f3c249d529d55523ff1aba2823ff61f9 GIT binary patch literal 4307 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_red_up.9.png b/src/src/main/res/drawable-hdpi/list_red_up.9.png new file mode 100644 index 0000000000000000000000000000000000000000..46b475797d7636ee9ac20ffdab422853612ea876 GIT binary patch literal 3277 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 UYW(2rmj(cxy9Rfv)$POo2Q$;Ge*gdg literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_white_up.9.png b/src/src/main/res/drawable-hdpi/list_white_up.9.png new file mode 100644 index 0000000000000000000000000000000000000000..e23cd5cb09c271ccd56716f3d61d11892f70151a GIT binary patch literal 3220 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_yellow_middle.9.png b/src/src/main/res/drawable-hdpi/list_yellow_middle.9.png new file mode 100644 index 0000000000000000000000000000000000000000..b6549b2945d0d92247366118297633d69031cbe9 GIT binary patch literal 3150 zcmV-U46*ZxP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z0eeYAK~#9!?3_JL#4r$r-vmRpTS0?FNy{;~6qiGsf(nU(3m`fWVIKwbNE^!&(&cK^m3ju{h0n2T(!gtI_)<^uEoE;!pYM4~ipGwwv>yo%c;JBt9(d~f--X^O z9iH(#@W5wHb*)1l&jY^!*>jkI?12X!c;NqWsq=4{GgBS12OfCffoH1Q*i=`xVMflr z{T^dg_<(JS2#*@`Q|3p2Wc$9ey_2#%gAMS&r^I|l$ZrLHDzp6AKH*Je-h}M;^3v92 zKl|;8dEkKuzI}V^j9N!~o9+3W{w9cd;B#f)Yjcn6k$rE9=kF@uliOR--XeS8hwAV= zGCb`qF+Y~)w9R2ghCJYQowJWtH8v!u&9zy1~V*_9%8%?*#! oi+uQ}hr2FoyzPjQF9ZA@0H}DC=3qV;pa1{>07*qoM6N<$g6s`f`Yd88yBdH+Zz{G78L~r7T0$!Hg=BI0C-KN>3JH(V5p_% zFxI37^5c8u364R4jUA5HN%kU}EE-t8CnJ|_`|ydtfRgG?sqf4{B}Y zzI-wc(|;+p%RHT5<>!sw**PCOuU|`DyXb@UlLp=)=lr&sZ4bnCKRl5bXO7fT{@v9O zh()D5kHbQ?ifXaF)ds*GHq6T(S|)P=DRlu@z;%T09(l*YbqG?M(-5$H1M_U;YlM&} zUC_z*yps}i(twtxRknTgQ<`$3%mu2I_X)b{TzNi*b!U}A-1w0~*qDW;eKwy&m!ydpQh6NOuD0;D3 z)Uh)K2Ak#!&0Rm#DnmdsDy}y{ZBUr9Htr9-=fU3mBI{y{W4XK~4HuaW{xVx?LJB*D z@*1{!9}xibrvtyP#AKq@R+kr6ZPpyof7`OJ9QIt;q*?dpuIj&H;Q%tte)OdI%E~CV zYX_vvy~&}_1WX!$H*=?^!c+K}#sq)7Ps3nh7qU$0S=yaX81E7g67F!k%4!f;3X{GT zUT~QY^FO|^UQK!Lfw#%BNr>j0kjuB0&K@PY5o;(Mc|m8)8v9kphk(lnu7Slz zlGI;}_02R`mbahE65VTlLMDHEIq)t)7Hzy7-ScLNah$3$Z2HVQ$qQtazXZjI*XGGz z25q_0+_s=iZ=tOZ#mABB#G|lemH2e$Rm3=3A0ACo1P+^}@}ua$T$YVblsar}o$qq7 z3gzv;nJTj%@V=uI4}U3p7B$t$BJ}0rOTCg{Y*2*`_Ar*a?9T#b`Y-L7ZUfLqq^5!K z*$xBrl}u8B)!F$2YU}P$;P)lMDsVuM#OCXS<;$-h6)ip+(Q|fCTdf$07(|L#F&c?_ zP%$*8TcYvqVTA=!Y~z`|Cu?yGj*3z;Qa4g4;MiubBuC;I;)lE!Y`M=CQ=nDJ;Z1(} z+v}A?d6dyJIOi@a6Kgt$*?kfU^BCoOBwf+VngpyIQ9>$&Dh|q1%DlOHxzdAVcB$%| zTTxD3v&(oDfpC_DZ#7Y*QCiXGU9HPCloD;97S-{y@9E~olB7mW9_py-Tk$W;nZwj>nDwj8Bn4wrh%<=uk6SBxuJ5KVGXg6jd|s?iT5M+Em-kHnhxSq-{xEg%NFk$sUE$-B zK3z}UNbP7@&oV=mbDmq(w9|#NQnw3P?;FXFzB9nydgzd-@yev) zbX(oy);WU*zmK|}f?JUd+~%82+Unb02uXYS{GRwks%jr=A90@#FE+0XZ~3S_!Uo}w z5S{d%Y@B?x^KOTFXKNDe?wTf>_Au>8!bt+-j*ond)IokgPPzAQN)K6W!8Y)Zx{pXU zW(Jgwoc`t<(QKke(F4q)0*~+>N6|S7idpUTL|LsnB-+&u?7d$oxPy9w{Pz1z&VWkJ z{aVi5kG4x9UNq7+aF@HU;E!glryZVHzOoaV%Ke?&w%o|o8|#p4gB++Fg7)-uKAeV+ z!@IU4#79yc(k&Y&>ZdNkKYUkAZBq?<9M%y(8Sjg_6|WJGfhQVB8^8>X494Ipqc67} zZaIw_I%+c*rVyn_q@bz`5Gjb?9w|<9l#7&+T!UOkdd`!A+ZWpe+sWIvcf^k^k2#K= zj{6yV?vgW(NtpQtDEs5fe_sGd)sme#Pe+d?^fFrma$FxxafDqs6y9OKJHj z`7MW0Yy4&&W-rXn8<@0yq;jT@3OIF6{Wh6zK>1imNK09t^=)8Fw@YJXcxQZU%xh$u zlWJu5AN5c2$Gu2DmpnsVMxHb+zz(SQHE&r!enD0s4MFrlKd>FJnQ@YEzT=AA3cpo% zo1aLUN}dRx_yzO37?)<61BO#8;c454$pci~cxhC|3}*s8oa#)YcOpXj@#e_4B;oZB`;>_--U{V6$RU;WO* z7H;pT>u9x|QX5!XR2$^=@kDVyfgDP44}a(L^6&BAQlFRHu+|)tg;ST4pT|S3N>-+` zf6}aO^r6x{pS%!x5#=lPA(1?xLS`j|MP8eqR%<2SS%Z<{;C;#mEyc#{@NAv(np)K- z(W_|&amQjal70$jZ$h=6xwi}BYw7a9zR^YhWIxm}cse=@@1J-(!7Cn{8k?G?C_uxf*kmw8*Xex<8la>$9Z2p4Hbn-P${s6i{=7x1|i@ z8I)*phx6t*WlCi=px3|Vq%oQ?DmB(z`=bSytlT?9A`R0s(;i6epDqW-Eakt>Pfyd7 zks3~#hGEn%k{nEROdD(!`qO1-pu6fd=9sR-*|kX1y?WQbY?xP595rePsS+tAf7i%N$U{EB>v{%(JRYuJ`s@!H(w;<;MC(Z%>4;b~ZZQwgl_@Ey9i zuvDUhy@R>F4<@yrcY)}e@J6@jotvjT>yYh3jib%0ibb-Hg9_d0Iq||Q@Q6}liM>I zVXqAtap&g>ce~yv4tz>_qy7xPmU*)mUs!@<%9INYq zXiE;%J88t10DM0_=!3vaY#@gVf=K`lBfygYWYGUgmUSTe2XbQ$Omfts`x&bn?dU%A zb5zPx$phpSs2s;^b55vLnBTv^`n8_9CBJJNy%y~&(RHX&QcMm>e3P`S5=|Q88?~&% zW$o!Wu2HyN9sL9|nIL_=Y2q?-wSeNEyU^rX39BXrF=|NTYj@1oY#k=B2b++LUBkJ66+?&C1 zs)ab(x5J$YzgM$4YaWnsDJiO#F)09gXg&Jxnbhni?3DVlccmF`wF=6Ku6RuvkVJIN zsLxc%fy6Pn>gnwY8;9-Jc{rw@DYSqXEKFT2$6OoYTIkd-oHQu~<}czxKxVdH55#rT zrjv$>5hNsMV*fv){}HTATyH1gf}1uc3=%ad(R^G3 zVsygGVP8l9Rayl}V3?{R?*HaMGr=Sf;u@jRAHU;PaTmCn@kof{Hg`P`R&N!&85$9} zf4+fX-Mr16FpE(V6t%~zsP1h&$!u*YUuS}(@6+vQYy2;D_bIjER zOIHk^Ti?BPrpt|;xrWoK(tvB+jI(V+y)Q*1fgAR`6EL*PDT>*7PO~EBHRfTkGk;eO z`s(DEKj7#vU)1cfCEUfyg_}qkUAa5|&jE?$5`=5$hzP)BZKuk}9+4P{!M) zHKXC6U(Xrnuib~>4(+8wZ0L4`l3MLwkrRcGJeOHSD=K-- z&ry7D{mFM#k-8wH?52cV@%jj!PSSc!@flGKQ-O`ejW;@5(`Bk_!hthYK83I9w|KqKqEIOn6{ z8`Pg50(=&O`66*-bP~CBx-DbO;7+;y5*P_ljvUZNID^e4pYw)IE=m zvWA@SOX7>1wjHcI=-Z(i5gS)e>=d}G1oagi+$%RO!$RjB5zC_u{*Rs-nwv0Iuj4Na z3Wv7|X3daST47c48<}`|3uW!_=8sb|_kL^5oZ9)47il2xJSgIr6I?QCjQYhDe{R~m z1LasXs|oC1o~Jcaxh@YHg4ef0wT?tu6pFrEYeg|)Xepi*UqAIjH5E>|Oq4N&dK8l2 zf6wZuTgA(e7=mg}rAo$IFQ1#VlySTl)v#68W)e+P>^~`vvsKGv#268Ixjg=w5K88> z!JYmi`=PLJ>87fP=c9EG18$^nT?F6h3GGbl?y06UOsHFBn{_y-^^ATg-bzEEg;$Do zc+h%Gw4Q^=UQ1uNdNPTfXtM{Mf?;-yknBpgUSv!a@EEm}v}G616=d>xi71^aUm2f` zavpXppfo``i|TjrmR5PxX>OQlXw~_ijLQtV|4fM_{m5u0W0>!I9~FysN5pamX?;fL##hpfd(AdjWIy!}NA=$!u)=!NnN*l7%J6ZXx>ISy#So*}I{~GduIad$y9>tmzw&6y;$`T^y|hWi zs8sJ1e^jwYxQn9*QhzW?h3%5d0oSaMi{DcR@8ZREriF>-RST-pC#*@XaRIo##s;?| XsAQrV2j1U2(LhB}^J$5^Meu(B#^L)R literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/list_yellow_up.9.png b/src/src/main/res/drawable-hdpi/list_yellow_up.9.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae791cecb795142f46ceb5fb2352ac0af82ee2a GIT binary patch literal 3335 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 literal 0 HcmV?d00001 diff --git a/src/src/main/res/drawable-hdpi/menu_delete.png b/src/src/main/res/drawable-hdpi/menu_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..ccdfc4ba5468ad2a5c865f2e2c9bd1f210c69b67 GIT binary patch literal 3426 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