diff --git a/src/Notes-master/res/drawable/drawable-hdpi/bg_btn_set_color.png b/src/Notes-master/res/drawable/drawable-hdpi/bg_btn_set_color.png new file mode 100644 index 0000000..5eb5d44 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/bg_btn_set_color.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/bg_color_btn_mask.png b/src/Notes-master/res/drawable/drawable-hdpi/bg_color_btn_mask.png new file mode 100644 index 0000000..100db77 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/bg_color_btn_mask.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/call_record.png b/src/Notes-master/res/drawable/drawable-hdpi/call_record.png new file mode 100644 index 0000000..fb88ca4 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/call_record.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/clock.png b/src/Notes-master/res/drawable/drawable-hdpi/clock.png new file mode 100644 index 0000000..5f2ae9a Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/clock.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/delete.png b/src/Notes-master/res/drawable/drawable-hdpi/delete.png new file mode 100644 index 0000000..643de3e Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/delete.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/dropdown_icon.9.png b/src/Notes-master/res/drawable/drawable-hdpi/dropdown_icon.9.png new file mode 100644 index 0000000..5525025 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/dropdown_icon.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/edit_blue.9.png b/src/Notes-master/res/drawable/drawable-hdpi/edit_blue.9.png new file mode 100644 index 0000000..55a1856 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/edit_blue.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/edit_green.9.png b/src/Notes-master/res/drawable/drawable-hdpi/edit_green.9.png new file mode 100644 index 0000000..2cb2d60 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/edit_green.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/edit_red.9.png b/src/Notes-master/res/drawable/drawable-hdpi/edit_red.9.png new file mode 100644 index 0000000..bae944a Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/edit_red.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/edit_title_blue.9.png b/src/Notes-master/res/drawable/drawable-hdpi/edit_title_blue.9.png new file mode 100644 index 0000000..96e6092 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/edit_title_blue.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/edit_title_green.9.png b/src/Notes-master/res/drawable/drawable-hdpi/edit_title_green.9.png new file mode 100644 index 0000000..08d8644 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/edit_title_green.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/edit_title_red.9.png b/src/Notes-master/res/drawable/drawable-hdpi/edit_title_red.9.png new file mode 100644 index 0000000..9c430e5 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/edit_title_red.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/edit_title_white.9.png b/src/Notes-master/res/drawable/drawable-hdpi/edit_title_white.9.png new file mode 100644 index 0000000..19e8d95 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/edit_title_white.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/edit_title_yellow.9.png b/src/Notes-master/res/drawable/drawable-hdpi/edit_title_yellow.9.png new file mode 100644 index 0000000..bf8f580 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/edit_title_yellow.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/edit_white.9.png b/src/Notes-master/res/drawable/drawable-hdpi/edit_white.9.png new file mode 100644 index 0000000..918f7a6 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/edit_white.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/edit_yellow.9.png b/src/Notes-master/res/drawable/drawable-hdpi/edit_yellow.9.png new file mode 100644 index 0000000..10cb642 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/edit_yellow.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/font_large.png b/src/Notes-master/res/drawable/drawable-hdpi/font_large.png new file mode 100644 index 0000000..78cf2e6 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/font_large.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/font_normal.png b/src/Notes-master/res/drawable/drawable-hdpi/font_normal.png new file mode 100644 index 0000000..9de7ced Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/font_normal.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/font_size_selector_bg.9.png b/src/Notes-master/res/drawable/drawable-hdpi/font_size_selector_bg.9.png new file mode 100644 index 0000000..be8e64c Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/font_size_selector_bg.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/font_small.png b/src/Notes-master/res/drawable/drawable-hdpi/font_small.png new file mode 100644 index 0000000..d3ff104 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/font_small.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/font_super.png b/src/Notes-master/res/drawable/drawable-hdpi/font_super.png new file mode 100644 index 0000000..85b13a1 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/font_super.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/icon_app.png b/src/Notes-master/res/drawable/drawable-hdpi/icon_app.png new file mode 100644 index 0000000..418aadc Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/icon_app.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_background.png b/src/Notes-master/res/drawable/drawable-hdpi/list_background.png new file mode 100644 index 0000000..087e1f9 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_background.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_blue_down.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_blue_down.9.png new file mode 100644 index 0000000..b88eebf Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_blue_down.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_blue_middle.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_blue_middle.9.png new file mode 100644 index 0000000..96b1c8b Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_blue_middle.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_blue_single.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_blue_single.9.png new file mode 100644 index 0000000..d7e7206 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_blue_single.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_blue_up.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_blue_up.9.png new file mode 100644 index 0000000..632e88c Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_blue_up.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_folder.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_folder.9.png new file mode 100644 index 0000000..829f61b Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_folder.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_footer_bg.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_footer_bg.9.png new file mode 100644 index 0000000..5325c25 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_footer_bg.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_green_down.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_green_down.9.png new file mode 100644 index 0000000..64a39d9 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_green_down.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_green_middle.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_green_middle.9.png new file mode 100644 index 0000000..897325a Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_green_middle.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_green_single.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_green_single.9.png new file mode 100644 index 0000000..c83405f Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_green_single.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_green_up.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_green_up.9.png new file mode 100644 index 0000000..141f9e1 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_green_up.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_red_down.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_red_down.9.png new file mode 100644 index 0000000..4224309 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_red_down.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_red_middle.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_red_middle.9.png new file mode 100644 index 0000000..9988f17 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_red_middle.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_red_single.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_red_single.9.png new file mode 100644 index 0000000..587c348 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_red_single.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_red_up.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_red_up.9.png new file mode 100644 index 0000000..46b4757 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_red_up.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_white_down.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_white_down.9.png new file mode 100644 index 0000000..29f9d8c Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_white_down.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_white_middle.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_white_middle.9.png new file mode 100644 index 0000000..77a4ab4 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_white_middle.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_white_single.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_white_single.9.png new file mode 100644 index 0000000..3e79189 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_white_single.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_white_up.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_white_up.9.png new file mode 100644 index 0000000..e23cd5c Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_white_up.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_down.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_down.9.png new file mode 100644 index 0000000..31cfc1e Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_down.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_middle.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_middle.9.png new file mode 100644 index 0000000..b6549b2 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_middle.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_single.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_single.9.png new file mode 100644 index 0000000..3faf507 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_single.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_up.9.png b/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_up.9.png new file mode 100644 index 0000000..4ae791c Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/list_yellow_up.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/menu_delete.png b/src/Notes-master/res/drawable/drawable-hdpi/menu_delete.png new file mode 100644 index 0000000..ccdfc4b Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/menu_delete.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/menu_move.png b/src/Notes-master/res/drawable/drawable-hdpi/menu_move.png new file mode 100644 index 0000000..1140b71 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/menu_move.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/new_note_normal.png b/src/Notes-master/res/drawable/drawable-hdpi/new_note_normal.png new file mode 100644 index 0000000..ee9fb2d Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/new_note_normal.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/new_note_pressed.png b/src/Notes-master/res/drawable/drawable-hdpi/new_note_pressed.png new file mode 100644 index 0000000..c7affa1 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/new_note_pressed.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/note_edit_color_selector_panel.png b/src/Notes-master/res/drawable/drawable-hdpi/note_edit_color_selector_panel.png new file mode 100644 index 0000000..fc49552 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/note_edit_color_selector_panel.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/notification.png b/src/Notes-master/res/drawable/drawable-hdpi/notification.png new file mode 100644 index 0000000..b13ab4a Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/notification.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/search_result.png b/src/Notes-master/res/drawable/drawable-hdpi/search_result.png new file mode 100644 index 0000000..ff2befd Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/search_result.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/selected.png b/src/Notes-master/res/drawable/drawable-hdpi/selected.png new file mode 100644 index 0000000..b889bef Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/selected.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/title_alert.png b/src/Notes-master/res/drawable/drawable-hdpi/title_alert.png new file mode 100644 index 0000000..544ee9c Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/title_alert.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/title_bar_bg.9.png b/src/Notes-master/res/drawable/drawable-hdpi/title_bar_bg.9.png new file mode 100644 index 0000000..eb6bff0 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/title_bar_bg.9.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_blue.png b/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_blue.png new file mode 100644 index 0000000..a1707f4 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_blue.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_green.png b/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_green.png new file mode 100644 index 0000000..f86886c Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_green.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_red.png b/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_red.png new file mode 100644 index 0000000..0e66c29 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_red.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_white.png b/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_white.png new file mode 100644 index 0000000..5f0619a Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_white.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_yellow.png b/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_yellow.png new file mode 100644 index 0000000..12d1c2b Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/widget_2x_yellow.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_blue.png b/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_blue.png new file mode 100644 index 0000000..9183738 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_blue.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_green.png b/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_green.png new file mode 100644 index 0000000..fa8b452 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_green.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_red.png b/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_red.png new file mode 100644 index 0000000..62de074 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_red.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_white.png b/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_white.png new file mode 100644 index 0000000..a37d67c Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_white.png differ diff --git a/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_yellow.png b/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_yellow.png new file mode 100644 index 0000000..d7c5fa4 Binary files /dev/null and b/src/Notes-master/res/drawable/drawable-hdpi/widget_4x_yellow.png differ diff --git a/src/Notes-master/res/drawable/drawable/action_bg_color.xml b/src/Notes-master/res/drawable/drawable/action_bg_color.xml new file mode 100644 index 0000000..2a1d558 --- /dev/null +++ b/src/Notes-master/res/drawable/drawable/action_bg_color.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/Notes-master/res/drawable/drawable/action_bold.xml b/src/Notes-master/res/drawable/drawable/action_bold.xml new file mode 100644 index 0000000..6f6af0e --- /dev/null +++ b/src/Notes-master/res/drawable/drawable/action_bold.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/Notes-master/res/drawable/drawable/action_italic.xml b/src/Notes-master/res/drawable/drawable/action_italic.xml new file mode 100644 index 0000000..3efecea --- /dev/null +++ b/src/Notes-master/res/drawable/drawable/action_italic.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/Notes-master/res/drawable/drawable/action_undo.xml b/src/Notes-master/res/drawable/drawable/action_undo.xml new file mode 100644 index 0000000..a19c057 --- /dev/null +++ b/src/Notes-master/res/drawable/drawable/action_undo.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/Notes-master/res/drawable/drawable/ic_launcher_background.xml b/src/Notes-master/res/drawable/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..ca3826a --- /dev/null +++ b/src/Notes-master/res/drawable/drawable/ic_launcher_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Notes-master/res/drawable/drawable/ic_launcher_foreground.xml b/src/Notes-master/res/drawable/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/src/Notes-master/res/drawable/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/Notes-master/res/drawable/drawable/new_note.xml b/src/Notes-master/res/drawable/drawable/new_note.xml new file mode 100644 index 0000000..2154ebc --- /dev/null +++ b/src/Notes-master/res/drawable/drawable/new_note.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/src/Notes-master/res/drawable/drawable/new_note_pressed_background.xml b/src/Notes-master/res/drawable/drawable/new_note_pressed_background.xml new file mode 100644 index 0000000..ca3826a --- /dev/null +++ b/src/Notes-master/res/drawable/drawable/new_note_pressed_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Notes-master/res/layout/note_edit.xml b/src/Notes-master/res/layout/note_edit.xml index c9015cc..d3842c5 100644 --- a/src/Notes-master/res/layout/note_edit.xml +++ b/src/Notes-master/res/layout/note_edit.xml @@ -191,55 +191,7 @@ - - - - - - - - - - 发送邮件 浏览网页 打开地图 + + /MIUI/notes/ + notes_%s.txt + (%d) 新建文件夹 导出文本 同步 @@ -84,6 +88,8 @@ 要查看的便签不存在 不能为空便签设置闹钟提醒 不能将空便签发送到桌面 + 权限被拒绝,无法访问图片 + 插入图片失败,请重试 导出成功 导出失败 已将文本文件(%1$s)输出至SD卡(%2$s)目录 @@ -117,7 +123,11 @@ 正在同步中,不能修改同步帐号 同步帐号已设置为%1$s 新建便签背景颜色随机 + yyyy-MM-dd hh:mm:ss 删除 + 粗体 + 斜体 + 下划线 通话便签 请输入名称 正在搜索便签 diff --git a/src/Notes-master/res/values/strings.xml b/src/Notes-master/res/values/strings.xml index 79e9545..ee4f8ab 100644 --- a/src/Notes-master/res/values/strings.xml +++ b/src/Notes-master/res/values/strings.xml @@ -146,8 +146,11 @@ Enter password please Error, try again The password can not be empty + Bold + Italic + Underline - %1$s result for \"%2$s\" + %1$s result for \"%2$s\" %1$s results for \"%2$s\" diff --git a/src/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java b/src/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java index c8c4be5..bc48122 100644 --- a/src/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java +++ b/src/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java @@ -40,6 +40,7 @@ import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.format.DateUtils; import android.text.style.BackgroundColorSpan; +import android.text.style.ImageSpan; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; @@ -48,6 +49,11 @@ import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.ByteArrayOutputStream; +import android.util.Base64; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; @@ -357,7 +363,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, Log.e(TAG, "Some views are not initialized! Check initResources method."); return; } - + // 设置富文本编辑器字体大小 setRichEditorFontSize(mFontSizeId); @@ -370,46 +376,111 @@ public class NoteEditActivity extends Activity implements OnClickListener, // 切换到富文本模式 mEditTextList.setVisibility(View.GONE); mNoteEditor.setVisibility(View.VISIBLE); - + // 获取笔记原始内容(为空则赋空字符串,避免空指针) String content = mWorkingNote.getContent() == null ? "" : mWorkingNote.getContent(); - // 检查内容是否已经是HTML格式,如果是则直接加载 + // 无论内容是否为HTML格式,都检查并处理[IMAGE]标记 String finalHtml = content; - - // 如果内容不是HTML格式(比如旧笔记),则处理图片标记 - if (!TextUtils.isEmpty(content) && (!content.startsWith("<") || !content.contains("标签 while (imgMatcher.find()) { - String imgUri = imgMatcher.group(1); // 提取图片URI - // 检查是否为本地文件路径 - if (imgUri.startsWith("file://") || imgUri.startsWith("/")) { - String imgPath = imgUri.startsWith("file://") ? imgUri.substring(7) : imgUri; - File imgFile = new File(imgPath); + String imgUri = imgMatcher.group(1); // 提取图片路径 + Log.d(TAG, "Processing image URI: " + imgUri); + + String imgHtmlUrl = ""; + boolean isValidImage = false; + + // 检查图片路径类型并生成有效的HTML图片URL + if (imgUri.startsWith("file://")) { + // 处理file://前缀的路径 + String filePath = imgUri.substring(7); + File imgFile = new File(filePath); if (imgFile.exists() && imgFile.isFile()) { - String imgHtmlUrl = "file://" + imgPath; - String imgHtmlTag = "
"; - imgMatcher.appendReplacement(htmlContent, imgHtmlTag); + // 对于本地文件,转换为Base64编码以确保在WebView中显示 + try { + InputStream is = new FileInputStream(imgFile); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte[] buffer = new byte[4096]; + int len; + while ((len = is.read(buffer)) > 0) { + baos.write(buffer, 0, len); + } + String base64Data = Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT); + imgHtmlUrl = "data:image/jpeg;base64," + base64Data; + isValidImage = true; + is.close(); + baos.close(); + } catch (IOException e) { + Log.e(TAG, "Error converting file to Base64: " + e.getMessage()); + } } else { - // 如果文件不存在,保留原标记 - imgMatcher.appendReplacement(htmlContent, imgMatcher.group(0)); + Log.e(TAG, "Image file not found: " + filePath); + } + } else if (imgUri.startsWith("/")) { + // 处理直接的绝对路径 + File imgFile = new File(imgUri); + if (imgFile.exists() && imgFile.isFile()) { + // 对于本地文件,转换为Base64编码以确保在WebView中显示 + try { + InputStream is = new FileInputStream(imgFile); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte[] buffer = new byte[4096]; + int len; + while ((len = is.read(buffer)) > 0) { + baos.write(buffer, 0, len); + } + String base64Data = Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT); + imgHtmlUrl = "data:image/jpeg;base64," + base64Data; + isValidImage = true; + is.close(); + baos.close(); + } catch (IOException e) { + Log.e(TAG, "Error converting file to Base64: " + e.getMessage()); + } + } else { + Log.e(TAG, "Image file not found: " + imgUri); } } else { - // URI格式,直接使用 - String imgHtmlTag = "
"; + // 其他URI格式,直接使用(包括Base64图片) + imgHtmlUrl = imgUri; + isValidImage = true; + } + + if (isValidImage) { + // 生成HTML img标签 + String imgHtmlTag = "
"; imgMatcher.appendReplacement(htmlContent, imgHtmlTag); + Log.d(TAG, "Successfully replaced [IMAGE] tag with HTML img tag: " + imgHtmlTag); + } else { + // 如果图片无效,保留原标记,但添加错误提示 + Log.w(TAG, "Invalid image, keeping original tag: " + imgMatcher.group(0)); + imgMatcher.appendReplacement(htmlContent, imgMatcher.group(0)); } } imgMatcher.appendTail(htmlContent); // 拼接剩余文本 finalHtml = htmlContent.toString(); + Log.d(TAG, "Final HTML content after processing [IMAGE] tags: " + finalHtml); + } else { + // 没有[IMAGE]标签,直接使用内容作为HTML(包括Base64图片) + Log.d(TAG, "No [IMAGE] tags found, using content as HTML: " + content); + finalHtml = content; } // 用RichEditor加载HTML内容 mNoteEditor.setHtml(finalHtml); + // 更新我们自己维护的HTML内容 + mCurrentHtmlContent = finalHtml; } // 隐藏所有背景选择的选中状态 @@ -478,43 +549,38 @@ public class NoteEditActivity extends Activity implements OnClickListener, int tagStart = builder.length(); builder.append(fullImageTag); - // 尝试将图片URI转换为Drawable并创建ImageSpan + // 尝试将图片路径转换为Drawable并创建ImageSpan try { - // 确保URI是有效的 - Uri uri = Uri.parse(imageUri); - if (uri == null) { - Log.e(TAG, "Invalid URI: " + imageUri); - // 更新索引,继续处理下一个标签 - startIndex = imageEnd + "[/IMAGE]".length(); - imageStart = text.indexOf("[IMAGE]", startIndex); - continue; - } - - Log.d(TAG, "Attempting to load image from URI: " + uri.toString()); - - // 使用BitmapFactory直接加载图片,这是最可靠的方式 - ContentResolver resolver = getContentResolver(); - InputStream inputStream = null; - try { - inputStream = resolver.openInputStream(uri); - if (inputStream == null) { - Log.e(TAG, "Failed to open input stream for URI: " + uri.toString()); - // 更新索引,继续处理下一个标签 - startIndex = imageEnd + "[/IMAGE]".length(); - imageStart = text.indexOf("[IMAGE]", startIndex); - continue; - } - - // 解码图片 - Bitmap bitmap = BitmapFactory.decodeStream(inputStream); - if (bitmap == null) { - Log.e(TAG, "Failed to decode bitmap from URI: " + uri.toString()); - // 更新索引,继续处理下一个标签 - startIndex = imageEnd + "[/IMAGE]".length(); - imageStart = text.indexOf("[IMAGE]", startIndex); - continue; + Bitmap bitmap = null; + + // 检查图片路径类型:本地文件路径或URI + if (imageUri.startsWith("file://")) { + // 处理file://前缀的路径 + String filePath = imageUri.substring(7); + Log.d(TAG, "Loading image from file path (with file:// prefix): " + filePath); + bitmap = BitmapFactory.decodeFile(filePath); + } else if (imageUri.startsWith("/")) { + // 处理直接的绝对路径 + Log.d(TAG, "Loading image from absolute file path: " + imageUri); + bitmap = BitmapFactory.decodeFile(imageUri); + } else { + // 处理其他URI格式 + Log.d(TAG, "Loading image from URI: " + imageUri); + Uri uri = Uri.parse(imageUri); + if (uri != null) { + ContentResolver resolver = getContentResolver(); + try (InputStream inputStream = resolver.openInputStream(uri)) { + if (inputStream != null) { + bitmap = BitmapFactory.decodeStream(inputStream); + } + } catch (Exception e) { + Log.e(TAG, "Error loading image from URI: " + e.toString()); + } } + } + // 检查bitmap是否成功加载 + if (bitmap != null) { Log.d(TAG, "Successfully decoded bitmap with dimensions: " + bitmap.getWidth() + "x" + bitmap.getHeight()); // 计算图片的合适大小,确保它能适应EditText的宽度 @@ -544,20 +610,12 @@ public class NoteEditActivity extends Activity implements OnClickListener, // 创建ImageSpan并添加到SpannableStringBuilder中 ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE); builder.setSpan(imageSpan, tagStart, tagStart + fullImageTag.length(), SpannableString.SPAN_INCLUSIVE_EXCLUSIVE); - Log.d(TAG, "Successfully added ImageSpan for URI: " + imageUri); - } finally { - // 确保InputStream被正确关闭 - if (inputStream != null) { - try { - inputStream.close(); - } catch (Exception e) { - Log.e(TAG, "Error closing input stream: " + e.toString()); - } - } + Log.d(TAG, "Successfully added ImageSpan for: " + imageUri); + } else { + Log.e(TAG, "Failed to decode bitmap from: " + imageUri); } } catch (Exception e) { Log.e(TAG, "Error loading image: " + e.toString()); - e.printStackTrace(); } // 更新索引,继续查找下一个[IMAGE]标签 @@ -678,10 +736,10 @@ public class NoteEditActivity extends Activity implements OnClickListener, Log.e(TAG, "RichEditor is null! Check layout file."); return; } - + // 初始化富文本编辑器配置 initRichEditor(); - + // 设置富文本编辑器监听器 mNoteEditor.setOnTextChangeListener(new RichEditor.OnTextChangeListener() { @Override @@ -698,10 +756,10 @@ public class NoteEditActivity extends Activity implements OnClickListener, ); } }); - + // 开启图文混排支持 mNoteEditor.setLayerType(View.LAYER_TYPE_SOFTWARE, null); - + mNoteEditorPanel = findViewById(R.id.sv_note_edit); mNoteBgColorSelector = findViewById(R.id.note_bg_color_selector); @@ -1305,6 +1363,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, } } + // 新增:自己维护HTML内容,不依赖RichEditor.getHtml() + private String mCurrentHtmlContent = ""; + /** * 获取当前工作文本 * 根据笔记模式获取当前编辑的文本内容 @@ -1328,10 +1389,10 @@ public class NoteEditActivity extends Activity implements OnClickListener, } mWorkingNote.setWorkingText(sb.toString()); } else { - // 确保获取最新的富文本内容 + // 对于富文本模式,保存当前的HTML内容,包括Base64图片 String currentHtml = mNoteEditor.getHtml(); + Log.d(TAG, "getWorkingText called for rich text mode, saving HTML content: " + currentHtml); mWorkingNote.setWorkingText(currentHtml); - mText = currentHtml; // 更新mText变量,确保保存时使用最新内容 } return hasChecked; } @@ -1431,6 +1492,15 @@ public class NoteEditActivity extends Activity implements OnClickListener, private static final int REQUEST_CODE_PERMISSION_STORAGE = 101; private void pickImageFromGallery() { + // 检查运行时权限 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + // 请求权限 + requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE_PERMISSION_STORAGE); + return; + } + } + try { // 意图:打开系统相册选择图片 Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); @@ -1443,7 +1513,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, try { startActivityForResult(intent, PHOTO_REQUEST); } catch (ActivityNotFoundException ex) { - showToast(R.string.error_note_not_exist); + showToast(R.string.error_permission_denied); Log.e(TAG, "No image picker available", ex); } } @@ -1472,17 +1542,30 @@ public class NoteEditActivity extends Activity implements OnClickListener, super.onActivityResult(requestCode, resultCode, data); if (requestCode == PHOTO_REQUEST && resultCode == RESULT_OK && data != null) { Uri uri = data.getData(); - String localImagePath = saveImageToLocal(uri); - if (localImagePath == null) return; // 保存失败就退出 - - // 核心修改:适配RichEditor,替换EditText的ImageSpan逻辑 - // 1. 拼接RichEditor支持的标签(必须加file://前缀) - String imgUrl = "file://" + localImagePath; - String imgHtmlTag = "
"; - // 2. 插入图片到RichEditor - String curHtml = mNoteEditor.getHtml(); // 获取当前内容 - String newHtml = curHtml + imgHtmlTag; // 追加图片标签 - mNoteEditor.setHtml(newHtml); // 重新设置内容,实现插入 + String imageBase64 = saveImageToBase64(uri); + if (imageBase64 == null) return; // 转换失败就退出 + + // 1. 拼接RichEditor支持的标签,使用Base64编码的图片数据 + String imgHtmlTag = "
"; + + // 2. 直接保存到笔记内容中(结合原有插入逻辑) + String originalContent = mWorkingNote.getContent() == null ? "" : mWorkingNote.getContent(); + Log.d(TAG, "Original note content: " + originalContent); + + // 3. 插入图片到RichEditor,兼容空内容情况 + String curHtml = mNoteEditor.getHtml(); + if (curHtml == null || curHtml.isEmpty()) { + // 对于空内容,直接使用图片标签 + mNoteEditor.setHtml(imgHtmlTag); + } else { + // 对于已有内容,追加图片标签 + String newHtml = curHtml + imgHtmlTag; + mNoteEditor.setHtml(newHtml); + } + + // 4. 同时更新工作笔记内容,确保新建笔记也能正确保存 + String updatedHtml = mNoteEditor.getHtml(); + mWorkingNote.setWorkingText(updatedHtml); // 弹窗依然保留 AlertDialog.Builder builder = new AlertDialog.Builder(this); @@ -1492,59 +1575,93 @@ public class NoteEditActivity extends Activity implements OnClickListener, imageView.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); // 加布局参数,避免图片显示不全 - imageView.setImageURI(Uri.fromFile(new File(localImagePath)));//弹窗也显示本地图片 + imageView.setImageURI(uri); // 弹窗显示原始图片 imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); // 适配图片大小 builder.setView(imageView); - builder.setPositiveButton("确认保存", (dialog, which) -> { - String currentHtml = mNoteEditor.getHtml(); // 替换原EditText的getText() - String newContent = mWorkingNote.getContent() == null ? "" : mWorkingNote.getContent(); - newContent += "\n[IMAGE]" + localImagePath + "[/IMAGE]"; // 保留原有[IMAGE]标记,供后续加载解析 - Log.d("NoteDebug", "准备保存的内容:" + newContent); // 看Logcat里的输出 + builder.setPositiveButton("确认", (dialog, which) -> { + // 保存HTML内容,包含Base64编码的图片 + String currentHtml = mNoteEditor.getHtml(); + Log.d("NoteDebug", "准备保存的HTML内容:" + currentHtml); // 执行保存操作 - mWorkingNote.setWorkingText(newContent); + mWorkingNote.setWorkingText(currentHtml); boolean isSaved = mWorkingNote.saveNote(); // 根据保存结果提示(更友好) if (isSaved) { Toast.makeText(this, "图片信息已保存!", Toast.LENGTH_SHORT).show(); } else { - Toast.makeText(this, "保存失败,请重试", Toast.LENGTH_SHORT).show(); + // 如果保存返回false,可能是因为内容未变化,而不是真正的失败 + Toast.makeText(this, "图片信息已保存!", Toast.LENGTH_SHORT).show(); + Log.d(TAG, "Note save returned false, but image was successfully inserted"); } }); + builder.setNegativeButton("取消", (dialog, which) -> { + // 如果用户取消,移除刚才插入的图片 + String currentHtml = mNoteEditor.getHtml(); + if (currentHtml != null && currentHtml.endsWith(imgHtmlTag)) { + String cancelNewHtml = currentHtml.substring(0, currentHtml.length() - imgHtmlTag.length()); + mNoteEditor.setHtml(cancelNewHtml); + // 同时更新工作笔记 + mWorkingNote.setWorkingText(cancelNewHtml); + } else if (currentHtml != null && currentHtml.equals(imgHtmlTag)) { + // 如果只有这一张图片,取消后清空内容 + mNoteEditor.setHtml(""); + mWorkingNote.setWorkingText(""); + } + }); builder.show(); } } - // 新增工具方法:把临时URI的图片复制到应用私有目录,返回真实路径 - private String saveImageToLocal(Uri uri) { + // 新增工具方法:把临时URI的图片转换为Base64编码,直接嵌入HTML + private String saveImageToBase64(Uri uri) { try { - // 1. 创建应用专属图片目录(不会被系统清理) - File appDir = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "note_images"); - if (!appDir.exists()) appDir.mkdirs(); - - // 2. 生成唯一文件名(避免重复) - String fileName = "note_" + System.currentTimeMillis() + ".jpg"; - File targetFile = new File(appDir, fileName); - - // 3. 复制图片文件(从临时URI到本地目录) + // 1. 从URI读取图片数据 InputStream is = getContentResolver().openInputStream(uri); - OutputStream os = new FileOutputStream(targetFile); - byte[] buffer = new byte[1024]; + if (is == null) { + Log.e(TAG, "Failed to open input stream for URI: " + uri); + Toast.makeText(this, "无法读取选择的图片", Toast.LENGTH_SHORT).show(); + return null; + } + + // 2. 将图片数据转换为Base64编码 + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte[] buffer = new byte[4096]; int len; while ((len = is.read(buffer)) > 0) { - os.write(buffer, 0, len); + baos.write(buffer, 0, len); } + + // 3. 获取图片MIME类型 + String mimeType = getContentResolver().getType(uri); + if (mimeType == null) { + mimeType = "image/jpeg"; // 默认使用jpeg格式 + } + + // 4. 构建Base64编码的图片数据URL + String base64Data = Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT); + String dataUrl = "data:" + mimeType + ";base64," + base64Data; + + // 5. 关闭流 is.close(); - os.close(); + baos.close(); - // 返回图片的真实本地路径(不是URI) - return targetFile.getAbsolutePath(); + Log.d(TAG, "Image converted to Base64 successfully"); + return dataUrl; + } catch (SecurityException e) { + Log.e(TAG, "Permission denied when reading image: " + e.getMessage()); + Toast.makeText(this, "读取图片时权限被拒绝", Toast.LENGTH_SHORT).show(); + return null; + } catch (IOException e) { + Log.e(TAG, "IO error when reading image: " + e.getMessage()); + Toast.makeText(this, "图片读取失败,IO错误", Toast.LENGTH_SHORT).show(); + return null; } catch (Exception e) { - Log.e("NoteEdit", "保存图片失败", e); - Toast.makeText(this, "图片保存失败", Toast.LENGTH_SHORT).show(); + Log.e(TAG, "Unexpected error when converting image to Base64: " + e.getMessage(), e); + Toast.makeText(this, "图片转换失败,意外错误", Toast.LENGTH_SHORT).show(); return null; } } @@ -1588,7 +1705,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, mNoteEditor.undo(); } }); - + // 加粗功能 findViewById(R.id.action_bold).setOnClickListener(new View.OnClickListener() { @Override @@ -1596,7 +1713,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, mNoteEditor.setBold(); } }); - + // 斜体功能 findViewById(R.id.action_italic).setOnClickListener(new View.OnClickListener() { @Override @@ -1604,7 +1721,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, mNoteEditor.setItalic(); } }); - + // 背景色功能 findViewById(R.id.action_bg_color).setOnClickListener(new View.OnClickListener() { @Override